成果簡(jiǎn)介
目前市面上的3D模型格式,保存數(shù)據(jù)的形式多種多樣。有二進(jìn)制格式的也有文本格式的,有一個(gè)文件內(nèi)嵌所有數(shù)據(jù)的也有不同的數(shù)據(jù)分為不同的文件存儲(chǔ)的。但是每種3D模型格式除了存儲(chǔ)的數(shù)據(jù)量與數(shù)據(jù)類型有多有少,其他并沒有太多本質(zhì)上的區(qū)別。尤其是針對(duì)模型的加載與渲染展示過(guò)程,各模型格式?jīng)]有太多區(qū)別與針對(duì)性優(yōu)化。
目前市面上所有的3D模型格式都是要求先把整個(gè)3D模型文件都加載到內(nèi)存,然后才能開始解析,全部解析完了才能開始進(jìn)行渲染展示。這種加載解析方式對(duì)CPU的使用率很低,加載解析速度很慢,模型使用者需要等待較長(zhǎng)時(shí)間才能看到3D模型。這種加載解析方式?jīng)]有考慮到如何更快的渲染展示,也沒有考慮到如何在加載過(guò)程中減小內(nèi)存峰值,并且現(xiàn)有的3D模型格式基本不支持多線程同時(shí)加載解析同一3D模型,這極大限制了單3D模型的加載解析速度。本技術(shù)成果就旨在解決這些問(wèn)題。
此格式將模型幾何數(shù)據(jù)、骨骼權(quán)重?cái)?shù)據(jù)、動(dòng)畫數(shù)據(jù)與構(gòu)建數(shù)據(jù)這些大塊數(shù)據(jù)分為多個(gè)較小的子文件,每個(gè)子文件中包含多個(gè)完整的數(shù)據(jù)小單元。這種數(shù)據(jù)組織形式可以支持多線程一次加載解析多個(gè)子文件,每個(gè)線程解析出的數(shù)據(jù)可以根據(jù)解析的唯一標(biāo)識(shí)組合到一個(gè)完整的內(nèi)存數(shù)據(jù)中。每當(dāng)線程加載解析完一個(gè)子文件后,可直接對(duì)此子文件中數(shù)據(jù)進(jìn)行渲染展示,這樣可以大幅縮短3D模型加載等待時(shí)間并且大幅減小加載過(guò)程中的內(nèi)存峰值。同時(shí)可以實(shí)現(xiàn)多線程加載解析同一3D模型數(shù)據(jù),大幅提高單3D模型數(shù)據(jù)的加載解析速度。