1. 在Unity中,主要有三種方式用來優化mesh數據的空間開銷。
即Player Setting中的:
Vertex Compression
Optimize Mesh Data
以及Model importer中的:
Mesh Compression
其中,Vertex Compression的實現是將頂點channel的數據格式format設置為16bit,因此可以節約運行時的內存使用(float->half)。
Optimize Mesh Data則主要用來剔除不需要的channel,即剔除額外的數據。因為與壓縮無關,本文先暫時不討論這個選項。
MeshData是將mesh數據壓縮,但運行時內存並不改變。
如果開啟了dynamic batching,則300個頂點以下的mesh不會被執行頂點壓縮。
其次,Read/Write Enabled這個選項也會使Vertex Compression失效。所以一般情況下,為了節約內存最好不好勾選這個選項,除了無法進行頂點壓縮之外,它還會額外在內存中保留一份mesh數據。
如果開啟了Mesh Compression,則會override掉Vertex Compression以及Optimize Mesh Data的設置 。Mesh Compression會將mesh在硬盤上的存儲空間進行壓縮,但是不會在runtime時節省內存。
參考文檔:https://www.cnblogs.com/murongxiaopifu/p/10447076.html