RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

進(jìn)行移動(dòng)端Unity開發(fā),針對(duì)引擎PowerVR性能建議

Dbwd_Imgtec ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-05-03 08:58 ? 次閱讀

如果你正在進(jìn)行移動(dòng)端Unity開發(fā),那么這篇博客你絕對(duì)不能錯(cuò)過!最近,我們?yōu)閺V大用戶提供了面向虛幻4游戲引擎的PowerVR性能建議,如果你更多時(shí)候使用的是Unity游戲引擎,那么我們現(xiàn)在就將與你分享PowerVR性能建議文檔中關(guān)于提升Unity性能的一些方法。

大部分優(yōu)化操作都適用于移動(dòng)平臺(tái),但是也有一些是專門面向PowerVR平臺(tái)的。也就是說(shuō),無(wú)論你的目標(biāo)應(yīng)用平臺(tái)是什么,幾乎所有的情況下都能夠帶來(lái)性能的提升,采用這些建議通常是很好的做法。

編譯設(shè)置

紋理壓縮

首先一定要確保使用了紋理壓縮,這不僅能壓縮存儲(chǔ)空間,同時(shí)也會(huì)節(jié)省運(yùn)行時(shí)的帶寬,這是提升性能且節(jié)約電池壽命最好的方法之一。紋理壓縮的優(yōu)點(diǎn)是它們會(huì)一直處于壓縮狀態(tài)直到它們要被用于某個(gè)片段處理操作的時(shí)候。

Unity支持各種各樣的紋理壓縮方法,默認(rèn)方法是ETC,當(dāng)然你也可以選擇其他方法,如下圖所示:

壓縮格式選項(xiàng)介紹如下:

  • ETC作為一種紋理壓縮格式支持所有的設(shè)備,但是在壓縮質(zhì)量和大小方面被ETC2所取代,盡管ETC很簡(jiǎn)單并且有廣泛的支持,但是它不支持阿爾法(Alpha)通道而且壓縮率也不是很理想。

  • PVRTC這種紋理壓縮格式僅支持PowerVR硬件平臺(tái),支持Alpha通道,具有最好的壓縮比率和壓縮質(zhì)量,通過高度靈活的配置一定能夠滿足質(zhì)量/大小的要求。

  • ASTC是一個(gè)開源的壓縮格式,支持大部分平臺(tái),它支持Alpha通道,具有與PVRTC相似的壓縮率和可配置性。

  • DXT作為一種壓縮格式廣泛的被桌面應(yīng)用所支持,在移動(dòng)領(lǐng)域由于授權(quán)問題,目前只有Nvidia Tegra平臺(tái)支持

  • ATC則只有高通Adreno平臺(tái)支持

盡管紋理格式設(shè)置是全局的,但是每一幀的紋理壓縮質(zhì)量都可以調(diào)節(jié),如下圖所示:

質(zhì)量設(shè)置

最普遍的優(yōu)化方法之一就是降低每個(gè)像素點(diǎn)的光數(shù)量,允許的光數(shù)量將直接影響GPU的負(fù)載,因?yàn)閳?chǎng)景內(nèi)的每個(gè)對(duì)象都需要在不同的光情況下進(jìn)行渲染。這意味著每個(gè)網(wǎng)格都需要通過一個(gè)光照,在像素光數(shù)量選項(xiàng)設(shè)置中光數(shù)量的最大值將影響網(wǎng)格的效果。如果影響網(wǎng)格的光數(shù)量超過了上限,那么只有最重要的光將會(huì)被用于渲染每個(gè)網(wǎng)格,如果光線是均勻分布的且不重疊,那么在任何給定的時(shí)間內(nèi)你都可以增加有效的光數(shù)量。

如何改變每個(gè)像素允許的光數(shù)量如下圖所示:

確保陰影地圖分辨率是“剛剛好”,使用最低的設(shè)置仍然看起來(lái)效果會(huì)很好,如果陰影地圖分辨率太高,這不僅會(huì)浪費(fèi)內(nèi)存和帶寬而且也會(huì)影響緩存的效率。

