2014-09-04 34 views
0

我目前正在使用DX11新的渲染器。
要批量多個網格,我想使用Texture2dArrays幾何實例來防止紋理圖集。
這將是僞代碼用於呈現:配料與Texture2DArray

foreach effect in effects 
    foreach batch in batches 
     SetTexture2DArray() 
     SetInstanceBuffer() //Transform & Material (cbuffer) 
     SetVertexBuffer() 
     SetIndexBuffer() 
     DrawIndexed() 

每個網格由3個紋理和幾何形狀。具有相同輸入佈局的網格將被合併到一個批次中。
一個批次可以容納300個網格,以獲得每批900個紋理的TexturArray。
難道possiple要使用不同勢上TextureArray不同勢大小的紋理結合成?
如果不是我只能用相同的輸入佈局和texures大小結合的網格。

你認爲這是一個良好的制度?

回答

1

關於紋理陣列,每個切片需要是相同的尺寸。

關於合併模型更少的繪製調用通常更好,但有一個單獨的緩衝區持有不同的子集和不同數量的基元,每個都可能導致一些透支,並且如果需要的話,將會很難應用該粗略的剔除取決於您可能會發送的幾何圖形數量,現代卡片可以輕鬆地消除幾何圖形)。如果所有的幾何圖形始終可見,那麼合併是一個明確的選擇。