CG语言

变量类型

  • float, float4
    适用:世界坐标,纹理坐标
    32位高精度浮点数,精确到小数点后6位

  • half, half4
    适用:短向量,方向,本地坐标,高动态范围颜色
    16位中精度浮点数,范围[-60000,60000],精确到小数点后3位

  • fixed, fixed4
    适用:普通颜色
    11位低精度浮点数,范围[-2,2],精度为1/256

颜色使用fixed;坐标,uv使用float;其它都使用half

  • sampler2D, sampler2D_half, sampler2D_float
    采样深度贴图这种需要高精度数据时,使用sampler2D_float类型

  • samplerCUBE, samplerCUBE_half, samplerCUBE_float

  • sampler3D

// float3转换为float4
float3 normal;
float4 color = float4(normal.xyz, 1);

顶点程序输入参数类型

  • POSITION
    float4
  • NORMAL
    float3
  • TEXCOORD0
    float2, float3, float4
  • TEXCOORD1, TEXCOORD2, TEXCOORD3
  • GANGENT
    float4
  • COLOR
    float4

常用函数

  • saturate
    返回[0,1]范围内的值
float3 normal;
float4 color = float4(saturate(normal)xyz, 1);
  • frac
    返回小数部分
float4 color = frac(i.uv);
  • any
    至少有一个值 > 0
if(any(i.normal))
  • all
    所有值都>0
if( all(i.normal) )

你可能感兴趣的:(CG语言)