如下圖所示陰影分辨率也可以根據(jù)每個(gè)光來(lái)設(shè)置,各自的光陰影分辨率總是優(yōu)先于全局的質(zhì)量設(shè)置,除非選擇使用“Use Quality Setting”選項(xiàng)。

如果相機(jī)角度允許并且級(jí)聯(lián)設(shè)置不會(huì)覆蓋很多區(qū)域的話,適當(dāng)調(diào)整陰影級(jí)聯(lián)的數(shù)量也是一個(gè)很好的主意。這種情況下,你可以降低級(jí)聯(lián)的數(shù)量,從4降到2或者沒有級(jí)聯(lián)。

當(dāng)然也可以通過改變陰影級(jí)聯(lián)設(shè)置從“close”到“stable”來(lái)增加有效的陰影地圖分辨率,雖然能夠增加有效的陰影地圖分辨率但是代價(jià)是會(huì)出現(xiàn)不定的閃爍。

  • Close fit意味著陰影渲染算法將會(huì)盡可能高效的使用設(shè)置好的陰影地圖分辨率,結(jié)果是更高質(zhì)量的陰影效果,然而這也會(huì)導(dǎo)致一些閃爍問題,尤其是當(dāng)相機(jī)或者光移動(dòng)的時(shí)候,我們使用“軟陰影”選項(xiàng)可以把這些閃爍隱藏掉。

  • Stable fit表示陰影渲染將盡可能的使陰影邊緣穩(wěn)定,這意味著當(dāng)相機(jī)或者光移動(dòng)時(shí)陰影不會(huì)再有閃爍的現(xiàn)象,當(dāng)然這也會(huì)使得陰影質(zhì)量降低。

“Close fit”和“Stable fit”兩者之間的平衡需要仔細(xì)的考慮,“close fit”需要較低分辨率的陰影看起來(lái)質(zhì)量更高一些,但是需要更多的過濾(軟陰影)來(lái)隱藏閃爍,另一方面“stable fit”則需要更高分辨率陰影看起來(lái)質(zhì)量也高一些,但是它不需要太多的過濾,因?yàn)樗鼪]有閃爍問題。

網(wǎng)格設(shè)置

LOD(細(xì)節(jié)等級(jí))是管理幾何圖形復(fù)雜度非常好的一個(gè)工具,當(dāng)相機(jī)遠(yuǎn)離某個(gè)給定的對(duì)象時(shí)你可以使用它們來(lái)對(duì)幾何圖形的詳細(xì)程度,這種方式不會(huì)使屏幕上的幾何圖形超過一定的數(shù)量,而且質(zhì)量也是足夠的。

注意LOD是移動(dòng)端優(yōu)化幾何內(nèi)容非常好的一種方式,設(shè)置更高的LOD這樣較低分辨率的網(wǎng)格就可以被使用了。

下面的截圖展示了如何在質(zhì)量設(shè)置中設(shè)置LOD偏差:

注意減少幾何圖形負(fù)載會(huì)幫助減少計(jì)算量,使得器件不至于嚴(yán)重發(fā)熱同時(shí)具有更長(zhǎng)的電池壽命。

圖形設(shè)置

如果你需要HDR渲染,使用FP16來(lái)取代RG11B10會(huì)更好,因?yàn)樗鼤?huì)提供更好的精度和質(zhì)量。

延遲渲染 vs 前向渲染

對(duì)于光設(shè)置Unity提供延遲渲染和前向渲染兩個(gè)選項(xiàng),對(duì)于使用很多重疊光源的場(chǎng)景,延遲渲染通常會(huì)提供更好的性能,然而在移動(dòng)端前向渲染則會(huì)提供更好的性能,因?yàn)橐恍┘铀傺舆t渲染的高級(jí)功能比如PLS(像素本地存儲(chǔ))在移動(dòng)端是不被Unity支持的,對(duì)于少量光的場(chǎng)景,前向渲染具有更好的性能因?yàn)樗拈_銷更少,下面的截圖展示了如何在延遲渲染和前向渲染之間進(jìn)行選擇:

