一旦編寫了程序,優化代碼和數據文件所需的時間通常與最初編寫代碼所用的時間一樣長。在試圖提高OpenGL性能時尤其如此。許多因素都會影響性能,從紋理文件的大小和格式到場景中的幾何體數量,在光柵化過程中使用的渲染選項...
一旦編寫了程序,優化代碼和數據文件所需的時間通常與最初編寫代碼所用的時間一樣長。在試圖提高OpenGL性能時尤其如此。許多因素都會影響性能,從紋理文件的大小和格式到場景中的幾何體數量,在光柵化過程中使用的渲染選項。如果代碼是用來檢測和避免圖形卡不支持的特殊功能,則添加代碼可以使程序運行得更快。良好的編程實踐和對常見OpenGL性能瓶頸的了解可以大大提高速度以及OpenGL應用程序的質量。OpenGL是一種編程接口,允許軟件應用程序快速高效地創建三維(3D)場景。在應用程序本身的數據結構中可以獲得OpenGL?性能的巨大改進。OpenGL?場景和動畫通常需要大量的數據樹,數據結構和數組。在滿足應用程序需求的同時,采用盡可能少的時間的容器結構和搜索算法可以加快數據的處理速度并將其移動到圖形處理單元(GPU)進行顯示。了解OpenGL?如何要求數據格式化也有幫助,因為某些編譯時優化可能會根據所使用的語言進行。紋理文件是OpenGL性能可以提高的一個共同領域。這些圖像文件的像素尺寸應該只有2的冪次方,即使硬件不需要它。它們也應該在圖像編輯器中優化為盡可能小。通常,動畫或移動的對象不需要像保持靜止的對象那樣詳細的紋理在不犧牲太多質量的情況下盡可能使用最小的紋理可以大大提高幀速率。一個常見的陷阱,特別是對于新程序員或藝術家來說,就是使用過多的幾何圖形。有很多技巧可以幫助減少模型中的多邊形數目的同時又不犧牲細節。經常犯的一個錯誤是使用模型的幾何體來表示可以更有效地顯示在紋理圖像中的細節。大多數模型實際上非常簡單,復雜的功能實際上是通過凹凸貼圖、法線和紋理映射來實現的。簡化了,優化模型將通過減少每個頂點上需要執行的計算數量來提高OpenGL的性能,當涉及到硬件時,對最小公分母進行編程是有益的。一些高端圖形卡實現了令人難以置信的令人興奮的OpenGL?功能,但大多數其他圖形卡都不支持這些功能。通過使用很少的擴展和僅依賴于基本任務的硬件加速,OpenGL?的性能可以在各個方面得到提高幾乎所有的系統,防止了某些圖形卡無法達到可接受的幀速率的情況。在試圖提高OpenGL?性能時,分析軟件也非常重要。分析器將測量每行代碼、每個功能的執行時間,以及程序中的每個操作。這是識別瓶頸位置的一種非常有效的方法。如果某個函數比其他函數花費的時間更長,則可以將其作為優化的目標。這有時會導致對某些代碼段的大量重寫,但最終它可以創建一個運行平穩的程序盡可能的
-
發表于 2020-08-06 16:37
- 閱讀 ( 564 )
- 分類:電腦網絡