簡體   English   中英

OpenGL紋理加速-查看相關紋理

[英]OpenGL Texture Speed up - View Dependent Textures

我有一個對象類型,可以根據旋轉(正確地)將紋理渲染到2D網格上(模擬3D)。 但是,為每個視圖加載/綁定新的紋理圖像非常慢。 禁用依賴於視圖的紋理加載會導致非常快的性能。

緩沖對象的所有視圖/紋理可能不是一個很好的選擇,它可能包含約720個視圖(單獨的圖像),每個視圖可能是600x1000像素。 也不保證最終用戶的系統規格,這是一個外圍應用程序。

在按需加載紋理和立即緩沖所有視圖紋理之間,是否有任何良好的中間OpenGL建議?

這是擁有紋理緩存並加載720個不同圖像的所有最低分辨率MIP級別的地方。 這將是您的1x1、2x2等分辨率的圖像。

在檢測視圖中的更改時,您將更新紋理緩存,對上次使用的紋理進行優先級排序,以便當前視圖中的紋理具有最高優先級,而長時間不使用的紋理具有最低優先級優先。

隨着紋理優先級的提高,您將引入紋理的更詳細的MIP級別,並且可以在完成紋理加載時重新綁定紋理,紋理緩存會將它們異步加載到單獨的線程中,然后在准備好它們時通知您的主線程因為這需要在與GL上下文相同的線程中發生。

還有其他一些方法可以使用新的擴展,例如AMD的Partially Resident Textures,但該擴展具有一些局限性,因此使用起來有些麻煩。

如果旋轉平滑且緩慢,則可以根據視圖從磁盤流式傳輸數據,並預取周圍視圖的數據。

如果您可以承受有損壓縮,則可以使用主動壓縮將大量數據放入RAM中,然后將其中一些移至VRAM(如果可能,請使用DXT / BC壓縮)。

您應該查看以下文章:

JMP Van Waveren。 實時紋理流和解壓縮。 英特爾軟件網絡,2006年。

JMP Van Waveren。 來自慢速存儲設備的地理空間紋理流。 英特爾軟件網絡,2008年。

JP van Waveren。 id tech 5的挑戰:從紋理虛擬化到大規模並行化。 SIGGRAPH Talk,2009年。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM