關(guān)鍵詞:數(shù)字孿生,三維模型,輕量化,技術(shù)架構(gòu),評(píng)價(jià)方法
0 引言
數(shù)字孿生過(guò)程需要通過(guò)三維測(cè)繪、幾何建模、流程建模等技術(shù),完成物理對(duì)象的數(shù)字化,構(gòu)建出相應(yīng)的機(jī)理模型。三維模型的建模技術(shù)是用幾何概念描述對(duì)象的物理形狀,能夠?qū)⑽锢韺?duì)象的實(shí)體形狀映射到虛擬空間,并配合渲染等實(shí)現(xiàn)更好的可視化展示和交互。這些模型通常包含大量的數(shù)據(jù)和信息,使得模型的存儲(chǔ)和計(jì)算成本極高,拖慢數(shù)字孿生系統(tǒng)三維模型的可視化展現(xiàn)速度,嚴(yán)重影響數(shù)字孿生應(yīng)用效果。所以,在數(shù)字孿生應(yīng)用中,模型的優(yōu)化(比如輕量化[1-4]和格式轉(zhuǎn)換[5-6]等)是至關(guān)重要的一環(huán),可以顯著提高模型的跨平臺(tái)使用能力,從而提高數(shù)字孿生的性能和精度。其中,通過(guò)模型的輕量化處理,可以有效地減少模型的數(shù)據(jù)量和計(jì)算量,降低系統(tǒng)的運(yùn)行成本。目前,企業(yè)研發(fā)數(shù)字孿生應(yīng)用時(shí)常用的優(yōu)化網(wǎng)格模型、優(yōu)化紋理貼圖、減少模型頂點(diǎn)數(shù)等輕量化手段缺少標(biāo)準(zhǔn)規(guī)范流程以及模型質(zhì)量評(píng)價(jià)方法。本文基于面向數(shù)字孿生應(yīng)用場(chǎng)景需求的三維模型輕量化技術(shù)處理的主要原則,結(jié)合對(duì)國(guó)內(nèi)三維模型研發(fā)企業(yè)的調(diào)研成果,給出了滿足數(shù)字孿生應(yīng)用特點(diǎn)的三維模型輕量化處理技術(shù)通用架構(gòu),對(duì)三維模型輕量化處理效果的評(píng)價(jià)方法進(jìn)行了分析研究,為后續(xù)新國(guó)標(biāo)的制定提供指引。
1 技術(shù)架構(gòu)
面向數(shù)字孿生可視化應(yīng)用場(chǎng)景的三維模型輕量化的技術(shù)架構(gòu),由原始模型輸入、預(yù)處理輕量化、數(shù)字孿生項(xiàng)目生成、運(yùn)行時(shí)輕量化和終端顯示等處理環(huán)節(jié)構(gòu)成,如圖1所示。
三維模型的輕量化處理技術(shù)主要體現(xiàn)在技術(shù)架構(gòu)中的預(yù)處理輕量化和運(yùn)行時(shí)輕量化這兩個(gè)處理環(huán)節(jié)。其中,網(wǎng)格減面是通過(guò)對(duì)復(fù)雜的網(wǎng)格進(jìn)行精簡(jiǎn),可以在保證幾何特征的前提下減少三角形面片的數(shù)量,進(jìn)而減少網(wǎng)格的數(shù)據(jù)量的過(guò)程。預(yù)處理的實(shí)例化是在創(chuàng)建多個(gè)相同形狀和屬性的對(duì)象時(shí),通過(guò)引用單個(gè)對(duì)象(稱為實(shí)例)的方式來(lái)代替逐個(gè)復(fù)制,可以在增加同類對(duì)象數(shù)量時(shí)不增加多邊形數(shù)量,從而節(jié)省文件存儲(chǔ)空間。模型合并是將多個(gè)獨(dú)立的三維模型,通過(guò)技術(shù)手段合并為一個(gè)整體模型的過(guò)程。模型結(jié)構(gòu)信息導(dǎo)出是指將模型的整體結(jié)構(gòu)或部分結(jié)構(gòu)以某種格式或方式從原始三維模型數(shù)據(jù)中導(dǎo)出,屬性信息導(dǎo)出是指從原始三維模型中提取和導(dǎo)出三維模型中各對(duì)象的屬性信息。運(yùn)行時(shí)的實(shí)例化是指在加載與渲染多個(gè)相同形狀和屬性的對(duì)象時(shí),通過(guò)引用單個(gè)實(shí)例的方式來(lái)代替逐個(gè)加載與渲染,可以在增加同類對(duì)象數(shù)量時(shí)不增加多邊形數(shù)量,從而節(jié)省內(nèi)存空間與計(jì)算資源。運(yùn)行時(shí)的多層次細(xì)節(jié)(LOD)管理是指根據(jù)對(duì)象模型的節(jié)點(diǎn)在顯示環(huán)境中所處的位置和重要度,決定對(duì)象模型渲染的資源分配,降低非重要對(duì)象模型的面數(shù)和細(xì)節(jié)度,從而獲得高效率的渲染運(yùn)算的過(guò)程。
2 輕量化過(guò)程
首先是原始模型的輸入,也就是BIM模型、CAD模型、單模型和傾斜攝影等各類三維模型的導(dǎo)入過(guò)程。這些類型的三維模型都可以作為待輕量化處理并生成數(shù)字孿生項(xiàng)目的原始模型。
然后進(jìn)行預(yù)處理輕量化,是指對(duì)各類型三維模型在導(dǎo)入數(shù)字孿生項(xiàng)目之前進(jìn)行輕量化預(yù)處理的過(guò)程。此過(guò)程的輕量化處理包括子模型實(shí)例化、多層次細(xì)節(jié)(LOD)生成、模型減面、數(shù)據(jù)壓縮等模型通用處理方法,也包括針對(duì)單模型的子模型合并,以及針對(duì)BIM類型模型與CAD類型模型的參數(shù)化模型轉(zhuǎn)換、模型結(jié)構(gòu)信息與屬性信息導(dǎo)出方法。
對(duì)于CAD/BIM模型,有兩部分的數(shù)據(jù)需要導(dǎo)出。一部分是CAD/BIM模型的模型結(jié)構(gòu)信息與屬性信息。這部分?jǐn)?shù)據(jù)是用于描述CAD/BIM模型的PMI數(shù)據(jù)、裝配數(shù)據(jù)、構(gòu)件結(jié)構(gòu)數(shù)據(jù)等數(shù)據(jù)。模型結(jié)構(gòu)信息與屬性信息導(dǎo)出方法可以將導(dǎo)出的數(shù)據(jù)存放在XML、JSON等類型的文本文件中,然后執(zhí)行相同字符串合并等數(shù)據(jù)壓縮處理,也可以將導(dǎo)出的數(shù)據(jù)存放在數(shù)據(jù)庫(kù)中,通過(guò)模型與構(gòu)件的唯一標(biāo)識(shí)進(jìn)行數(shù)據(jù)訪問(wèn)。另一部分CAD/BIM模型需要導(dǎo)出的數(shù)據(jù)是三維模型數(shù)據(jù)。這部分?jǐn)?shù)據(jù)的導(dǎo)出需要經(jīng)歷參數(shù)化模型轉(zhuǎn)換、實(shí)例化、生成LOD、數(shù)據(jù)壓縮這四個(gè)過(guò)程。參數(shù)化模型轉(zhuǎn)換將三維模型表達(dá)由參數(shù)化形式轉(zhuǎn)換為網(wǎng)格形式,然后對(duì)各構(gòu)件進(jìn)行實(shí)例化處理。CAD/BIM模型的構(gòu)件是標(biāo)準(zhǔn)化的,因此對(duì)CAD/BIM模型進(jìn)行實(shí)例化處理通常能獲得很好的效果。實(shí)例化處理后再對(duì)CAD/BIM模型生成LOD。CAD/BIM模型生成LOD時(shí)可以合并所有構(gòu)件,由導(dǎo)出的模型結(jié)構(gòu)數(shù)據(jù)提供所有構(gòu)件的結(jié)構(gòu)信息。最后進(jìn)行數(shù)據(jù)壓縮,就可以獲得數(shù)字孿生項(xiàng)目需要的輕量化后的三維模型以及導(dǎo)出的模型額外信息。
對(duì)于單模型(包括靜態(tài)模型與動(dòng)畫(huà)模型),預(yù)處理輕量化包含四個(gè)處理過(guò)程:生成LOD、實(shí)例化、子模型合并和數(shù)據(jù)壓縮。對(duì)單模型的處理首先經(jīng)過(guò)實(shí)例化過(guò)程,對(duì)相同形狀與屬性對(duì)象進(jìn)行實(shí)例化。再經(jīng)過(guò)生成LOD過(guò)程,在保持實(shí)例化的情況下通過(guò)減面等輕量化方法生成多個(gè)精度不同的LOD模型。然后經(jīng)過(guò)子模型合并過(guò)程,對(duì)各LOD模型的非實(shí)例化對(duì)象進(jìn)行合并處理。最后經(jīng)過(guò)數(shù)據(jù)壓縮處理就能獲得數(shù)字孿生項(xiàng)目需要的輕量化后的單模型。
對(duì)于傾斜攝影模型,預(yù)處理輕量化包含三個(gè)處理過(guò)程:生成LOD根層級(jí)、模型減面和數(shù)據(jù)壓縮。
傾斜攝影模型首先經(jīng)過(guò)生成LOD根層級(jí)過(guò)程,對(duì)沒(méi)有根節(jié)點(diǎn)的傾斜攝影模型生成根節(jié)點(diǎn)。根節(jié)點(diǎn)是一個(gè)包含傾斜攝影模型整體輪廓的節(jié)點(diǎn)文件,能夠在查看傾斜攝影模型時(shí)提升模型加載速度及在數(shù)字孿生大場(chǎng)景中極大地減少內(nèi)存、顯卡等資源消耗。生成根節(jié)點(diǎn)后,傾斜攝影模型進(jìn)入模型減面處理,對(duì)傾斜攝影模型根節(jié)點(diǎn)及其他各模型節(jié)點(diǎn)分別進(jìn)行模型減面。最后經(jīng)過(guò)數(shù)據(jù)壓縮處理就能獲得數(shù)字孿生項(xiàng)目需要的輕量化后的傾斜攝影模型。
數(shù)字孿生項(xiàng)目生成是指將預(yù)處理輕量化后的模型與模型額外信息,合并導(dǎo)入到數(shù)字孿生項(xiàng)目的過(guò)程。
運(yùn)行時(shí)輕量化是指在數(shù)字孿生項(xiàng)目運(yùn)行時(shí),進(jìn)行輕量化處理的過(guò)程。此過(guò)程的輕量化處理,主要包括運(yùn)行時(shí)LOD管理與運(yùn)行時(shí)實(shí)例化兩部分。其中,運(yùn)行時(shí)LOD管理在執(zhí)行時(shí)可以在確定LOD層級(jí)后,對(duì)同LOD層級(jí)的模型進(jìn)行分區(qū)域合并處理,以提升渲染效率。
最后的終端顯示是指數(shù)字孿生項(xiàng)目經(jīng)過(guò)各種輕量化處理后,渲染出可視化結(jié)果,并在各種顯示終端上進(jìn)行呈現(xiàn)的過(guò)程。
3 質(zhì)量評(píng)價(jià)
目前,對(duì)于數(shù)字孿生系統(tǒng)中經(jīng)過(guò)輕量化處理后的三維模型,國(guó)內(nèi)外都還沒(méi)有統(tǒng)一的質(zhì)量評(píng)價(jià)標(biāo)準(zhǔn)。數(shù)字孿生應(yīng)用場(chǎng)景的三維實(shí)景模型在生產(chǎn)建模工藝、成果表現(xiàn)和應(yīng)用層次等方面均與傳統(tǒng)三維模型的建模過(guò)程不同,完全依據(jù)現(xiàn)行的三維地理信息模型相關(guān)規(guī)范[7]進(jìn)行質(zhì)量檢驗(yàn),會(huì)產(chǎn)生較大的應(yīng)用偏差。
數(shù)字孿生系統(tǒng)的輕量化三維模型可能的質(zhì)量問(wèn)題主要有以下幾個(gè):(1)模型失真。在三角面簡(jiǎn)化過(guò)程中,如果誤差控制不當(dāng),可能會(huì)導(dǎo)致模型失真,出現(xiàn)鋸齒狀等情況。(2)精度降低。在數(shù)據(jù)壓縮過(guò)程中,對(duì)數(shù)據(jù)進(jìn)行采樣和刪除操作可能會(huì)導(dǎo)致精度下降,從而影響模型質(zhì)量。(3)紋理丟失。在紋理數(shù)據(jù)壓縮過(guò)程中,使用一些壓縮算法可能會(huì)導(dǎo)致紋理信息的丟失,從而影響模型的視覺(jué)效果。(4)渲染速度無(wú)法提升。即使對(duì)模型進(jìn)行了輕量化處理,仍然可能會(huì)因?yàn)槟P瓦^(guò)大或復(fù)雜而導(dǎo)致渲染速度慢。
數(shù)字孿生系統(tǒng)中三維模型輕量化處理質(zhì)量可以通過(guò)一些具體的指標(biāo)來(lái)進(jìn)行度量,如網(wǎng)格減面技術(shù)的網(wǎng)格減少率和減面時(shí)間、實(shí)例化技術(shù)的實(shí)例化渲染效率和實(shí)例化壓縮率、LOD生成技術(shù)的LOD生成時(shí)間、模型合并技術(shù)的合并精度和合并時(shí)間、模型壓縮技術(shù)的數(shù)據(jù)壓縮比和數(shù)據(jù)壓縮速度等。具體的評(píng)價(jià)指標(biāo)對(duì)應(yīng)的操作和計(jì)算方法如下。
3.1 網(wǎng)格減面
(1)網(wǎng)格減少率
打開(kāi)模型查看器,查看原始模型總面數(shù)并記錄為;對(duì)原始模型執(zhí)行網(wǎng)格減面處理,并導(dǎo)出為減面后的模型;打開(kāi)模型查看器,查看減面后模型總面數(shù),并記錄為。面片減少率可按公式(1)計(jì)算:
3.3 LOD生成時(shí)間
選擇一個(gè)網(wǎng)格模型文件,通過(guò)模型查看器查看原始模型的總面數(shù)與總頂點(diǎn)數(shù),分別記錄為與;通過(guò)幀率、渲染時(shí)間等指標(biāo),對(duì)比使用LOD前后模型的性能差異;對(duì)原始模型執(zhí)行多級(jí)LOD生成處理生成n 個(gè)LOD層級(jí),并使用秒表記錄總處理時(shí)長(zhǎng);通過(guò)模型查看器查看每個(gè)LOD層級(jí)模型的總面數(shù)與總頂點(diǎn)數(shù),分別記錄為與;檢查每個(gè)LOD層級(jí)模型總面數(shù)之間是否滿足如下關(guān)系:
3.4 模型合并
(1)合并精度
獲取合并前原始三維模型的所有頂點(diǎn),形成點(diǎn)集A;對(duì)原始三維模型執(zhí)行模型合并處理,獲取合并后三維模型的所有頂點(diǎn),形成點(diǎn)集B;對(duì)點(diǎn)集A中的所有頂點(diǎn),獲取點(diǎn)集A中的每個(gè)點(diǎn)到點(diǎn)集B中的最近點(diǎn)的最大距離(Hausdorff距離-度量?jī)蓚€(gè)點(diǎn)集之間相似度的指標(biāo)),記錄為;對(duì)點(diǎn)集B中的所有頂點(diǎn),獲取點(diǎn)集B中的每個(gè)點(diǎn)到點(diǎn)集A中的最近點(diǎn)的最大距離,記錄為;點(diǎn)集A與點(diǎn)集B的平均Hausdorff距離可按公式(6)計(jì)算:
3.5 模型壓縮
選擇一個(gè)網(wǎng)格模型文件,查看文件大小并記錄為;對(duì)原始模型執(zhí)行數(shù)據(jù)壓縮處理,并導(dǎo)出為壓縮后的模型文件,并通過(guò)秒表測(cè)試數(shù)據(jù)壓縮處理時(shí)間,記錄為T(mén)S;查看壓縮后的模型文件大小,并記錄為。數(shù)據(jù)壓縮比可按公式(8)計(jì)算:
4 結(jié)論
本文基于面向數(shù)字孿生應(yīng)用場(chǎng)景需求的三維模型輕量化處理技術(shù)需求,提出一種數(shù)字孿生應(yīng)用特點(diǎn)的三維模型輕量化處理技術(shù)通用架構(gòu),對(duì)技術(shù)架構(gòu)涉及的輕量化處理流程進(jìn)行了具體論述。在分析數(shù)字孿生系統(tǒng)的輕量化三維模型質(zhì)量問(wèn)題的基礎(chǔ)上,對(duì)影響輕量化三維模型質(zhì)量的關(guān)鍵評(píng)價(jià)指標(biāo)及其評(píng)價(jià)方法進(jìn)行了研究,給出了這些關(guān)鍵指標(biāo)的計(jì)算方法,為后續(xù)新國(guó)標(biāo)的制定提供了指引。