我目前正在升級和重構OpenGL渲染引擎。該引擎用於可視化建築數據的大型場景(建築物內部),並且物體的數量可能變得相當大。與任何建築物一樣,牆內有很多遮擋物體,而且你自然只能看到與你在同一個房間內的物體,或者如果你在外面,則只能看到外部的物體。這留下了大量應該通過遮擋剔除和平截頭體剔除而被遮擋的對象。最先進的剔除和批處理技術渲染
同時,有很多可以在渲染批處理中進行批處理的重複幾何,以及許多可以使用實例化渲染進行渲染的對象。
我看到它的方式,可能很難以最佳方式組合渲染和剔除。如果在同一個VBO中批量過多的對象,則很難挑選CPU上的對象以跳過渲染該批處理。同時,如果你跳過對cpu的剔除,很多對象將在GPU不可見時處理。如果你爲了更容易在CPU上剔除而瘋狂地跳過批處理,將會有不必要的大量渲染調用。
我已經對現有技術和理論進行了一些研究,以瞭解這些問題在現代圖形中如何解決,但是我一直沒有找到具體的解決方案。我和同事提出的一個想法是將批次限制在距離彼此相對較近的對象上,例如房間內或n個半徑範圍內的所有椅子。這可以通過使用八叉樹來簡化和優化。
有沒有人有任何指針用於現代藝術的現代圖形引擎的現場管理,剔除,配料等技術?
讓我開始說我不懂任何最先進的現代圖形引擎。但是,這聽起來像是一個沒有單一解決方案的問題,相反,它通常可以通過修補和切換多個方法來解決,以提供給定場景的最佳質量/性能。只是因爲質量和性能總是互相排斥,受到壓力。我通常通過使用紋理數組和非靜態架構環境中的非常有用的方法將所有(!)以斜體友好塊(對於您:房間)進行批處理來解決我的繪製調用。 –