float
高精度類型,32位,通常用於世界坐標下的位置,紋理UV,或涉及復雜函數的標量計算,如三角函數、冪運算等。
half
中精度類型,16位,數值范圍為[-60000,+60000],通常用於本地坐標下的位置、方向向量、HDR顏色等。
fixed
低精度類型,11位,數值范圍為[-2,+2],通常用於常規的顏色與貼圖,以及低精度間的一些運算變量等。
在PC平台不管你Shader中寫的是half還是fixed,統統都會被當作float來處理。half與fixed僅在一些移動設備上有效。
比較常用的一個規則是,除了位置和坐標用float以外,其余的全部用half。主要原因也是因為大部分的現代GPU只支持32位與16位,也就是說只支持float和half,不支持fixed。
