三維情境的渲染最佳化(一) 

來源:互聯網
上載者:User
                  三維情境的渲染最佳化(一)

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

  對於任何一個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這樣的指令碼程式,讓我們運行時調試,也能提高評測的效率。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.