本技術(shù)涉及數(shù)據(jù)處理,尤其涉及一種城市數(shù)字孿生場景l(fā)od處理方法。
背景技術(shù):
1、細(xì)節(jié)級別(level?of?detail,lod)模型是城市數(shù)字孿生場景中的基礎(chǔ)。它根據(jù)物體的距離、重要性等因素,動(dòng)態(tài)地調(diào)整模型的細(xì)節(jié)層次,以實(shí)現(xiàn)性能優(yōu)化和視覺質(zhì)量的平衡。基于距離進(jìn)行l(wèi)od調(diào)整時(shí),根據(jù)相機(jī)(或者觀察者)到物體的距離,動(dòng)態(tài)地調(diào)整模型的細(xì)節(jié)層次。當(dāng)物體距離相機(jī)較遠(yuǎn)時(shí),使用較低細(xì)節(jié)的模型;當(dāng)物體距離相機(jī)較近時(shí),使用較高細(xì)節(jié)的模型?;谥匾赃M(jìn)行l(wèi)od調(diào)整時(shí),根據(jù)物體在場景中的重要性,動(dòng)態(tài)地調(diào)整模型的細(xì)節(jié)層次。對于重要的物體,使用較高細(xì)節(jié)的模型;對于不重要的物體,使用較低細(xì)節(jié)的模型。
2、根據(jù)物體的距離、重要性等因素對lod層級進(jìn)行調(diào)整,通常是為了在保持模型必要信息的同時(shí),降低其復(fù)雜度和數(shù)據(jù)量,以便在各種設(shè)備和平臺上更流暢地展示和應(yīng)用。然而,上述兩種調(diào)整方式中,在加載復(fù)雜數(shù)據(jù)的lod層級,渲染負(fù)擔(dān)較重時(shí),無法自動(dòng)進(jìn)行l(wèi)od降級。
3、上述內(nèi)容僅用于輔助理解本技術(shù)的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)的主要目的在于提供一種城市數(shù)字孿生場景l(fā)od處理方法,旨在解決如何提高細(xì)節(jié)層次模型的渲染質(zhì)量的技術(shù)問題。
2、為實(shí)現(xiàn)上述目的,本技術(shù)提出一種城市數(shù)字孿生場景l(fā)od處理方法,所述的方法包括:
3、在觸發(fā)檢測任務(wù)后,獲取當(dāng)前模型中初始瓦片數(shù)據(jù)的初始幾何誤差;
4、根據(jù)硬件的負(fù)載參數(shù)更新所述初始幾何誤差,得到目標(biāo)幾何誤差;
5、根據(jù)所述目標(biāo)幾何誤差獲取第一屏幕空間誤差,并根據(jù)所述第一屏幕空間誤差和預(yù)設(shè)的屏幕空間誤差閾值的對比結(jié)果,確定目標(biāo)屏幕空間誤差;
6、根據(jù)所述目標(biāo)屏幕空間誤差確定目標(biāo)層級,并獲取所述目標(biāo)層級對應(yīng)的目標(biāo)瓦片數(shù)據(jù);
7、根據(jù)所述目標(biāo)瓦片數(shù)據(jù)渲染所述當(dāng)前模型,得到目標(biāo)模型。
8、在一實(shí)施例中,所述負(fù)載參數(shù)為中央處理器的負(fù)載值和圖形處理器的負(fù)載值,所述根據(jù)硬件的負(fù)載參數(shù)更新所述初始幾何誤差,得到目標(biāo)幾何誤差的步驟包括:
9、獲取并比較所述中央處理器的負(fù)載值和所述圖形處理器的負(fù)載值,根據(jù)比較結(jié)果確定最大負(fù)載值;
10、根據(jù)所述最大負(fù)載值,確定調(diào)節(jié)系數(shù);其中,當(dāng)所述最大負(fù)載值大于或者等于預(yù)設(shè)的第一負(fù)載值時(shí),所述調(diào)節(jié)系數(shù)和所述最大負(fù)載值負(fù)相關(guān);當(dāng)所述最大負(fù)載值小于預(yù)設(shè)的第二負(fù)載值時(shí),所述調(diào)節(jié)系數(shù)和所述最大負(fù)載值正相關(guān);
11、根據(jù)所述最大負(fù)載值、所述調(diào)節(jié)系數(shù)和所述初始幾何誤差,確定所述目標(biāo)幾何誤差。
12、在一實(shí)施例中,所述根據(jù)所述目標(biāo)幾何誤差獲取第一屏幕空間誤差,將所述第一屏幕空間誤差和預(yù)設(shè)的屏幕空間誤差閾值進(jìn)行對比,并根據(jù)對比結(jié)果確定目標(biāo)屏幕空間誤差的步驟包括:
13、根據(jù)所述目標(biāo)幾何誤差進(jìn)行計(jì)算,得到所述第一屏幕空間誤差;
14、若所述第一屏幕空間誤差小于或者等于所述屏幕空間誤差閾值時(shí),則確認(rèn)所述第一屏幕空間誤差為所述目標(biāo)屏幕空間誤差。
15、在一實(shí)施例中,在所述將所述第一屏幕空間誤差和所述屏幕空間誤差閾值進(jìn)行對比的步驟之后包括:
16、若所述第一屏幕空間誤差大于所述屏幕空間誤差閾值,則更新所述目標(biāo)幾何誤差,得到第二目標(biāo)幾何誤差;
17、根據(jù)所述第二目標(biāo)幾何誤差重新進(jìn)行計(jì)算,直至所述第一屏幕空間誤差小于或者等于所述屏幕空間誤差閾值,得到所述目標(biāo)屏幕空間誤差。
18、在一實(shí)施例中,在所述在觸發(fā)檢測任務(wù)后,獲取當(dāng)前模型中初始瓦片數(shù)據(jù)的初始幾何誤差的步驟之前包括:
19、根據(jù)八叉樹索引將待拆分bim模型拆分,得到目標(biāo)子模型;
20、根據(jù)預(yù)設(shè)的簡化率對各個(gè)所述目標(biāo)子模型進(jìn)行簡化,得到不同層級對應(yīng)的瓦片數(shù)據(jù);
21、將所述瓦片數(shù)據(jù)進(jìn)行存儲,得到瓦片集。
22、在一實(shí)施例中,所述根據(jù)八叉樹索引將待拆分bim模型拆分,得到目標(biāo)子模型的步驟包括:
23、確定所述待拆分bim模型中各個(gè)構(gòu)件的包圍盒;
24、根據(jù)所述包圍盒的邊長和面積確定分割距離;
25、根據(jù)八叉樹索引將所述待拆分bim模型進(jìn)行拆分;
26、當(dāng)拆分得到的子模型的邊長小于或者等于預(yù)設(shè)的分割距離時(shí),停止拆分,得到所述目標(biāo)子模型。
27、在一實(shí)施例中,所述方法還包括:
28、判斷所述當(dāng)前模型中是否存在被鎖定子模型;
29、若存在,則獲取所述被鎖定子模型的預(yù)設(shè)幾何誤差,并將所述預(yù)設(shè)幾何誤差確認(rèn)為所述目標(biāo)幾何誤差。
30、在一實(shí)施例中,所述在觸發(fā)檢測任務(wù)后,獲取當(dāng)前模型中初始瓦片數(shù)據(jù)的初始幾何誤差的步驟包括:
31、在達(dá)到預(yù)設(shè)的時(shí)間周期時(shí),觸發(fā)所述檢測任務(wù);
32、獲取所述瓦片數(shù)據(jù)的索引文件,從所述索引文件中獲取所述初始幾何誤差。
33、在一實(shí)施例中,所述根據(jù)所述目標(biāo)瓦片數(shù)據(jù)渲染所述當(dāng)前模型,得到目標(biāo)模型的步驟包括:
34、根據(jù)平滑系數(shù)、所述初始幾何誤差和所述目標(biāo)幾何誤差確定每一幀對應(yīng)的第一幾何誤差值;
35、根據(jù)所述第一幾何誤差和所述目標(biāo)瓦片數(shù)據(jù),對所述當(dāng)前模型進(jìn)行逐幀渲染,得到所述目標(biāo)模型。
36、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提出一種城市數(shù)字孿生場景l(fā)od處理設(shè)備,所述城市數(shù)字孿生場景l(fā)od處理設(shè)備包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序配置為實(shí)現(xiàn)如上文所述的城市數(shù)字孿生場景l(fā)od處理方法的步驟。
37、本技術(shù)提供了一種城市數(shù)字孿生場景l(fā)od處理方法,在觸發(fā)檢測任務(wù)后,獲取當(dāng)前模型中初始瓦片數(shù)據(jù)的初始幾何誤差,以及當(dāng)前硬件的負(fù)載情況。根據(jù)硬件的負(fù)載參數(shù)更新初始幾何誤差,能夠根據(jù)硬件的實(shí)時(shí)負(fù)載情況動(dòng)態(tài)調(diào)整幾何誤差,確保模型在不同硬件資源下都能保持適當(dāng)?shù)匿秩揪?。根?jù)目標(biāo)幾何誤差進(jìn)行計(jì)算,在得到初始屏幕空間誤差之后,將初始屏幕空間誤差與預(yù)設(shè)的閾值進(jìn)行比較,如果計(jì)算出的屏幕空間誤差小于或等于閾值,則認(rèn)為當(dāng)前模型的精度滿足要求,無需加載更高精度的lod層級;如果屏幕空間誤差大于閾值,則需要加載更高精度的lod層級,并重新計(jì)算屏幕空間誤差,直到計(jì)算出的屏幕空間誤差小于或者等于閾值。在確定目標(biāo)屏幕空間誤差之后,確定對應(yīng)的目標(biāo)層級以及目標(biāo)瓦片數(shù)據(jù),將目標(biāo)瓦片數(shù)據(jù)疊加在當(dāng)前模型中,得到目標(biāo)模型。
38、在本技術(shù)中,由于根據(jù)硬件的負(fù)載參數(shù)來實(shí)時(shí)對初始幾何誤差進(jìn)行動(dòng)態(tài)調(diào)整,實(shí)現(xiàn)了當(dāng)硬件資源充足時(shí),可以增加模型的精細(xì)度;當(dāng)資源緊張時(shí),則適當(dāng)降低精度,以維持流暢的渲染速度。同時(shí),避免了硬件資源的過度空閑或過載,從而提高整體資源的利用率。目標(biāo)屏幕空間誤差的確定有助于在視覺效果和渲染性能之間找到最佳平衡點(diǎn),既保證了模型的清晰度,又確保了渲染的流暢性。根據(jù)目標(biāo)屏幕空間誤差來選擇所需層級的瓦片數(shù)據(jù),避免了數(shù)據(jù)的冗余或缺失,從而提高了渲染效率和準(zhǔn)確性。基于目標(biāo)瓦片數(shù)據(jù)集進(jìn)行渲染,可以確保模型在硬件資源允許的情況下以最高效率進(jìn)行渲染。