變量類型
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) )