쉐이더는 그것의 속성을 Properties 블럭에 선언합니다. 사용자가 Cg shader program에서 그러한 속성들에 접근하기를 원한다면 사용자는 같은 이름과 매칭 타입으로 Cg 변수들을 선언할 필요가 있습니다. 하나의 예가 Shader Tutorial: Vertex and Fragment Programs에서 제공됩니다.
예를 들어 이러한 쉐이더 속성들:
_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에서 다음처럼 접근을 위해 선언될 것입니다:
float4 _MyColor; float4 _MyVector; float _MyFloat; sampler2D _MyTexture; samplerCUBE _MyCubemap;
Cg는 또한 uniform 키워드를 허용할 수 있으나 반드시 필요하지는 않습니다:
uniform float4 _MyColor;
ShaderLab에서의 속성 타입은 Cg 변수 타입으로 이런 방법으로 매핑됩니다:
float4
변수들로 매핑됩니다.float
변수들로 매핑됩니다.samplerCUBE
와 samplerRECT
변수들로 각각 매핑됩니다.