unity手機(jī)游戲開發(fā)上的著色器優(yōu)化策略

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

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來檢查一遍你場(chǎng)景的繪制流程

你需要觀察你繪制一個(gè)物體的所需的pass數(shù)量已經(jīng)你的場(chǎ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)的硬件使用不同的檢測(cè)器。

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

7個(gè)簡(jiǎn)單的優(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之類的指令


立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于unity游戲開發(fā)達(dá)人,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Unity Ads持久發(fā)力!《廣告平臺(tái)綜合表現(xiàn)報(bào)告》最新版出爐
Unity Ads持久發(fā)力!《廣告平臺(tái)綜合表現(xiàn)報(bào)告》最新版出爐
廣告是游戲廠商盈利的主要手段之一,Unity Ads一直在不斷改進(jìn)廣告變現(xiàn)功能,幫助開發(fā)者更高效地盈利。
Unity Ads
2022-03-302022-03-30
《廣告平臺(tái)綜合表現(xiàn)報(bào)告》最新版出爐!Unity Ads成為雙料冠軍
《廣告平臺(tái)綜合表現(xiàn)報(bào)告》最新版出爐!Unity Ads成為雙料冠軍
近日,AppsFlyer重磅發(fā)布了《廣告平臺(tái)綜合表現(xiàn)報(bào)告(第十三版)》(以下簡(jiǎn)稱“報(bào)告”),Unity Ads斬獲全球iOS游戲榜單與Android IAA榜單冠軍。
Unity Ads
2021-10-272021-10-27
Unity Ads案例分享:《Farm Away!》
Unity Ads案例分享:《Farm Away!》
今天為大家分享的就是一款使用Unity制作,同時(shí)集成了Unity Ads服務(wù)的休閑游戲《Farm Away!》。
Unity Ads
2021-10-122021-10-12
攜手打造云游戲生態(tài),Unity出席阿里巴巴主辦的“云游戲產(chǎn)業(yè)論壇”
攜手打造云游戲生態(tài),Unity出席阿里巴巴主辦的“云游戲產(chǎn)業(yè)論壇”
2021 年 9 月 24 日至 9 月 26 日,北京國(guó)際游戲創(chuàng)新大會(huì)(BIGC 2021)在海淀區(qū)舉行。以“創(chuàng)新·引領(lǐng)·融合”為主題,大會(huì)由開幕式暨游戲創(chuàng)新峰會(huì)、主題分享、閉門座談會(huì)、年度游戲推優(yōu)、北京國(guó)際游戲創(chuàng)新展五部分主體活動(dòng)組成。在阿里巴巴云游戲事業(yè)部主辦的“云游戲產(chǎn)業(yè)論壇”上,Unity 大中華區(qū)平臺(tái)技術(shù)總監(jiān)楊棟受邀出席,與眾多游戲產(chǎn)業(yè)權(quán)威專家、知名企業(yè)高管,從游戲產(chǎn)業(yè)趨勢(shì)、云游戲關(guān)鍵技術(shù)、云游戲解決方案、玩家體驗(yàn)等多方面開展主題分享與話題探討。
Unity
2021-09-272021-09-27
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家