03.04 GPU Skinning不生效問題

1)GPU Skinning不生效問題

2)勾選凸包報的警告問題

3)Unity 2019 圖片壓縮格式選擇

4)Android Export打包對壓縮的影響

5)Android內存中的Unknown部分洩漏


這是第192篇UWA技術知識分享的推送。今天我們繼續為大家精選了若干和開發、優化相關的問題,建議閱讀時間10分鐘,認真讀完必有收穫。

UWA 問答社區:answer.uwa4d.com

UWA QQ群2:793972859(原群已滿員)


Rendering

Q:Unity版本:2019.3.0f6Shader:GPUSkinningUnlitSkin2
測試Scene :Adam_Player_Crowd
測試手機 :Samsung S5

請問我使用Git上的GPU Skinning在PC上測試DrawCall數是有降低的,同時沒有Animator.update的消耗,而且有Instancing,但build到Samaung S5上用Unity Profiler監看沒有Animator.update的開銷,但DrawCall沒有降低,也沒有Instancing,請問是有什麼部分沒有設定好嗎?

另外GPU Skinning若要使用Instancing僅限於OpenGL ES 3.0嗎? 還是OpenGL ES 2.0也能使用?

PC

GPU Skinning不生效問題

Samsung S5

GPU Skinning不生效問題


A:參考官網文檔,如下描述,並不支持OpenGL ES 2.0。

GPU Skinning不生效問題

官方文檔:https://docs.unity3d.com/Manual/GPUInstancing.html

感謝鄭驍@UWA問答社區提供了回答,歡迎大家轉至社區交流:https://answer.uwa4d.com/question/5e4b325bfd2e373ffa7eac5d


Mesh

Q:有個複雜模型報警告:
Couldn’t create a Convex Mesh from source mesh “**” within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh.
我用SimpleLod減面之後也沒有減到256個面,但是不報這個警告了,這個警告到底是怎麼回事?建模時候應該如何避免?

A:生成的Convex Mesh最多隻能有255個三角形。你原來的模型太複雜,255個三角形不夠用,不足以表示輪廓。

GPU Skinning不生效問題

感謝fubbi1000@UWA問答社區提供了回答,歡迎大家轉至社區交流:

https://answer.uwa4d.com/question/5e4eaca8fd2e373ffa7eac65


Texture

Q:關於圖片壓縮格式選擇的問題,看了之前的博客,安卓選擇ETC2,蘋果選擇 PVRTC。現在項目升級到了Unity 2019.2.21f1,多了很多格式,想請教一下,下面幾個問題:(Unity版本:2019.2.21f1)1. 新版本Unity 2019,Format中安卓和蘋果格式該如何選擇?2. 安卓現在可以使用ASTC格式了嗎,市場份額是多少?3. Resize Algorithm,Override ETC2 fallback,分別代表意思以及如何選擇?4. HDR ,6X6,10X10,如何選擇好?

麻煩科普下,不勝感激,謝謝!

GPU Skinning不生效問題


GPU Skinning不生效問題


A1:個人覺得:

問題1,iOS選ASTC,Android選ETC2比較好;

問題3&4,可以看看Texture的官方文檔(https://docs.unity3d.com/Manual/class-TextureImporter.html),看完這個基本上你就能夠明白了,然後根據項目需求,相信能夠有個較為好的選擇。

感謝fubbi1000@UWA問答社區提供了回答

A2:現在tx新上線的項目已經開始普及ASTC的使用了,所以全面選擇ASTC,2019可以默認import的時候選擇ASTC,尤其是對光照貼圖和法線有很好的效果。Unity現在默認是6x6,也可以根據項目選擇其它大小。

感謝鄭驍@UWA問答社區提供了回答,歡迎大家轉至社區交流:https://answer.uwa4d.com/question/5e4d17b886a3954891983920


AssetBundle

Q:在Android Gradle項目中,build.gradle有如下配置:

<code>aaptOptions
{
noCompress ‘.unity3d’, ‘.ress’, ‘.resource’, ‘.obb’
}
/<code>

現測試如果不將AssetBundle配置到非壓縮的情況下,包體會縮減一些,大概和對AssetBundle進行LZMA壓縮的效果差不多。如果是用這種方式對壓縮包進行二次壓縮,解壓流程是怎麼樣的?對運行時性能有什麼影響嗎?

現在根據我個人的經驗猜測,Android APK包是安裝時解壓。也就是說,安裝完成後,無論是否二次壓縮,在硬盤裡面都是一個樣子。還望有相關經驗的朋友講解一下。

A:Android的APK包再安裝後是不解壓的,所以理論上運行時獲取裡面“二次壓縮”的Bundle還需要一個解壓步驟。也確實有開發者反饋過,如果改成了“二次壓縮”,AssetBundle的加載以及從AssetBundle中加載資源的耗時都會明顯變大。

所以,修改前建議用自身項目的AssetBundle資源做一下測試,看這兩部分的耗時差異是否明顯。

該回答由UWA提供,歡迎大家轉至社區交流:https://answer.uwa4d.com/question/5e3cf6c3fd2e373ffa7eabd2


Memory

Q:請教一下,Android內存中Unknown這部分一般都是什麼?反覆進出一個場景,Unity的資源正常釋放,沒有洩漏,但是這個Unknown一直在增長。

GPU Skinning不生效問題


GPU Skinning不生效問題


A:這塊是通過mmap分配的匿名內存,用了LuaJIT,Lua內存是在這裡的;常規Lua的內存是通過malloc分配的,會出現在Native Heap;另外一個大頭就是Mono內存了,Boehm GC在安卓上也是通過mmap分配的;再就是第三方so庫的內存分配。

感謝littlesome@UWA問答社區提供了回答,歡迎大家轉至社區交流:

https://answer.uwa4d.com/question/5e259954fd2e373ffa7eab72

封面圖來源:Shaders(https://lab.uwa4d.com/lab/5d8149638bab6aaf02914eb7)

Unity中編碼著色器。


今天的分享就到這裡。當然,生有涯而知無涯。在漫漫的開發週期中,您看到的這些問題也許都只是冰山一角,我們早已在UWA問答網站上準備了更多的技術話題等你一起來探索和分享。歡迎熱愛進步的你加入,也許你的方法恰能解別人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官網:www.uwa4d.com

官方技術博客:blog.uwa4d.com

官方問答社區:answer.uwa4d.com

UWA學堂:edu.uwa4d.com

官方技術QQ群:793972859(原群已滿員)


分享到:


相關文章: