无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

手游上的著色器優(yōu)化策略

2021-12-08 18:13 作者:unity小能手  | 我要投稿

手游上的著色器優(yōu)化策略

1.將部分計(jì)算從片元著色器移到頂點(diǎn)著色器來計(jì)算

如果你的游戲需要在配置非常低的平臺(tái)上進(jìn)行流暢運(yùn)行,你可以考慮犧牲一定的效果精度將部分片元著色器的內(nèi)容放到頂點(diǎn)著色器計(jì)算。比如你可以將鏡面反射的計(jì)算放到頂點(diǎn)著色器階段進(jìn)行計(jì)算,在在片元階段對(duì)其進(jìn)行插值。雖然會(huì)損失一定的精度,不過能帶來明顯的效果提升。

2.為你的著色器增加對(duì)Vertex-lit的支持

不是所有的光照都需要進(jìn)行完整的光照計(jì)算。比如一些氛圍燈。你可以在主Pass的頂點(diǎn)階段使用

o.vertexLights = ShadeVertexLights (v.vertex, v.normal);

這一行代碼來完成對(duì)VertexLight的支持

3.完整的使用Frame debugger來檢查一遍你場景的繪制流程

你需要觀察你繪制一個(gè)物體的所需的pass數(shù)量已經(jīng)你的場景網(wǎng)格是否正確的進(jìn)行了批處理batching。

還有一些外部工具可以用來檢查你的渲染流程。iOS上的Xcode就自帶了非常方便的frame profiler??梢詷O大程度的準(zhǔn)確的讓你了解你的應(yīng)用的渲染耗時(shí)。

PC上有Intel GPA可以幫助我們進(jìn)行檢查。

需要主要的是,針對(duì)Android手機(jī)的性能檢查,需要根據(jù)針對(duì)平臺(tái)的硬件使用不同的檢測器。

比如Android上GPU就分為了ARM Mali之類的。

最后:

7個(gè)簡單的優(yōu)化方法。

  1. 盡量使用常數(shù)運(yùn)算減少超越運(yùn)算。

  2. 先計(jì)算浮點(diǎn)型的乘法,再進(jìn)行向量型的乘法。

  3. 盡量不要使用discard這個(gè)指令,特別是手游上,這會(huì)打斷手機(jī)上的tile based render。

  4. 將不重要的計(jì)算內(nèi)容放到頂點(diǎn)著色器上。

  5. 如果不是一整個(gè)float3或者float4都參與計(jì)算,請(qǐng)多多使用特定的分量來計(jì)算

  6. 避免在shader中根據(jù)外部數(shù)值導(dǎo)致的分支計(jì)算(少用if-else)

  7. 根據(jù)你的render model(OpenGL 2, OpenGL 3, OpenGL ES, etc.),檢查你在著色器的指令。比如ddx,ddy, discard, floor之類的指令

更多資源請(qǐng)點(diǎn)擊:https://bycwedu.vipwan.cn/promotion_channels/630597732


手游上的著色器優(yōu)化策略的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
田林县| 太原市| 昔阳县| 大港区| 青岛市| 澜沧| 剑河县| 盐山县| 威远县| 烟台市| 赤壁市| 永修县| 东乌珠穆沁旗| 青龙| 罗江县| 龙游县| 津南区| 霞浦县| 探索| 丰顺县| 哈巴河县| 辽阳市| 铁岭县| 高密市| 灌阳县| 广宁县| 林州市| 北流市| 靖宇县| 屏东市| 汕尾市| 天台县| 九寨沟县| 安化县| 灌南县| 龙门县| 兴仁县| 沙河市| 平和县| 成都市| 泾川县|