林曉佳
摘 要:隨著虛擬現實(Virtual Reality, VR)技術的不斷進步和發(fā)展,其三維模型的建立已經被越來越多地應用在動畫制作方面。一個復雜虛擬場景的真實感是否強烈,與三維模型的精細程度直接相關。一般來說,三維場景中三角面的數量與該場景的真實感呈現正相關關系,反之則真實感越弱;雖然增加三角面的數量可以提高真實感,但是其也會帶來繪制速度的降低,即實時性無法得到有效保障。因此,一個虛擬場景的真實感和實時性便成為一對矛盾的存在。所以本文在傳統(tǒng)的細節(jié)層次(Levels of Detail, LOD)模型生成算法的基礎上,總結并提出了自適應的細節(jié)層次模型生成算法,使其可以在保證實時性的前提下,盡可能地增加繪制的三角面的數量,以獲得最大程度的真實感。
關鍵詞:虛擬現實技術;三維模型;三角面;細節(jié)層次;真實感
中圖分類號:TP391.9? 文獻標識碼:A? 文章編號:1673-260X(2023)05-0040-05
進入新世紀以來,隨著計算機技術的飛速進步,其對于三維場景的處理能力也得到了極大的提高,并且成本也在逐步降低[1]。這使得虛擬現實(Virtual Reality VR)技術得到了快速的發(fā)展與應用,其三維處理技術也被越來越多地應用在動畫的制作當中,展現出了十分廣闊的應用前景。
對于現今的移動互聯網時代來說,三維圖像在移動端和個人電腦(Personal Computer PC)端的實時生成和渲染,已經成為動畫領域和虛擬現實領域中用戶體驗的核心與關鍵[2]。要使觀看者有更強的真實感,那么就意味著三維場景中點、線、面的數量越多,即三維場景的渲染質量越好[3];這就會造成計算機系統(tǒng)的開銷增大,尤其是內存和處理器的處理速度,這對三維場景的渲染速度有極大的影響,對用戶來說就會感受到三維圖像的流暢性欠佳[4]。另一方面,如果只是追求三維圖形的顯示速度,那么必然會降低三維圖像的真實感,也同樣會造成較差的用戶體驗[5]??偟膩碚f,需要在三維場景的渲染速度和渲染質量間尋找一個平衡點。一般來說有兩種方式,即可以通過由硬件方式提升計算機的性能,和通過模型簡化和數學加速這兩種方式[6]。通過提升計算機硬件性能的方式,就可以認為是增加計算機的內存容量、處理器性能、顯卡顯存容量等,比如采用多核處理器和專業(yè)高端的顯卡[7]。通過模型簡化和數學加速的方式,即采用適當的數學模型,在硬件性能不變的情況下,獲得最優(yōu)的繪制質量[8]。采用提升計算機硬件性能的方式會極大的增加消費者的使用成本,這就使得通過模型簡化和數學加速的方式得到了較多的應用。細節(jié)層次(Level of detail LOD)模型就是一種最常用的模型加速方法,但是其在三維圖像的真實性和實時性協調方面還有較大的提升空間[9,10]。
綜上所述,目前大多數的研究都是在某一單一方面,比如如何提高計算機或播放媒體的硬件性能,來提高三維圖像的渲染速度和渲染質量;比如通過優(yōu)化算法來提升三維圖像的渲染質量。這些解決方法都忽略了一個問題,即計算機硬件性能、渲染速度、渲染質量三者與用戶體驗相適配的問題。所以,根據不同的計算機硬件性能,協調三維圖像的真實性和實時性,是十分具有研究價值的。本文在LOD模型的基礎上,對其進行自適應的改進,使其在不同計算機硬件配置的情況下,在真實性和實時性平衡點尋找上具有較好的效果。
1 細節(jié)層次(LOD)模型生成方法
細節(jié)層次模型被定義為,通過虛擬場景中攝像機與三維模型的距離,來確定采用與之對應的數學模型。一般采用的規(guī)則是,當距離較遠時采用精度較低的模型,距離較近時采用精度較高的模型。細節(jié)層次(LOD)模型已經成為了優(yōu)化三維圖像繪制速度最有效的方法。目前,細節(jié)層次(LOD)模型的實現,靜態(tài)LOD和動態(tài)LOD是兩種最常用的實現方法,其具體區(qū)別如圖1所示。
1.1 靜態(tài)LOD技術
靜態(tài)LOD技術,該技術在渲染前就會提前設定一組不同的模型,來分別對應不同的三維場景,并事先進行約定。其原理就是根據三維模型到攝像機距離等級的不同,將其對應為不同的模型,可以通過圖2更加直觀的表示。
一般來說,可以將靜態(tài)LOD分為三個層次,即高精度模型(作用范圍小于15米)、中精度模型(作用范圍在15米到30米之間)、低精度模型(作用范圍大于30米),作用范圍即三維模型與攝像機的距離。
1.2 動態(tài)LOD技術
動態(tài)LOD技術中,每一層次的模型都是通過上一層次經過點、邊、面的折疊算法生成的。其模型的精度會逐漸降低,從而保證了場景渲染的連續(xù)性。動態(tài)LOD技術的基于點、線、面折疊的算法如下。
(1)基于頂點折疊的方法。該方法根據需求刪除某些相對不重要的頂點,比如通過在局部范圍內擬合一個平面,通過獲得頂點到平面的距離來判斷該頂點是否需要刪減。這種方法可以有效的降低數據總量。
(2)基于邊折疊的方法。該方法的原理,就是將一條邊壓縮成為一個頂點,通過這樣的操作,可以很容易的減少一個頂點、三條邊、以及兩個面的數據。如圖3所示。
上圖中新頂點位置的選擇,可以通過子集法和最優(yōu)法來得到。
根據子集法的原理,新頂點必然產生于原頂點中,根據上圖則為v=v1或v=v2。
根據最優(yōu)法的原理,新頂點必然滿足二次誤差最小的條件。一種常用的最優(yōu)法的求解方式為:定義頂點v的二次誤差度量為v到其對應的三
(3)基于面折疊的方法。該方法會選擇一個面,然后用一個新的頂點來替代該面;而與該面相關的面,均變化為與新頂點的連線。這種方式一次可以刪除兩個頂點與四個面。
1.3 兩種技術的對比
靜態(tài)LOD技術和動態(tài)LOD技術各有其優(yōu)缺點。靜態(tài)LOD技術所需要的渲染時間較短,但是其存在著冗余數據較多、三維圖像會出現跳變等問題。動態(tài)LOD技術,雖然可以在一定程度上減少冗余數據,以及可以有效的避免三維圖像的跳變,但是其渲染所需要的運算律較大、時間較長,會帶來實時性的問題。
2 自適應細節(jié)層次LOD模型建立
消費者所使用的PC機或移動端的情況是各部相同的,這也就造成了其三維圖形的繪制速度是有較大差異的,即最大承受點是不同的。因此,一套自適應細節(jié)層次模型應當根據實際硬件的性能,在保證圖像流暢性的前提下,選取最優(yōu)的三維圖像的繪制速度(幀率FPS)和繪制質量(三角面數)。
2.1 顯卡刷新速率FPS
FPS為每秒可以刷新的幀數,單位為“幀/秒”,該值越高即可以認為三維圖形的繪制速度越快,三維圖像就會變得越流暢。一般電影的FPS的值為24,即以每秒24幀的速度進行畫面的渲染,電影在這種幀速下,人眼是不會感覺到卡頓的。在一個虛擬3D場景中,其FPS的值是會隨著三維圖像中三角面數量的變化而變化的,其FPS的值與流暢度的關系如下表1所示。
根據上表可以看出,要保證三維圖像的基本流暢性,需要FPS的值大于40,才能保證實時性和流暢性。
2.2 自適應細節(jié)層次模型
自適應細節(jié)層次模型的建立可以分為以下幾步。
首先,計算得出用戶PC端或移動端,在確?!笆至鲿场边@一標準的幀率的前提下,可以渲染的最大三角面的數量為M。其次,對本幀的三維模型所需要渲染的三角面的數量為N;倘若N>M,則采用動態(tài)LOD技術,通過邊折疊方法來減少三角面的數量(降低LOD級別);若N 這樣通過多次運算,便可以得到最合適的LOD級別,在三維圖像的繪制速度和繪制質量中找到最優(yōu)解。 3 案例應用 為了試驗的客觀性,本文在這里選用同一個三維場景,用兩個不同硬件配置的PC端進行渲染,來進行對比試驗。由此來說明,自適應細節(jié)層次的LOD模型,相比于傳統(tǒng)的細節(jié)層次LOD模型,在用戶體驗性上有較好的改善。 3.1 測試環(huán)境搭建 選用兩臺配置不同的PC來進行三維圖像的渲染,其配置如下表2所示。 由上表可以看出,在處理器(CPU)性能、內存、硬盤性能方面,PC1均優(yōu)于PC2。 3.2 測試過程 在Unity中建立一個工程,在該工程中新建一個三維場景,并且建立一個Prefab工程添加在其中,當每一幀進行刷新時,就在原有的三維場景中添加一個物體,由此便可以使該三維場景中的三角面數量不斷增加。通過記錄每一幀的幀率和三角面數,進行對比測試。在試驗時統(tǒng)一采用Win7平臺,并且關閉所有不必要的進程,以保證試驗的客觀性。 傳統(tǒng)的細節(jié)層次模型,渲染時的實現過程如下圖4所示。 自適應的細節(jié)層次模型,渲染時的實現過程如下圖5所示。 3.3 測試過程 采用3.2節(jié)的方法,在3.1節(jié)中的PC1和PC2分別進行試驗。記錄其三角面數和幀率的數據。部分具有代表性的數據如下表3和表4所示。 表3為采用傳統(tǒng)的細節(jié)層次模型進行試驗所得到的數據。 由上表的數據可以看出,通過傳統(tǒng)細節(jié)層次模型來實現的三維場景的渲染,在三角面數量增加時,其不會自動降低三角面數量來提升幀率。這就會造成在三角面數量較多時,三維場景畫面的卡頓,這會對用戶體驗產生很強的負面影響。根據上表的數據也可以看出,計算機硬件性能的提升也可以提高三維場景的渲染能力。 表4為采用自適應的細節(jié)層次模型進行試驗所得到的數據。 由上表的數據可以看出,通過自適應細節(jié)層次模型來實現的三維場景的渲染,在三角面的數量較低時,與傳統(tǒng)細節(jié)層次模型并無太大的差別,這種情況下以現有計算機硬件性能水平,可以很輕松的同時實現三維場景渲染速度和渲染質量的指標。在三角面數量較多時,該模型會通過降低三角面數量的方式,來提高幀率,以達到三維場景十分流暢的水平,這樣可以給用戶更好的體驗。 4 結論 綜上所述,本文研究了三維場景在渲染速度(幀率)和渲染質量(三角面數)的平衡問題,通過模型分析,來尋找三維場景渲染速度和渲染質量平衡點。以傳統(tǒng)的細節(jié)層次模型為基礎,在此基礎上充分考慮不同硬件終端設備性能上的差異,使其在保證三維場景渲染流暢性的前提條件下,選取適合的三角面數。最終通過試驗可以說明,改進后的模型與傳統(tǒng)模型相比,可以有效的保障三維場景渲染的流暢性。由此可以使得用戶體驗得到進一步的提升。 參考文獻: 〔1〕yingxi Z, juan L, xin L, et al. Fast processing method to generate gigabyte computer generated holography for three-dimensional dynamic holographic display[J]. China Optical Express: English Edition, 2016, 14(03):37-41. 〔2〕Stengel M, Eisemann M, Eisemann M, et al. Adaptive image-space sampling for gaze-contingent real-time rendering[C]// Eurographics Symposium on Rendering. 2016. 〔3〕Hao Z, Cao L, Jin G. Lighting effects rendering in three-dimensional computer-generated holographic display[J]. Optics Communications, 2016, 370:192-197. 〔4〕Elshahali M H A A. Real-Time Processing and Visualization of 3D Time-Variant Datasets[J]. 2015, 35:134-135. 〔5〕Lin C J, Chen, Hung-Jen, Cheng, Ping-Yun, et al. Effects of Displays on Visually Controlled Task Performance in Three-Dimensional Virtual Reality Environment[J]. Human Factors in Ergonomics & Manufacturing, 2015, 25(05):523-533. 〔6〕Hong B, Dong W. The calculation and the drawing of equivalent sections of model-based 3D graphics[C]// International Congress on Image & Signal Processing. 2016. 〔7〕Yuki Kon, Takuto Nakamura, Rei Sakuraqi, et al. HangerOVER: Development of HMO-Embedded Haptic Display Using the Hanger Reflex and VR Application[C]// 2018 IEEE Conference on Virtual Reality and 3D User Interfaces (VR). 2018. 〔8〕Averkiou M, Kim, Vladimir G, Mitra, Niloy J. Autocorrelation Descriptor for Efficient Co-Alignment of 3D Shape Collections[J]. Computer Graphics Forum, 2016, 35(01):261-271. 〔9〕Biljecki F, Ledoux H, Stoter J. Does a Finer Level of Detail of a 3D City Model Bring an Improvement for Estimating Shadows?[J]. 2017,3(01):21-22. 〔10〕Duckstein F. Extension of validity calculation to moving objects within a virtual reality system using frame-to-frame coherence.[J]. Computer Animation & Virtual Worlds, 2015, 9(04):259-272.