3D圖形芯片的算法原理分析
1.局部坐標系(局部空間)
為了建模和進(jìn)行局部變換的方便可選擇被建模物體之內或附近的某一點(diǎn)作為局部坐標系的原點(diǎn)。例如可選擇一個(gè)立方體的某一頂點(diǎn)作為坐標原點(diǎn),三個(gè)坐標軸即是與該頂點(diǎn)相連的立方體的三條邊。在局部坐標系選定之后,物體各頂點(diǎn)的局部坐標以及相對于該局部坐標系的各頂點(diǎn)的法向量和物體上多邊形的法向量就可以被提取并存儲起來(lái)。
2.世界坐標系(世界空間)
當每一個(gè)物體在其局部坐標系中被建立起來(lái)之后,就需要將其放置到將要繪制的場(chǎng)景之中。組成場(chǎng)景的每個(gè)物體都有自己獨立的局部坐標系。整個(gè)場(chǎng)景的坐標系就是所謂的世界坐標系。場(chǎng)景中的所有物體都必須從自己的局部坐標系中變換到世界坐標系中以定義場(chǎng)景中物體之間的空間相對關(guān)系。如果一個(gè)物體在場(chǎng)景中被定義為運動(dòng)的,則必須為該物體定義一個(gè)隨時(shí)間變化的變換序列以便在每一幀將該物體變換到世界坐標系中的不同位置。場(chǎng)景中的光源也在世界坐標系中定義。如果光照計算是在世界空間中進(jìn)行,則對物體法向量的變換到此為止。對物體表面屬性如紋理、顏色等的定義和調整也在世界空間中進(jìn)行。
3.眼睛坐標系、相機坐標系或觀(guān)察坐標系(眼睛空間)
眼睛坐標系統是用來(lái)建立對世界空間進(jìn)行觀(guān)察時(shí)的觀(guān)察參數和觀(guān)察范圍的。在圖形學(xué)中通常用假想的相機來(lái)輔助對觀(guān)察系統的理解。一個(gè)假想的相機可以以任意方向放置在世界空間的任何位置,膠片平面在圖形學(xué)中就是觀(guān)察平面,也就是場(chǎng)景將投影到其上的平面。建立一個(gè)普遍適用的觀(guān)察空間相當繁瑣,在多數情況下是對眼睛坐標空間做許多限制。一個(gè)最小的實(shí)用系統可以這樣建立,首先要求眼睛坐標系的原點(diǎn)和投影中心是世界坐標系中的同一個(gè)坐標點(diǎn);其次要求觀(guān)察平面的法向量和觀(guān)察方向在眼睛空間中與Z坐標軸重合;最后,觀(guān)察方向必須是這樣的,當相機朝著(zhù)Z軸的正向時(shí)Z值的增加將遠離眼睛的位置,同時(shí)在左手坐標系的前提下,X軸指向右,Y軸向上。滿(mǎn)足這一要求的系統就可以使假想的相機以任何觀(guān)察方向放置在世界坐標空間中的任何位置。圖2 是有關(guān)坐標系之間的關(guān)系。
眼睛坐標系是最適宜做背面刪除的空間。背面刪除操作是將背對觀(guān)察者的多邊形全部剔除,在場(chǎng)景中這些多邊形對于觀(guān)察者來(lái)說(shuō)是不可見(jiàn)的。如果對一個(gè)凸物體做背面刪除,則可以完全解決其隱藏面問(wèn)題。對于具有凹面的物體而言這一操作并不能解決隱藏面問(wèn)題。背面刪除操作是通過(guò)計算多邊形所在平面的法向量與視線(xiàn)向量之間的夾角來(lái)決定該平面是否可見(jiàn)。如果這兩個(gè)向量的點(diǎn)積大于0,意味著(zhù)其夾角小于90o 即該多邊形是可見(jiàn)的,否則為不可見(jiàn)。視線(xiàn)向量是從多邊形指向視點(diǎn)的向量。多邊形平面的法向量可通過(guò)其不共線(xiàn)的三個(gè)頂點(diǎn)計算而得。多邊形的法向量必須指向物體的外部,為保證這一點(diǎn),多邊形的頂點(diǎn)必須以反時(shí)針?lè )较?從多邊形外部看時(shí))順序存儲。如圖3所示。
4.屏幕坐標系(屏幕空間)
屏幕空間是比較難于靠直覺(jué)理解的一種空間概念。它是描述如何觀(guān)察場(chǎng)景的方法的過(guò)程,與透視幾何有關(guān),也可以理解為怎樣定義場(chǎng)景中能夠到達眼睛(或相機)的光線(xiàn)的過(guò)程。將場(chǎng)景中的一個(gè)點(diǎn)投影到距離視點(diǎn)為D的觀(guān)察平面或屏幕要用到的基本變換是透視變換,屏幕或觀(guān)察平面的法向與觀(guān)察方向一致。從圖4可以看到,運用相似三角形原理,點(diǎn)P在屏幕上的投影P’(Xs= Dxe/Ze, ys=Dye/Ze)。屏幕與觀(guān)察平面略有不同,屏幕是觀(guān)察平面上的一塊矩形區域,在經(jīng)過(guò)一個(gè)與設備有關(guān)的變換之后,可以從觀(guān)察平面坐標求得屏幕坐標。屏幕空間的定義使得其只對一個(gè)封閉空間中所包圍的場(chǎng)景進(jìn)行繪制處理,這個(gè)封閉的空間稱(chēng)作視錐臺。它可以這樣來(lái)描述:設想在距離視點(diǎn)D處的觀(guān)察平面上有一尺寸為2h的正方形窗口,且該窗口關(guān)于觀(guān)察方向是對稱(chēng)的,則平面
xe=±hze/D ye=±hze/D
ze=D ze=F
將構成一個(gè)封閉的錐臺。其中xe、ye 、ze是指眼睛坐標系中的坐標,而平面ze=D和平面ze=F分別稱(chēng)作近處和遠處的裁剪平面,它們垂直于觀(guān)察方向,在此我們假設觀(guān)察平面與近處的裁剪平面重合。如圖4所示。對于透視投影而言,通過(guò)連接窗口角與投影中心就形成所謂的視錐體。

評論