1)MeshRenderer如何使用GPU Instancing的材質(zhì)球正常合批
2)關(guān)于AssetBundle加密买乃,如何重新實(shí)現(xiàn)LoadFromFile接口
3)移動(dòng)端開(kāi)放世界類型游戲中選擇動(dòng)態(tài)陰影技術(shù)以及優(yōu)化方案組合
4)Unity導(dǎo)出Gradle工程赤炒,如何防止gradle-wrapper.properties文件的更改被覆蓋
這是第329篇UWA技術(shù)知識(shí)分享的推送,精選了UWA社區(qū)的熱門話題,涵蓋了UWA問(wèn)答戒劫、社區(qū)帖子等技術(shù)知識(shí)點(diǎn)凿菩,助力大家更全面地掌握和學(xué)習(xí)。
Rendering
Q:MeshRenderer使用GPU Instancing的材質(zhì)球客情,不能正常合批其弊。
材質(zhì)球是支持實(shí)例化的,使用Graphics.DrawMeshInstanced可以正常繪制膀斋,但是使用MeshRenderer就不能正常合并梭伐,目前猜測(cè)是Shader的問(wèn)題,因?yàn)閁RP自帶的Lit材質(zhì)球就可以正常合并仰担。
經(jīng)查糊识,是因?yàn)殚_(kāi)啟了URP的SPR Batcher,Unity優(yōu)先采用了SPR Batcher摔蓝,那么請(qǐng)問(wèn)赂苗,手機(jī)端現(xiàn)在到底是走GPU Instancing還是SPR Batcher優(yōu)化效果更佳呢?
A:這兩種都是同一種思路來(lái)提高渲染效率贮尉,就是減少狀態(tài)切換開(kāi)銷拌滋,在渲染數(shù)量非常大的情況下顯然GPU Instancing更有優(yōu)勢(shì),但GPU Instancing的限制太大猜谚,只能應(yīng)用到特定場(chǎng)景败砂。
建議在實(shí)際應(yīng)用時(shí)大量相同物體用GPU Instancing去實(shí)現(xiàn)赌渣,其它情況SPR Batcher。
感謝李偉@UWA問(wèn)答社區(qū)提供了回答
AssetBundle
Q:請(qǐng)問(wèn)吠卷,關(guān)于AssetBundle加密這塊锡垄,如何重新實(shí)現(xiàn)LoadFromFile接口?
A1:建議簡(jiǎn)單做下Offered Load祭隔,真的想解資源辦法多的是货岭,越大的項(xiàng)目搞AssetBundle資源加密越影響游戲性能,完全得不償失疾渴。
感謝學(xué)無(wú)止境@UWA問(wèn)答社區(qū)提供了回答
A2:解密最大的問(wèn)題就是會(huì)多一份內(nèi)存千贯,如果可以復(fù)用一個(gè)大的Byte數(shù)組,那是不是可以做到內(nèi)存不會(huì)增加搞坝。
這個(gè)大的Byte數(shù)據(jù)要多大搔谴,可以在生成資源時(shí)計(jì)算一個(gè)最大值出來(lái)。
有一個(gè)問(wèn)題就是加載對(duì)象前不能更改這個(gè)數(shù)組桩撮,所以解密完要把里邊所有的資源先加載一次敦第,然后再去解密另一個(gè)文件。
我們項(xiàng)目里的數(shù)據(jù)表加載就是用的這種思路店量,一部分表解密完就會(huì)生成對(duì)象芜果,這些表可以復(fù)用一個(gè)Byte數(shù)組,一部分表要在獲取時(shí)生成對(duì)象融师,這些表就要保留一個(gè)獨(dú)立的Byte數(shù)組右钾。
重新實(shí)現(xiàn)LoadFromFile接口我覺(jué)得行不通,對(duì)于lz4的Bundle加載完只是加載了資源的描述信息旱爆,只有在調(diào)用加載對(duì)象的方法時(shí)才會(huì)再解壓資源出來(lái)舀射,除非解密完存到本地文件系統(tǒng),加載完后再刪除怀伦。
感謝李偉@UWA問(wèn)答社區(qū)提供了回答
Rendering
Q:現(xiàn)在的移動(dòng)端游戲越來(lái)越多地向開(kāi)放世界靠攏脆烟。請(qǐng)教一下大家會(huì)使用的技術(shù)組合有哪些?
1. 近距離時(shí)的高質(zhì)量軟陰影技術(shù)房待,是使用PCSS嗎邢羔?
2. 主角或主要場(chǎng)景的動(dòng)態(tài)陰影技術(shù),會(huì)實(shí)時(shí)更新多大范圍的Shadow Map吴攒?
3. 相對(duì)較遠(yuǎn)的位置的陰影是否會(huì)進(jìn)行轉(zhuǎn)為靜態(tài)陰影并進(jìn)行緩存张抄?Cascaded Shadow Map分級(jí)有什么依據(jù)嗎砂蔽?
針對(duì)以上問(wèn)題洼怔,有經(jīng)驗(yàn)的朋友歡迎轉(zhuǎn)至社區(qū)交流分享:
https://answer.uwa4d.com/question/63f3771a06385405990fbcbb
Android
Q:在升級(jí)Gradle版本過(guò)程中,修改了gradle-wrapper.properties文件中的distributionUrl左驾,但是每次在Unity導(dǎo)出Gradle工程后镣隶,gradle-wrapper.properties文件就會(huì)被自動(dòng)覆蓋极谊,導(dǎo)致修改無(wú)用。請(qǐng)問(wèn)如何防止被覆蓋安岂?
A1:可以試試在這里導(dǎo)出Gradle工程之后轻猖,手動(dòng)修改一下這個(gè)文件:
感謝范世青@UWA問(wèn)答社區(qū)提供了回答
A2:還有一個(gè)方法就是下載對(duì)應(yīng)版本的Gradle版本,然后覆蓋編輯器安裝目錄下的Gradle版本域那,因?yàn)橹匦律傻膁istributionUrl的Gradle版本就是對(duì)應(yīng)著編輯器目錄的Gradle版本咙边。
感謝題主蕭逐風(fēng)@UWA問(wèn)答社區(qū)提供了回答
封面圖來(lái)源于網(wǎng)絡(luò)
今天的分享就到這里。當(dāng)然次员,生有涯而知無(wú)涯败许。在漫漫的開(kāi)發(fā)周期中,您看到的這些問(wèn)題也許都只是冰山一角淑蔚,我們?cè)缫言赨WA問(wèn)答網(wǎng)站上準(zhǔn)備了更多的技術(shù)話題等你一起來(lái)探索和分享市殷。歡迎熱愛(ài)進(jìn)步的你加入,也許你的方法恰能解別人的燃眉之急刹衫;而他山之“石”醋寝,也能攻你之“玉”。