播放器設(shè)置

最新的安卓設(shè)備(包括PowerVR)都能夠支持Vulkan API,Vulkan真的很好,它能夠讓你減少CPU的負(fù)載,并且更好的控制同步操作。它更適合多核CPU,因?yàn)樗С窒騁PU提交多線程命令。

當(dāng)選擇要使用的API時(shí),Unity會(huì)嘗試使用最先進(jìn)的。然而如果硬件平臺(tái)不支持你選擇的API,Unity則會(huì)嘗試其他API,從而獲得最廣泛的支持。

如果你選擇使用OpenGL,那么使用多線程渲染可能是個(gè)好主意,這個(gè)選擇會(huì)確保渲染和其他操作在各自獨(dú)立的線程下運(yùn)行,這意味著不同操作會(huì)被更好的分配到不同的內(nèi)核來(lái)執(zhí)行,雖然這不會(huì)像Vulkan的多線程命令提交特性那樣好,但是這仍然會(huì)大大提升CPU的性能。

著色器

在著色器中對(duì)于透明表面可以使用alpha blending取代alpha test/clip()方法,注意alpha test與之前使用的深度測(cè)試方法一樣會(huì)損壞整體架構(gòu)。在PowerVR平臺(tái)上,底層原語(yǔ)會(huì)在片段處理流水線階段之前執(zhí)行深度寫入操作,這使得PowerVR設(shè)備不會(huì)覆蓋底層原語(yǔ)的操作,從而節(jié)省了大量的計(jì)算時(shí)間和帶寬。

然而PowerVR的alpha tested/discard原語(yǔ)只有在片段著色器執(zhí)行完成之后才能夠進(jìn)行數(shù)據(jù)寫入緩存操作,這種延遲深度寫入會(huì)影響性能,因?yàn)橹钡絘lpha tested原語(yǔ)完成更新深度緩沖區(qū)操作后,后續(xù)的原語(yǔ)操作才能夠執(zhí)行。

在所有的移動(dòng)架構(gòu)平臺(tái)上,不使用部分色彩遮蓋是有好處的,最好設(shè)置為RGBA或者0,如果你使用部分色彩遮蓋,那么之前的數(shù)據(jù)幀不得不重新讀取,這是由全屏原語(yǔ)操作來(lái)執(zhí)行的,會(huì)將它作為紋理來(lái)處理,而且這個(gè)紋理需要被部分清除,通過提交另一個(gè)全屏原語(yǔ)命令來(lái)完成。

盡管所有的移動(dòng)架構(gòu)平臺(tái)都非常擅長(zhǎng)于半精度計(jì)算,但是PowerVR卻非常的適合,因此一定要盡可能的利用這個(gè)特性,相比高精度(FP32),在著色器中使用半精度(FP16)會(huì)帶來(lái)顯著的性能提升,這主要?dú)w功于專用的FP16積之和(SOP)計(jì)算流水線,在每個(gè)周期內(nèi)能夠并行處理兩個(gè)SOP操作,理論上使浮點(diǎn)操作的吞吐量增加了一倍,F(xiàn)P16 SOP流水線在大部分PowerVR Rougue圖形內(nèi)核上都有采用,當(dāng)然這取決于具體的型號(hào)。

清除標(biāo)志

對(duì)于每一幀確保屏幕被清除是非常有必要的,這樣GPU就不需要再?gòu)闹暗膸彺嬷屑虞d圖像內(nèi)容,使用“solid color”或者“天空盒”清除模式來(lái)確保GPU不再?gòu)膬?nèi)存中加載之前用過的紋理數(shù)據(jù)。

