3D圖形數學(8) 摘要: 當三角形的頂點轉換到裁剪空間后,我們對三角形做兩個重要測試。注意,這里討論的順序并不一定是硬件執(zhí)行的順序。
第一個測試稱作背面剔除,其目的是去除背面攝像機的三角形。在標準三角網格中,我們永遠看不到三角形背面,除非進入那些多面體內部。去除這些三角形并非必要,畫出它們依然得到正確的圖像,因為它們會被前方的三角形蓋住。但我們不想浪費時間去繪制任何看不見的物體,所以我們常做背面剔除,特別是在理論上有一半的三角形為背向的。
3D圖形數學(7) 摘要: 一旦知道哪些物體可見(或至少潛在可見),即可將其生成并提交到圖形處理器。該階段完成以下任務:
(1)細節(jié)層次(LOD)選擇
(2)漸進式生成幾何體
(3)向圖形API提交數據
3D圖形數學(6) 摘要: 若渲染速度并不重要,我們可以逐像素地計算光照和霧化。(對于光照,這項技術稱作Phong著色模型----不要和鏡面反射的Phong模型混淆。)然而這樣做計算量過于巨大,所以我們折中并減少計算的頻率。有兩個選擇:逐多邊形或逐頂點計算,這兩項技術分別稱作flat著色和Gourand著色。
使用flat著色,對整個三角形只計算一次光照值。通常計算光照的位置為三角形中心,表面法向量為三角形法向量。如圖15.17所示,使用flat著色,物體由多邊形構成的本質表露無遺,沒有任何光澤可言。
3D圖形數學(5) 摘要: 光隨距離衰減,所以遠離光源的物體會變暗一些?,F實世界里,光強度反比于物體和光源距離的平方。
i1 / i2 = d22 / d12
公式15.12 實際光線衰減反比于距離的平方
此處i為光強,d為距離。
3D圖形數學(4) 摘要: 標準光照方程的鏡面反射分量指由光源直接經物體表面反射入眼睛的光線,如圖 15.10:
n為表面法向量
v指向觀察者
l指向光源,對方向光源,l為定值
r為鏡像向量,即l對n鏡像之結果
θ為r和v的夾角,由r.v給出,描述鏡像的方向性。
3D圖形數學(3) 摘要:
標準光照模型是局部模型中的一種----即當處理一個物體時,不考慮其他物體的影響。物體也不向別的物體投下影子,實際上,物體自身無法生成影子,影子是使用全局光照模型生成的。
計算機中的色彩常用RGB色彩模型表示,這里R表示紅,G表示綠,B表示藍,其精度因平臺與渲染狀態(tài)而異。我們視RGB為0至1間的值,并且也不考慮其中各分量到底占用多少二進制位。在計算機圖形學中,色彩常被視為數學實體。我們用黑體的小寫羅馬字母表示色彩符號,如c,與向量符號相同,但由于二者上下文不同,所以不會混淆。
3D圖形數學(2) 摘要:
物體最開始由物體空間(和物體相連的坐標空間)來描述,其中常見的信息包括頂點位置和表面法向量。物體空間又稱作模型空間或局部空間。
可將坐標從模型空間中轉換到世界空間中,此過程稱作模型變換。通常,光照計算使用世界空間,但其實使用什么坐標空間無所謂,只要確保幾何體與光線在同一空間即可。
3D圖形數學(1) 摘要: 我們將討論渲染一幅帶有基本光照的單個圖像的大體過程,這里不考慮動畫和全局光照,如陰影和輻射度。
此外,注意這里只從概念上講解通過圖形管道的數據流,其順序并不是固定的。實踐中,我們也許會為了性能的優(yōu)化而并行或亂序執(zhí)行一些任務。比如,考慮到不同的渲染API,我們可能首先變換和照明所有頂點,然后才進一步的處理(進行裁剪和剔除),或者會并行處理二者,也可能在背面剔除之后再進行光照會得到更高效率。