3D模型中的計算機圖形學原理

3D模型中的計算機圖形學原理

在計算機的發展過程中,圖形的表示從需要在顯示器上畫一條直線段開始,進而需要畫一條曲線,再劃出2D幾何形狀、再到畫出複雜的3D幾何。這一系列的發展也引出計算機圖形的劃時代發展,下面詳細講解一下圖形在計算機中的表示方法。

圖形的表示也是符合一般自然科學的發展路線,同樣是從最簡單的圖形入手。首先是直線段、接着曲線段,有了這兩種的表示方法,就可以在計算機上畫出簡單的平面的圖像。畫了平面圖像就會想到畫3D立體的圖像。3D圖像的由曲面組成。那麼相應地就衍生出表示曲面的數學模型。
圖形學中對圖形的表示方法慣常採用參數數學函數對圖形建模,比較知名曲線表示的方法有B樣條線和Bezier樣條、NURBS曲線等參數曲線,對應地他們也就可以表示成相應的參數曲面。

在圖形學中表示圖形的方式有三種方法:基於線框的表示方法,基於表面的表示方法和基於實體的表示方法
基於線框的表示方法是單純用線段表示模型,當用它來表示3D模型時,會因爲線段太多導致畫面錯亂不堪難以辨別,所以這種方法一般使用不多。
基於表面的表示方法分爲兩種,一種是連續曲面,一種是離散曲面。連續曲面就是指用B樣條線和Bezier樣條、NURBS曲線等參數曲面表示的曲面,這種表面用於表達工業製造中較爲光滑的曲面非常合適。但是不適合表達真實世界中的物體,如茶壺、兔子模型等。離散曲面就是指在當前遊戲行業廣泛使用的使用三角網格來表示的表面。三角網格採用一系列分段線性的三角形來表近似逼近曲面,因而不能精確地表達解析曲面,但是他容易通過三維掃描技術大量獲取,採用足夠多的面片是可以任意精度逼近複雜的曲面,同時網格模型數據結構簡單、光照計算和顯示速度快並且適合硬件的並行處理。
基於實體的表示方法,這種方法能夠完整地、無歧義地表達三維形體,然而對於涉及物體表面的運算,如光照計算、光線求交和陰影計算時就特別不方便。

在商業應用中,複雜模型的表示都是使用基於離散曲面的表示方法,即三角網格表示,它具有以下優點:
三角網格屬於基於離散表面的表示方法。
他容易通過設備大量獲取。
他是通過三角面片無限逼近模型的一種表示方法。
他可以方便地存儲模型的數據(包括頂點信息,以及拓撲關係)。可以方便地計算各種光照模型。

模型的存儲方法有兩種,分別爲簡單的頂點存儲法半邊存儲法
簡單的數據存儲方式,在文件中,以V開頭,後跟3個浮點數表示一個頂點。然後以F開頭後跟三個整數,表示一個三角形三個頂點。
半邊表示方法,(同時存儲了模型網格的幾何信息和拓撲信息)核心思路是:把三角形一條邊拆分爲兩條半邊,半邊e方向是逆時針方向,那麼就有opposite(e)顯示對邊,next(e)是下一條邊,origin(e)是半邊的原點,incFace(e)是半邊所在的面。每條半邊它存儲的數據包括:原點,下一條半邊,半邊的對邊,半邊所在的面。

模型網格的處理方法分別有網格細分、簡化、重剖、光順
網格細分:將網格進行擴增,添加頂點,使用簡單的Loop方法進行添加。在要添加頂點的邊上的兩個頂點是3倍,其他兩個頂點是一倍。
網格簡化:多層次細節顯示簡化技術,在不同的距離視角內部,顯示不同層級的模型。在兩個不同的顯示層級之間做差值處理。模型簡化技術有三種:刪除頂點、壓縮邊、收縮面片。
網格重剖:網格重剖就是將網格進行平滑處理,滿足平滑處理的要求是:一個頂點有6條邊、每條邊都一樣長、邊之間的夾角爲60度。但是這種忽略了網格的特徵。故而引入基於特徵敏感度量的網格重剖,其實質就是基於網格計算距離時加入了一個特徵敏感係數。
網格的光順:去掉不需要的集合面片或者噪聲,得到與原網格基本一致的模型,但是更加光滑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章