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