在 Cg 中访问着色器属性        

着色器在一个属性中声明材质 (Material) 属性。如果您想在着色器程序中访问那些属性中的一些属性,您需要声明一个具有相同名称和匹配类型的 Cg/HLSL 变量。在着色器教程:顶点和片元程序中提供 了一个示例。

例如,以下这些着色器属性:

_MyColor ("Some Color", Color) = (1,1,1,1) _MyVector ("Some Vector", Vector) = (0,0,0,0) _MyFloat ("My float", Float) = 0.5 _MyTexture ("Texture", 2D) = "white" {} _MyCubemap ("Cubemap", CUBE) = "" {} 

的访问权限将在 Cg/HLSL 代码中被声明为:

fixed4 _MyColor; // 精度低的类型对颜色来说已足够float4 _MyVector;float _MyFloat; sampler2D _MyTexture;samplerCUBE _MyCubemap;

Cg 也可接受统一的关键字,但这没有必要:

uniform float4 _MyColor;

ShaderLab 中的属性类型以如下方式映射到 Cg/HLSL 变量类型:

  • 颜色和向量属性映射到 float4half4fixed4 变量。

  • 范围 (Range) 和浮点 (Float) 属性映射到 floathalffixed 变量。

  • 纹理属性映射到普通(二维)纹理的 sampler2D 变量;立方体贴图 (Cubemap) 映射到 samplerCUBE;三维贴图映射到 sampler3D

,