GPU Gems2 - 6 用多流来优化资源管理(Optimizing Resource Management with Multistreaming)
本文摘自https://zhuanlan.zhihu.com/p/38411575
【章節概覽】
?
現代實時圖形應用程序最困難的問題之一是必須處理龐大的數據。復雜的場景結合多通道的渲染,渲染起來往往會較為昂貴。
首先,多流(Multistreaming)技術由微軟在DirectX 8.0中引入。而這章介紹了一種用多流來優化資源管理的解決方案,可以用來處理龐大的數據,且在每個通道中只傳輸當前需要的頂點分量。
?
【核心要點】
?
這章介紹了當前的應用程序如何克服由于場景中幾何體數據的增加所引起的問題。文中的討論基于一個使應用程序對數據有更多控制的靈活模型—多流(Multistreaming),
這個方案聯合了兩項強大的技術,已經在名為Gothic III的引擎中實現:一些頂點緩沖區通過多流聯合,而且所有頂點緩沖區都由一個優化的資源管理器控制。
此方法的好處是:帶寬有時可能受限于系統內存和GPU之間的總線,因為傳輸了重復或多余的數據,而現在此方法為數據有效地控制了帶寬。
G – 用于幾何體數據的頂點流。包含頂點位置、法線和(多個)頂點顏色。
T – 用于紋理映射數據頂點流。包含紋理坐標系和附加數據,如正切空間法線映射的正切向量。
A – 用于動畫數據的頂點流。包含動畫數據,如骨骼權重和相關因素。
I – 用于實例數據的頂點流。 包含頂點流頻率實例數據。
而這四種流的子集結合起來可以處理不同的任務,如下圖。
- 渲染沒有動畫的網格
可能的流組合: G或者G+T
- 渲染有動畫的網格
可能的流組合: G+A或者G+T+A
- 渲染實例的網格(可選包含動畫)
可能的流組合:G+I或G+T+I(可選:G+A+I或G+T+A+I)
- 渲染純的Z通道(可選有或者沒有實例,可選有或沒有動畫)
可能的流組合 G(可選 :G+A 或 G+I 或 G+A+I)
原文中對上述的思路用DirectX 9.0c進行了實現。
?
【關鍵詞】
資源管理(Resource Management)
多流(Multistreaming)
頂點流(Vertex stream)
?
總結
以上是生活随笔為你收集整理的GPU Gems2 - 6 用多流来优化资源管理(Optimizing Resource Management with Multistreaming)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GPU Gems2 - 4 分段缓冲(S
- 下一篇: Invariant Violation: