天天看點

Unity Shader通用優化方法

fixed/half/float

位置坐标、紋理坐标類使用float。

HDR顔色、方向向量類使用half。

普通紋理、顔色類使用fixed。

現代桌面級GPU都是直接采用float, 不需要考慮性能。

現代移動端GPU大多支援half和float, 是以能用half就用half。

能在頂點着色器中處理的就在頂點着色器

少用多Pass

小心使用AlphaTest和ColorMask

AlphaTest

clip(),通常大多數平台使用AlphaTest會有性能優勢,但在IOS和某些使用PowerVR GPU的Android裝置上性能很低

ColorMask

在IOS和某些Android上性能很低

NoScaleOffset

貼圖不需要條件Tiling和offset。

DisableBatching

禁用合批,預設值是flase。

如果在頂點山的計算需要在模型的本地空間下進行,則需要設定True,否在盡量使用預設flase。

GrabPass

GrabPass如果不指定貼圖的名稱,則每個對象的GrabPass都會每幀生成一次。

GrabPass如果指定貼圖名稱,則所有對象的GrabPass在一幀内隻會生成一次。

ShaderLOD

利用ShaderLOD進行分級

<

繼續閱讀