使用QML來(lái)做3D應(yīng)用開(kāi)發(fā),優(yōu)化3D場(chǎng)景和優(yōu)化設(shè)計(jì)對(duì)3D應(yīng)用程序?qū)⒂兄@著性能影響。本文描述幾種優(yōu)化3D場(chǎng)景的規(guī)則和方法。
一、四種3D場(chǎng)景設(shè)計(jì)方式
3D場(chǎng)景有多種不同的創(chuàng)建組合方式。例如:高級(jí)場(chǎng)景、低級(jí)場(chǎng)景、混合場(chǎng)景和Vertex顏色場(chǎng)景。與其他版本的場(chǎng)景相比,高級(jí)場(chǎng)景中包含了更多的對(duì)象。
低級(jí)、混合和Vertex場(chǎng)景包含的對(duì)象相對(duì)更少,因?yàn)樗鼈円呀?jīng)通過(guò)將幾何形狀和烘烤材料結(jié)合到紋理中進(jìn)行了優(yōu)化。下圖顯示了Navigator視圖中每個(gè)場(chǎng)景中的組件,用于對(duì)比說(shuō)明場(chǎng)景之間的結(jié)構(gòu)差異:

(1-1)低級(jí)場(chǎng)景

如上圖所示,低級(jí)場(chǎng)景總共包含12個(gè)對(duì)象。每個(gè)模型(例如櫥柜、燈、盤(pán)子和水槽)都是獨(dú)立的網(wǎng)格。
(1-2)高級(jí)場(chǎng)景

如上圖所示,高場(chǎng)景總共包含27個(gè)對(duì)象。這個(gè)場(chǎng)景在其他方面與低級(jí)場(chǎng)景相似,但含有更多的細(xì)節(jié)和動(dòng)畫(huà)組件(如可以打開(kāi)的櫥柜門(mén)和烤箱的門(mén)閂)
(1-2)混合場(chǎng)景

混合場(chǎng)景是將所有的網(wǎng)格組合成一個(gè)單獨(dú)對(duì)象,所有材料都被烘焙成單一的紋理。
(1-3)Vertex顏色場(chǎng)景

