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入門精要》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM