三維場景的渲染優化(一)

2021-06-15 22:38:18 字數 922 閱讀 9519

三維場景的渲染優化(一)

——如何進行有效的效能評測     

對於任何乙個3d應用程式來說,追求場景畫面真實感是乙個無止盡的目標,其結果就是讓我們的場景越來越複雜,模型更加精細,這必然給圖形硬體帶來極大的負荷以致於無法達到實時繪製幀率。因此,渲染優化是必不可少的。在渲染優化之前,我們需要對應用程式效能進行系統的評測,找出瓶頸,對症下藥。對於3d應用程式來說,影響效能的十分多,同時不同的硬體配置條件下,瓶徑也會有所不同。因此,對應用程式進行有效的效能評測,不僅需要對整個渲染管線原理有深入地了解,此外借助一些評測工具能讓我們的工作事倍功半。

我們知道渲染流水線的速度是由最慢的階段決定首先,因此對乙個3d應用程式進行評測,首先要分析影響渲染效能的瓶頸是在cpu端還是gpu端,由此來絕對我們優化的物件。由於目前的圖形加速硬體都具有強大的,這個瓶徑往往出現在cpu端,我們可以通過一些工具獲得這個資訊,如nvidia的nvperfhud。在評測選項中,我們可以檢視cpu和gpu繁忙度這項,當cpu繁忙度是100%時,gpu還不是時,我們知道效能的瓶頸在cpu端,我們必須cpu端的操作,同時盡量的「餵飽」gpu,把一些費事的計算移值到gpu上,例如硬體骨骼蒙皮。當gpu端是瓶頸時,說明gpu超荷負載,有可能是因為有過多的渲染填充,也就是多邊形數量太多(當前強大的gpu使得這種情況並不多見。

cpu上的瓶頸產生有兩個方面,一是因為複雜ai計算或低效的**,二是由於不好的渲染批處理或資源管理。對於第一種情況,我們可以利用vturn這類的工具,把應用程式中所有函式呼叫時間從大到小的排列出來,我們就很容易知道問題所在。對第二種情況來說,同樣利用nvperfhud,我們可以檢視每幀的dp數目,看看批的數量是否過多(有乙個具體的換算公式),檢視紋理記憶體的數目,是否消耗了過多的視訊記憶體。利用這些工具,我們基本上能夠定位應用程式的瓶頸。在應用程式內部,編寫乙個內嵌的profiler功能,能更加便利的進行評測,此外利用lua這樣的指令碼程式,讓我們執行時除錯,也能提高評測的效率。

三維場景的渲染優化

對於任何乙個3d應用程式來說,追求場景畫面真實感是乙個無止盡的目標,其結果就是讓我們的場景越來越複雜,模型更加精細,這必然給圖形硬體帶來極大的負荷以致於無法達到實時繪製幀率。因此,渲染優化是必不可少的。在渲染優化之前,我們需要對應用程式效能進行系統的評測,找出瓶頸,對症下藥。對於3d應用程式來說,影...

三維場景的渲染優化(二)

靜態場景包括了地形 植被 建築物等一般不改變位置的實體集合,對它的優化是場景優化中最重主要的內容。本文就靜態場景優化的常見問題進行了 1 批的優化 批是場景優化中的最重要的概念之一,它指的是一次渲染呼叫 dp 批的尺寸是這次渲染呼叫所能渲染的多邊形數量。每個批的呼叫都會消耗一定的cpu時間,對於顯示...

三維渲染之地形渲染

地形渲染是三維場景的重點,地形渲染的質量和效率直接影響整個場景渲染的質量和效率。一般來說,為了渲染出更加真實的地形,則地形的單個網格要盡量小,這樣才能保證地形各個部分更加的精細。但如果網格變小,則對系統的開銷也就大了,從而會影響渲染的效率。因此地形演算法的設計實際上就是圍繞著渲染質量和渲染效率這兩方...