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 颜色值,显示到屏幕上的颜色

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...