在PowerVR平臺(tái)上,深度準(zhǔn)備操作是一件非常反效率的事情,因?yàn)镚PU不得不進(jìn)行兩次深度測(cè)試操作來(lái)將深度緩存保存到內(nèi)存中,從而完成清除冗余操作。你可以通過將相機(jī)的清除標(biāo)志設(shè)置為“depth only”或者“don’t clear”來(lái)確保Unity不會(huì)這樣做,我們強(qiáng)烈建議你不要使用這兩種模式。

Mipmaps(紋理映射)

與網(wǎng)格(LOD組)的距離等級(jí)(LOD)解決方案類似,紋理的LOD解決方案稱為mipmapping(紋理映射),隨著相機(jī)距離的增加mipmapping可以自動(dòng)降低顯示紋理的分辨率,這會(huì)顯著提升緩存效率,提高性能,降低帶寬等,按照下面的截圖來(lái)設(shè)置mipmaps:

使用mipmaps需要記住的一點(diǎn)是它們只能用于場(chǎng)景內(nèi)的3D元素,對(duì)于2D元素比如UI是1比1映射到屏幕上,因此是不需要的,但是如果它們被縮放那么你可能仍然需要使用mipmaps。

為了確保不同mipmap等級(jí)之間的無(wú)縫轉(zhuǎn)換,一定要確保在mipmapped對(duì)象上使用三線性過濾,如下圖所示:

網(wǎng)格優(yōu)化

首先確定你啟用了網(wǎng)格優(yōu)化選項(xiàng),這個(gè)設(shè)置會(huì)重新排列頂點(diǎn)和索引從而更好的利用GPU緩存空間,如下面截圖所示:

移動(dòng)端的內(nèi)容優(yōu)化

移動(dòng)設(shè)備本身就有一些特殊的約束限制,它們要確保電池的電量至少能夠使用一天,并且在用戶的手上不會(huì)出現(xiàn)嚴(yán)重發(fā)熱等問題,這意味著將電腦上的游戲移植到移動(dòng)端時(shí),我們必須要進(jìn)行內(nèi)容優(yōu)化。

首先最重要的幾何復(fù)雜度需要優(yōu)化,現(xiàn)在電腦屏幕上幾何圖形的數(shù)量通常在2百萬(wàn)到3百萬(wàn)都是可見的,在移動(dòng)設(shè)備上,這個(gè)數(shù)量一般是20萬(wàn)到30萬(wàn)個(gè)多邊形,多邊形的數(shù)量?jī)?yōu)化完之后,開發(fā)者還需要配置文件并且驗(yàn)證頂點(diǎn)著色器是否過于的復(fù)雜。

其次是紋理分辨率和帶寬的使用,舉個(gè)例子,后期處理效果需要進(jìn)行調(diào)整來(lái)適應(yīng)移動(dòng)端設(shè)備,在電腦上GPU內(nèi)存帶寬是200B/s到300GB/s,在移動(dòng)設(shè)備上可用的內(nèi)存帶寬是CPU和GPU共享的,大約在20GB/s到30GB/s,盡管這意味著紋理分辨率需要降低一半,但是你也需要考慮到移動(dòng)屏幕要小的多(電腦屏幕大約20+英寸,移動(dòng)設(shè)備屏幕大約5英寸),所以較小的紋理通常還是足夠的,調(diào)整之后還需要進(jìn)行概要分析從而驗(yàn)證結(jié)果。

總結(jié)

正如上文我們所看到的,Unity提供了一系列選項(xiàng)來(lái)優(yōu)化移動(dòng)端的內(nèi)容和游戲,這些都可以在PowerVR上得到很好的應(yīng)用,盡管不會(huì)帶來(lái)即時(shí)的性能提升,但是至少會(huì)有效的降低GPU負(fù)載,從而節(jié)省了電池的電量。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4729

    瀏覽量

    128890
  • powervr
    +關(guān)注

    關(guān)注

    0

    文章

    98

    瀏覽量

    31061
  • Unity
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    21806

原文標(biāo)題:面向Unity游戲引擎:PowerVR性能建議

