Unity ShaderLab杂项笔记

Mesh Filter : 存储一个Mesh(网格,模型的网格,就是模型的由哪些三角面组成,组成一个什么样子的模型,三角面的一些顶点信息)

Mesh Renderer:用来渲染一个模型的外观,就是样子, 按照 mesh给它皮肤,给它颜色

Material(材质)控制模型渲染的效果(简单理解光线和颜色如何作用)

CG语言教程官网
    http://http.developer.nvidia.com/CgTutorial/cg_tutorial_frontmatter.html

UnityCG.cginc中一些常用的函数:

    //摄像机方向(视角方向)
    float3 WorldSpaceViewDir(float4 v)      根据模型空间中的顶点坐标 得到 (世界空间)从这个点到摄像机的观察方向
    float3 UnityWorldSpaceViewDir(float4 v) 世界空间中的顶点坐标==》世界空间从这个点到摄像机的观察方向
    float3 ObjSpaceViewDir(float4 v)         模型空间中的顶点坐标==》模型空间从这个点到摄像机的观察方向
    //光源方向
    float3 WorldSpaceLightDir(float4 v)     模型空间中的顶点坐标==》世界空间中从这个点到光源的方向
    float3 UnityWorldSpaceLightDir(float4 v)     世界空间中的顶点坐标==》世界空间中从这个点到光源的方向
    float3 ObjSpaceLightDir(float4 v)     模型空间中的顶点坐标==》模型空间中从这个点到光源的方向
    //方向转换
    float3 UnityObjectToWorldNormal(float3 norm) 把法线方向 模型空间==》世界空间
    float3 UnityObjectToWorldDir(float3 dir) 把方向 模型空间=》世界空间
    float3 UnityWorldToObjectDir(float3 dir) 把方向 世界空间=》模型空间

常见Shader语言

        OpenGL 使用GLSL 编写shader
        DirectX 使用HSSL 编写shader
        英伟达 CG 编写shader(跨平台)

Unity Shader的分类
        1,表面着色器 Surface Shader
        2,顶点/片元着色器 Vertex/Fragment Shader
        3,固定函数着色器 Fixed Function Shader

Unityshader中的常见属性
        _Color("Color",Color)=(1,1,1,1)
        _Vector("Vector",Vector)=(1,2,3,4)
        _Int("Int",Int)= 34234
        _Float("Float",Float) = 4.5
        _Range("Range",Range(1,11))=6
        _2D("Texture",2D) = "red"{}
        _Cube("Cube",Cube) = "white"{}
        _3D("Texure",3D) = "black"{}

从应用程序传递到顶点函数的语义有哪些
        POSITION 顶点坐标(模型空间下的)
        NORMAL 法线( 模型空间下)
        TANGENT 切线(模型空间)
        TEXCOORD0 ~n 纹理坐标
        COLOR 顶点颜色

从顶点函数传递给片元函数的时候可以使用的语义
        SV_POSITION 剪裁空间中的顶点坐标(一般是系统直接使用)
        COLOR0 可以传递一组值 4个
        COLOR1 可以传递一组值 4个
        TEXCOORD0~7 传递纹理坐标

片元函数传递给系统
        SV_Target 颜色值,显示到屏幕上的颜色

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦枫Leonlew

希望这篇文章能帮到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值