2013-04-30 59 views
2

我在遊戲中總共有12種材質。然後我有各種各樣的Gameobjects,例如Gameobject1還有10個兒童,每個兒童使用2個相同的Materials.Now與Gameobject1我有20個繪製調用我想減少它們,我打開unity3d中的動態批處理並將CombineChildren.js附加到GameObject1,但結果仍然相同我有20個drawcalls,但我想將它縮減爲2個繪製調用,因爲我正在使用Gameobject1中只有兩種材質反覆出現。我出錯了嗎?在Unity3d中共享素材

任何幫助,將不勝感激

+0

你在談論靜態或動態GameObjects? – Heisenbug 2013-04-30 08:04:48

+0

動態Gameobjects.I使用游泳池系統在一個位置上spoker gameobject然後despawn他們,然後產生他們t其他點 – hariszaman 2013-04-30 08:21:07

+1

你檢查了[繪製呼叫批處理](http://docs.unity3d)中的所有條件。 com /文檔/手冊/ DrawCallBatching.html)像相同的大小,燈光,陰影,..會見?如果是這樣,請在編輯器中嘗試一下,繪製調用次數是否真的取決於孩子的數量。暫停並將其中的5個設置爲不活動,然後查看繪製調用是否減少。爲了得到逼真的結果,你需要使用相同的質量設置,如在你的目標玩家平臺 – Kay 2013-04-30 12:05:48

回答

0

犧牲圖形質量在我來說,我能夠通過所有的網格相結合來解決這個問題減少將childs遊戲對象映射到與unity3D一起提供的CombineMeshUtility.js。所以父遊戲對象(Empty Gameobject)現在有1個遊戲對象,它是所有孩子的網格,然後它有其他沒有任何渲染器或材質的子游戲對象。我希望這是明確的

0

(1)使用閉塞只渲染你的場景中的攝像機觀看。遮擋是減少繪製調用的一種非常有效的方式。

Occlusion Culling

(2)使用相同的材​​料爲對象。

(3)你可以光照貼圖你的場景。 然後使用此工具將所有光照貼圖壓縮爲一張大地圖。 Tool found here in detailed explanation

Scene Optimization

,如果你使用的所有三種方法,您的繪圖調用將急劇沒有的功能