Unity Shader 内置函数和变量总结




1、Unity提供的CG/HLSL语义

语义就是一个赋值给Shader输入和输出的字符串,这个字符串表达了这个参数的含义。


顶点着色器输入时常用语义


片元着色器输入时常用语义


片元着色器输出时常用语义

2、Unity提供的内置文件和变量

内置文件类似于引用头文件,使用内置文件和变量可以大大方便开发者的开发过程。


常用的包含文件


UnityShaderVariables.cginc是会被自动包含的

2.1、UnityCG.cginc文件

UnityCG是最常接触的一个包含文件,提供了很多常用的结构体和函数。


UnityCG常用结构体

struct appdata_base {
    float4 vertex : POSITION;
    float3 normal : NORMAL;
    float4 texcoord : TEXCOORD0;
    UNITY_VERTEX_INPUT_INSTANCE_ID
};

struct appdata_tan {
    float4 vertex : POSITION;
    float4 tangent : TANGENT;
    float3 normal : NORMAL;
    float4 texcoord : TEXCOORD0;
    UNITY_VERTEX_INPUT_INSTANCE_ID
};

struct appdata_full {
    float4 vertex : POSITION;
    float4 tangent : TANGENT;
    float3 normal : NORMAL;
    float4 texcoord : TEXCOORD0;
    float4 texcoord1 : TEXCOORD1;
    float4 texcoord2 : TEXCOORD2;
    float4 texcoord3 : TEXCOORD3;
    fixed4 color : COLOR;
    UNITY_VERTEX_INPUT_INSTANCE_ID
};

struct appdata_img
{
    float4 vertex : POSITION;
    half2 texcoord : TEXCOORD0;
    UNITY_VERTEX_INPUT_INSTANCE_ID
};

struct v2f_img
{
    float4 pos : SV_POSITION;
    half2 uv : TEXCOORD0;
    UNITY_VERTEX_INPUT_INSTANCE_ID
    UNITY_VERTEX_OUTPUT_STEREO
};

UnityCG常用函数

2.2、UnityShaderVariables.cginc文件


摄像机



矩阵

2.3、Lighting.cginc文件

待更新

2.4、HLSLSupport.cginc文件

待更新

参考于《Unity Shader入门精要》

原文地址:https://www.cnblogs.com/Fflyqaq/p/12551046.html