文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用PVRTexTool提升移動(dòng)圖形的效果

    本文作者Ben Anuworakarn 是PowerVR 開發(fā)技術(shù)團(tuán)隊(duì)的技術(shù)作者,具有計(jì)算科學(xué)工程知識(shí)背景。文中,他針對(duì)移動(dòng)游戲畫面的優(yōu)化
    發(fā)表于 01-28 07:02

    Unity3D淺談&Unity5游戲及交互設(shè)計(jì)

    Unity3D是由丹麥Unity公司開發(fā)的游戲開發(fā)工具,作為一款跨平臺(tái)的游戲開發(fā)工具,從一開始就被設(shè)計(jì)成易于使用的產(chǎn)品。支持包括IOS,AN
    發(fā)表于 07-02 06:25

    Unity關(guān)鍵項(xiàng)目范圍設(shè)置指南

    本指南解釋了Unity提供的關(guān)鍵選項(xiàng),以便您能夠平衡應(yīng)用程序的圖像質(zhì)量和性能Unity有幾個(gè)選項(xiàng)會(huì)影響游戲的圖像質(zhì)量。其中一些選項(xiàng)的計(jì)算成本很高,可能會(huì)對(duì)游戲的性能產(chǎn)生負(fù)面影響。其
    發(fā)表于 08-02 13:25

    ARM Unity開發(fā)者優(yōu)化指南

    Unity是一個(gè)軟件平臺(tái),使您能夠創(chuàng)建和分發(fā)2D游戲、3D游戲和其他應(yīng)用程序。 本書旨在幫助您創(chuàng)建應(yīng)用程序和內(nèi)容,最大限度地利用Unity移動(dòng)平臺(tái),尤其是與馬里的移動(dòng)平臺(tái)? GPU。它
    發(fā)表于 08-08 06:37

    Unity中國(guó)、Cocos為OpenHarmony游戲生態(tài)插上騰飛的翅膀

    研發(fā)基礎(chǔ),并基于對(duì)國(guó)內(nèi)科技市場(chǎng)的深度觀察,在Unity引擎的能力之上,針對(duì)小游戲和智能汽車領(lǐng)域提供了更深度的技術(shù)賦能與效率提速,以期賦予本土用戶更強(qiáng)勁的創(chuàng)作動(dòng)能。團(tuán)結(jié)引擎致力于滿足中國(guó)
    發(fā)表于 10-23 16:15

    專家建議:如何靈活進(jìn)行軟硬件協(xié)同開發(fā)

    本文是專家建議:如何靈活進(jìn)行軟硬件協(xié)同開發(fā),給出了針對(duì)目標(biāo)不斷變化的情況如何靈活進(jìn)行應(yīng)用開發(fā)的三
    發(fā)表于 11-22 10:45 ?958次閱讀

    Imagination 與 Unity 合作推出光照貼圖工具

    性能。通過這一新的工具,美術(shù)設(shè)計(jì)師能夠在方便、易于使用的工作流程中快速設(shè)計(jì)并實(shí)現(xiàn)先進(jìn)光線效果的可視化。 PowerVR 光線追蹤技術(shù)有助于在 Unity 游戲引擎中創(chuàng)作出
    發(fā)表于 02-10 10:19 ?279次閱讀

    實(shí)例分析使用Unity3D開發(fā)VR游戲

    頭戴式顯示設(shè)備都是可供選擇的對(duì)象。但Cardboard的價(jià)格低廉,市場(chǎng)占有率更高,用它來(lái)作為移動(dòng)進(jìn)行開發(fā)更為劃算一些。當(dāng)然,選擇其一并不代表我們舍棄了其它
    發(fā)表于 10-10 10:38 ?1次下載

    PowerVR GPU架構(gòu)的性能優(yōu)化建議

    最近在看移動(dòng)GPU優(yōu)化的時(shí)候?qū)iledBased GPU有一些疑惑,特別是常說(shuō)的Alpha-Blend比Alpha-Test在移動(dòng)GPU上快的奇特性質(zhì),于是找了powerVR相關(guān)的文檔來(lái)閱讀,也做個(gè)記錄。
    的頭像 發(fā)表于 03-15 17:24 ?3559次閱讀
    <b class='flag-5'>PowerVR</b> GPU架構(gòu)的<b class='flag-5'>性能</b>優(yōu)化<b class='flag-5'>建議</b>

    Unity宣布與Snap合作:加入SAN廣告網(wǎng)絡(luò),加速推進(jìn)移動(dòng)游戲內(nèi)AR廣告業(yè)務(wù)

    的功能。 ? 據(jù)青亭網(wǎng)了解,本次合作主要針對(duì)移動(dòng)游戲,目前50%以上的手游基于Unity引擎開發(fā)
    的頭像 發(fā)表于 12-18 14:29 ?2327次閱讀

    如何使用PVRTexTool提升移動(dòng)圖形效果

    本文作者Ben Anuworakarn 是PowerVR 開發(fā)技術(shù)團(tuán)隊(duì)的技術(shù)作者,具有計(jì)算科學(xué)工程知識(shí)背景。文中,他針對(duì)移動(dòng)游戲畫面的優(yōu)化
    發(fā)表于 01-21 09:22 ?5次下載
    如何使用PVRTexTool提升<b class='flag-5'>移動(dòng)</b><b class='flag-5'>端</b>圖形效果

    Unity 3D引擎制作的憤怒的小鳥游戲

    Unity 3D引擎制作的憤怒的小鳥游戲
    發(fā)表于 05-12 09:37 ?2次下載

    Unity游戲引擎有什么用?《糖豆人》PC版勁銷超12億, 難怪這么多人想學(xué)!

    的種種問題,往往出現(xiàn)好創(chuàng)意被埋沒,有潛力的團(tuán)隊(duì)被迫解散的結(jié)局?!   ?b class='flag-5'>針對(duì)中小開發(fā)者的“前狼后虎”窘境,Unity提供了一整套的完整方
    發(fā)表于 06-10 11:50 ?1229次閱讀
    <b class='flag-5'>Unity</b>游戲<b class='flag-5'>引擎</b>有什么用?《糖豆人》PC版勁銷超12億, 難怪這么多人想學(xué)!

    MediaTek與Unity中國(guó)攜手合作,打造次世代移動(dòng)游戲體驗(yàn)新標(biāo)桿

    的高效開發(fā)環(huán)境,開發(fā)者可以深度解鎖天璣9200系列芯片的潛能,打造更多支持光線追蹤技術(shù)的移動(dòng)游戲,為玩家?guī)?lái)沉浸式光影體驗(yàn)。 MediaTek無(wú)線通信事業(yè)部副總經(jīng)理李彥輯博士表示:“
    發(fā)表于 07-26 14:28 ?383次閱讀
    MediaTek與<b class='flag-5'>Unity</b>中國(guó)攜手合作,打造次世代<b class='flag-5'>移動(dòng)</b>游戲體驗(yàn)新標(biāo)桿

    MediaTek 與 Unity 中國(guó)攜手合作,打造次世代移動(dòng)游戲體驗(yàn)新標(biāo)桿

    的高效開發(fā)環(huán)境,開發(fā)者可以深度解鎖天璣 9200 系列芯片的潛能,打造更多支持光線追蹤技術(shù)的移動(dòng)游戲,為玩家?guī)?lái)沉浸式光影體驗(yàn)。 MediaTek 無(wú)線通信事業(yè)部副總經(jīng)理李彥輯博士表
    的頭像 發(fā)表于 07-26 19:15 ?463次閱讀
    MediaTek 與 <b class='flag-5'>Unity</b> 中國(guó)攜手合作,打造次世代<b class='flag-5'>移動(dòng)</b>游戲體驗(yàn)新標(biāo)桿
    RM新时代网站-首页