比方說,我有nbFramesAnimation * 3周float4的Texture2D,我想通過我的GPU,以及:在紋理數組上使用TextureArray的性能優勢?
- 我不需要紋理之間進行插值;
- 紋理具有完全相同的尺寸;
- 我不知道它是否相關,但我沒有任何mip-maps;
我使用那些紋理作爲我應用了一些後效應的G緩衝區。因此,我可能必須使用索引的非文字表達式訪問它們。此外,因爲我將它們用作G-Buffers,所以我必須經常加載它們。他們給我的位置和法線信息,這需要精確,以及UV + IndexObject(因此只使用4個浮點數中的3個)。至於現在,在每個幀渲染,我用SetResource單獨加載三個紋理。它非常慢並且遠離實時。
我想知道如果:
- 它是更有效的具有Texture2DArrays的陣列,每個Texture2dArray具有三個紋理(在我的情況),並且在每個幀通過一個Texture2DArray;
- 還是與傳遞3個人的Texture2D相同?
- 做nbFramesAnimation/X * 3紋理的多個Texture2DArrays並加載其中一個X幀是否更高效?
我也很感激任何有關如何進一步優化此傳輸的見解。
紋理數組可能比三個單獨的紋理更快,但這很可能不是這個瓶頸,特別是如果其餘渲染確實「遠離實時」。如果有任何區別,我預計它會在每個綁定幾微秒左右。最終你最好的選擇是試驗每個選項和配置文件,看看是否有區別。 – MooseBoys 2014-08-29 22:23:18