楊飛
【摘 要】曲面細分技術在數字造型藝術領域主要體現(xiàn)在電影工業(yè)或動畫設計的預渲染系統(tǒng)和虛擬現(xiàn)實及3D游戲的實時系統(tǒng)。隨著DirectX和OpenGL兩大3D API的誕生和發(fā)展,今天的圖形硬件已經能夠提供驚人的計算能力,實時系統(tǒng)對于光影計算、紋理貼圖的處理都已經達到了非常精細的地步,各種新興的光照算法和貼圖技術層出不窮,對于數字造型表面細節(jié)及光影效果的刻畫也已經達到一個新高度。運用曲面細分技術的基本原理及相關算法,根據數字造型藝術領域的特性,選用適當的引擎技術和開發(fā)思路,重點研究曲面細分的幾何失真與抗失真方面的問題和基于DirectX11的Tessellation曲面細分的工程實驗應用。通過本論文的研究實踐,解決了幾何失真與抗失真方面的問題,讓數字造型藝術作品有了新的技術表現(xiàn)形式,同時為曲面細分技術拓展新的應用領域提供了可能性。最后,本論文得到了曲面細分技術在虛幻引擎UE中的實際工程應用的可行性結論,解決了曲面細分技術在數字造型藝術領域的實際終端應用。
【關鍵詞】曲面細分;數字造型藝術;虛幻引擎UE;幾何失真
一、理論意義及實用價值
數字藝術(也稱為計算機圖形圖像藝術)經過了三十多年的發(fā)展,從最早期的字符顯示到簡單的二維圖形顯示再到后來的三維圖形圖像的視覺呈現(xiàn),CG藝術所依托的視覺計算也同樣經歷了一個漫長的過程,對真實世界的虛擬化視覺呈現(xiàn)是其不變的使命和追尋的目標,數字化的藝術呈現(xiàn)已然成為一種被廣泛使用和傳播的藝術手法。還有一個重要的研究方向一直未有大的突破,成為阻礙數字藝術發(fā)展的一個瓶頸,這就是作為三維圖像最基礎最重要的一部分——三維模型本身,以往受限于硬件,而無法實時得到真實可信的模型細節(jié),而今天通過GPU的曲面細分模塊能夠即時得到創(chuàng)作者想要的結果,從而使創(chuàng)作者在數字造型藝術領域不再受限于硬件,這是具有里程碑意義的突破,對于整個數字藝術的發(fā)展都會產生極為深遠的影響,意義重大。
曲面細分技術本身歷史久遠,但以往采用CPU實現(xiàn)的方式效率過于低下,導致無法應用于對實時性要求較高的游戲/VR(虛擬現(xiàn)實)領域,基于GPU的曲面細分技術很好的解決了這一問題,但是由于工作流程與之前的實現(xiàn)方式有較大差異,因此現(xiàn)階段對于如何在實時系統(tǒng)實現(xiàn)該技術還沒有一個完全標準化的流程,目前一些新版本的3D實時引擎都已集成了該技術,但過于繁瑣的操作以及代碼的編寫,使得很多藝術創(chuàng)作者望而卻步,對于藝術創(chuàng)作者來說迫切需要一個標準化的流程以及選用合適的實時3D引擎來進行創(chuàng)作。
二、國內外研究現(xiàn)狀
國際方面:基于GPU實現(xiàn)的曲面細分技術依托于DirectX。這是由微軟公司開發(fā)的一個API(應用程序接口),其開發(fā)的初衷旨在為了解決2D/3D圖形的快速繪制問題,因此DirectX中有兩個重要的組件DirectDraw(負責2D圖形渲染)和Direct3D(負責3D圖形渲染),GPU實現(xiàn)的曲面細分技術轉變?yōu)橐环N切實可行的技術實現(xiàn)并開始為世人所知是在DirectX 8.0推出之際,這種技術最初由ATI公司提出,被微軟看重后集成于DirectX 8.0當中,并被命名為N-Patch(ATI稱之為TruForm),當N-Patch技術并沒有得以推廣,原因便在于其本身存在一個重大缺陷——幾何失真。
國內方面:國內對于曲面細分技術的研究起步較晚,直至2000年才有相關文獻出版,而在近幾年,曲面細分的相關研究逐漸多了起來,研究領域主要集中在基礎算法、工程VR(虛擬現(xiàn)實)等方面。
綜上所述,總體來講國內在曲面細分技術領域的研究還是比較少,主要集中在CAD/CAM等工程研究領域。而基于GPU實現(xiàn)的曲面細分技術在基礎算法方面與之前的CPU實現(xiàn)方式沒有太大差異,在輪廓失真、細節(jié)控制和反走樣等方面還是做出了較大改進,但由于這種實現(xiàn)方式才出現(xiàn)不久,加上與之相配套的硬件、API等也都是新鮮事物,因此基于GPU實現(xiàn)的曲面細分技術在國內的相關研究和應用還不多見,所以論文研究應用方向均有一定的經濟效應和社會效益。
(一) 曲面鑲嵌技術相關理論
所謂曲面細分是指以一定的規(guī)則對多邊形網格進行逐層精化,形成一個收斂的網格序列,取序列極限的曲面造型方式,稱這個序列的極限為細分曲面[1]。通常,在實際應用中我們常以某個層次的細分網格來代替細分曲面,細分模式就是對網格進行精細化的規(guī)則,細分模式也稱為細分方法。它包括拓撲規(guī)則和幾何規(guī)則2個部分,細分方法作為曲線曲面的離散造型方法,其特點是:處理過程簡單,對數據的計算、生成和顯示的速度快,因而在幾何造型中有廣泛的應用。
(二)基于DircetX 11的Tessellation技術簡介
上文中簡單敘述了曲面細分技術理論,新一代基于DircetX 11的Tessellation技術雖然在基礎概念和算法方面并無大的突破,但其在GPU硬件構架上以及API(DircetX 11)上做出改進都是巨大的,新一代符合DirectX 11標準的GPU都集成了被稱之為PolyMorph Engine(多形體引擎)的專用硬件單元來負責處理和曲面細分相關的工作,例如:頂點拾?。╒ertex Fetch)、細分曲面(Tessellation)、視口轉換(Viewport Transform)、屬性設定(Attribute Setup)、流輸出(Stream Output)等五個方面的處理工作,它與DircetX 11中的Tessellator(鑲嵌器)功能遙相呼應,多形體引擎融合了之前的固定功能硬件單元,使之成為一個有機整體。
(三)曲面細分的技術實現(xiàn)
在上面的敘述中我們已經提到了DirectX 11曲面細分的專用模塊稱之為Tessellator單元,Tessellator單元本身是不具備可編程性的,因此DirectX11向Tessellator單元輸入或者從其中輸出的過程是通過兩個之前提到過的管線階段完成的:Hull Shader (輪廓著色器)和Domain Shader (域著色器)。
Domain Shader將會接收由Tessellator產生出的點,并依照終點控制(control points)置換貼圖將這些點形成一個合適的幾何圖形。Domain Shader通過運行開發(fā)者設計的Domain Shader (域著色器)程序來執(zhí)行這些操作,這些Domain Shader程序控制這些新產生的點如何轉移或者如何按照終點控制以及紋理渲染取代這些數據。處理完畢這些點之后,Domain Shader將會輸出一個個頂點。我們就會看到大量Domain Shader輸出并直接進行光柵化,以便幾何圖形可以分散到屏幕上進行像素處理,具體工作流程見圖。(作者單位:重慶工程學院傳媒藝術學院)
參考文獻:
[1]廖文和,劉浩.細分曲面的研究現(xiàn)狀及應用展望[C]//第三屆中國幾何設計與計算大會論文集,北京:電子工業(yè)出版社,2007:115-125.
[2]王建衛(wèi),張澤銀,黃達人.四邊形網格的削角細分[J].浙江大學學報:理學版,2004,31(2):151-155.
[3]謝偉紅,葉亮榮.曲面細分方法及其應用[J].電腦知識與技術,2007,26(17):1425-1427.
[4]朱??;細分曲面理論及其應用問題的研究[D];中國科學技術大學;2011年