变量类型
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) )