Unity擁有自己的着色語法ShaderLab。
關於它的所有必要信息都可以在website上找到。
至於屬性,看看這個link。
由於nvidia是not supporting CG,最新的統一版本使用HLSL編譯器實際編譯着色器,並將結果字節碼轉換爲GLSL。 CG着色器代碼繼續工作大部分不變。如今,您可以利用現代着色器功能,如計算着色器和曲面細分,CG不支持,使用HLSL語法。
例如,這些着色器屬性:
_MyColor ("Some Color", Color) = (1,1,1,1)
_MyVector ("Some Vector", Vector) = (0,0,0,0)
_MyRange ("My Range", Range (0, 1)) = 1
_MyFloat ("My float", Float) = 0.5
_MyInt ("My Int", int) = 1
_MyTexture2D ("Texture2D", 2D) = "white" {}
_MyTexture3D ("Texture3D", 3D) = "white" {}
_MyCubemap ("Cubemap", CUBE) = "" {}
將被宣佈爲在CG/HLSL代碼訪問爲:
fixed4 _MyColor;
float4 _MyVector;
float _MyRange;
float _MyFloat;
int _MyInt;
sampler2D _MyTexture2D;
sampler3D _MyTexture3D;
samplerCUBE _MyCubemap;
屬性類型ShaderLab地圖到CG/HLSL可變類型如下:
•顏色和矢量屬性映射到float4,half4或fixed4變量。
•範圍和浮動屬性映射到浮動,一半或固定變量。
•紋理屬性映射到sampler2D用於規則(2D)紋理的變量。
•立方圖映射到samplerCUBE。
•三維紋理映射到sampler3D。
我找不到獲取特定Shader屬性列表的方法......拼命改變我的素材的BlendOp ... – Domi