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) )
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容