該場(chǎng)景將所有的網(wǎng)格組合成一個(gè)單獨(dú)的對(duì)象,網(wǎng)格的顏色由.mesh文件的頂點(diǎn)數(shù)據(jù)描述,其中包括材質(zhì),沒(méi)有紋理。
在本小節(jié)中,出現(xiàn)的高級(jí)場(chǎng)景、低級(jí)場(chǎng)景、混合場(chǎng)景和Vertex顏色場(chǎng)景四種場(chǎng)景,本質(zhì)上是一種組織3D場(chǎng)景的方法。在高級(jí)場(chǎng)景中,包含的3D對(duì)象就非常多,為什么需要包含這么多的3D對(duì)象呢,多數(shù)情況下,就是為了將小對(duì)象分離出來(lái)做動(dòng)畫(huà)效果和動(dòng)畫(huà)控制。如果一個(gè)場(chǎng)景中沒(méi)有動(dòng)畫(huà)需求,則完全可采用混合場(chǎng)景和Vertex顏色場(chǎng)景的方法來(lái)設(shè)計(jì)3D場(chǎng)景,還提升了應(yīng)用渲染性能。
二、3D場(chǎng)景優(yōu)化規(guī)則
為了優(yōu)化3D場(chǎng)景的圖形渲染性能,首先應(yīng)考慮是否需要給3D對(duì)象、燈光、相機(jī)或場(chǎng)景中的組件添加動(dòng)畫(huà),如果不需要就盡可能簡(jiǎn)化場(chǎng)景結(jié)構(gòu),例如:可以將幾何圖形和烘烤材料結(jié)合到紋理中。理想情況下,將3D圖像預(yù)渲染為2D圖像是很好的選擇。檢查場(chǎng)景是否存在相同網(wǎng)格的多個(gè)實(shí)例,如果存在,則只導(dǎo)入一個(gè)網(wǎng)格實(shí)例,然后在場(chǎng)景中復(fù)制它,并為每個(gè)副本使用相同的材質(zhì)。
(2-1)Scene Graph
在Qt Design Studio中,由Navigator中的樹(shù)形視圖表示場(chǎng)景圖。同時(shí),我們還可以在Code視圖中查看節(jié)點(diǎn)的層次結(jié)構(gòu)。通過(guò)最小化場(chǎng)景圖,可以減少運(yùn)行場(chǎng)景時(shí)所需的工作。因?yàn)榫哂袕?fù)雜功能的深層層級(jí)嵌套將增加性能成本,為了優(yōu)化場(chǎng)景圖,應(yīng)盡可能避免不必要的組和復(fù)雜的層次結(jié)構(gòu)。
(2-2)資源文件優(yōu)化
盡可能減少資源文件的使用和加載,可以提高渲染性能(在實(shí)際3D應(yīng)用開(kāi)發(fā)過(guò)程中,由于多種因素,設(shè)計(jì)過(guò)程中資源文件往往都非常多,一般的做法是:一邊開(kāi)發(fā)一邊優(yōu)化資源文件)。
在設(shè)計(jì)3D素材模型時(shí),應(yīng)盡量使用最少的三角形或頂點(diǎn)來(lái)達(dá)到預(yù)期的建模效果。因?yàn)樵?D場(chǎng)景渲染時(shí),較少的圖形數(shù)量可以降低內(nèi)存需求量并有助于快速渲染。
(2-3)CPU性能優(yōu)化
顯示3D對(duì)象需要CPU或者GPU的大量處理工作。處理每個(gè)3D組件都會(huì)消耗資源,因此減少可見(jiàn)對(duì)象的數(shù)量可以減少CPU的工作量。優(yōu)化建議如下:
(1)合并位置相鄰且共享紋理的對(duì)象。
注意:合并不共享紋理的對(duì)象不會(huì)在運(yùn)行場(chǎng)景時(shí)提高CPU性能。
(2)將不同的紋理組合成一個(gè)紋理圖集,以此方法來(lái)減少材料的使用。
(3)避免多次渲染對(duì)象。
(2-4)優(yōu)化模型的幾何形狀
(1)減少模型中三角形的使用數(shù)量。
(2)減少用加倍頂點(diǎn)創(chuàng)建的UV映射接縫和硬邊的數(shù)量。
三、總結(jié)
下表總結(jié)了優(yōu)化3D場(chǎng)景相關(guān)的最佳實(shí)踐:
| 序號(hào) | 3D行為 | 最佳實(shí)踐建議 |
|---|---|---|
| 1 | 從3D場(chǎng)景中獲得最佳性能 | 如果不需要?jiǎng)赢?huà),可以將3D場(chǎng)景預(yù)渲染成2D圖像。 |
| 2 | 場(chǎng)景中物體的動(dòng)畫(huà) | 合并所有靜態(tài)對(duì)象,只導(dǎo)出每個(gè)動(dòng)畫(huà)組件中的一個(gè)。 |
| 3 | 相機(jī)動(dòng)畫(huà) | 雖然在這種情況下使用2D圖像是不可取的,但應(yīng)該將所有的幾何圖形、烘焙光照和材質(zhì)合并到一個(gè)單一的材質(zhì)中 |
| 4 | 光照動(dòng)畫(huà) | 優(yōu)化方法與“相機(jī)動(dòng)畫(huà)”一樣 |
| 5 | 在網(wǎng)格分離的3D場(chǎng)景中獲得最佳性能 | 對(duì)于同一個(gè)網(wǎng)格的每個(gè)實(shí)例使用相同的材質(zhì) |
| 6 | 在運(yùn)行時(shí)禁用網(wǎng)格渲染 | 保持特定的網(wǎng)格分離,合并其他組件。 |
| 7 | 使用低內(nèi)存的烘焙紋理 | 將網(wǎng)格顏色烘焙成頂點(diǎn)顏色 |
現(xiàn)代軟件,3D開(kāi)發(fā)屬于較高級(jí)的開(kāi)發(fā)了(做游戲的除外啦,哈哈),Qt Quick提供的3D開(kāi)發(fā)基礎(chǔ)組件的功能也非常強(qiáng)大,高版本的Qt對(duì)3D性能做了較多優(yōu)化,且3D開(kāi)發(fā)作為Quick的未來(lái)發(fā)展方向之一,也得到了官方的大量?jī)?yōu)化和維護(hù)。
下列為官方提供的一個(gè)車(chē)載中控終端軟件demo,在軟件中融入了3D元素,形象直觀且炫酷。
審核編輯:劉清
-
cpu
+關(guān)注
關(guān)注
68文章
11285瀏覽量
225122
原文標(biāo)題:QML性能優(yōu)化 | 3D場(chǎng)景優(yōu)化
文章出處:【微信號(hào):嵌入式小生,微信公眾號(hào):嵌入式小生】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
3D打印機(jī)散熱風(fēng)扇:熱管理核心與選型優(yōu)化指南
3D雷達(dá)料位計(jì)應(yīng)用行業(yè)有哪些
常見(jiàn)3D打印材料介紹及應(yīng)用場(chǎng)景分析
圖撲軟件 3D 場(chǎng)景預(yù)加載應(yīng)用實(shí)現(xiàn)
半導(dǎo)體“HBM和3D Stacked Memory”技術(shù)的詳解
使用OpenUSD實(shí)現(xiàn)可互操作3D工作流(下)
使用OpenUSD實(shí)現(xiàn)可互操作3D工作流(上)
使用NVIDIA AI Blueprint打造3D世界
玩轉(zhuǎn) KiCad 3D模型的使用
iTOF技術(shù),多樣化的3D視覺(jué)應(yīng)用
索尼與VAST達(dá)成3D業(yè)務(wù)合作
如何提高3D成像設(shè)備的部署和設(shè)計(jì)優(yōu)勢(shì)
描述幾種優(yōu)化3D場(chǎng)景的規(guī)則和方法
評(píng)論