軟體光柵器的設計思想
排版有點亂,稍後補上
一、場景管理…壓根沒管
二、資源載入
三、好了…前戲完了..重點來了
四、頂點處理:四大座標系轉換
1、世界座標矩陣:
推導:物體經過縮放,旋轉,平移:
|sx | | (1-(ry*ry+rz*rz)*2) (rx*ry-rw*rz)*2 (rx*rz+rw*ry)*2 | | 1 | | m00=(1-(vyvy+vzvz)*2)*s.x; m01=(vxvy+svz)*2*s.x; m02=(vxvz-svy)*2*s.x; |
| sy | * | (rx*ry+rw*rz)2 (1-(rx*rx+rz*rz)*2) (ry*rz-rw*rx)*2 | | 1 | = | m10=(vxvy-svz)*2*s.y; m11=(1-(vxvx+vzvz)*2)*s.y; m12=(vyvz+svx)*2*s.y; |
| sz | | (rx*rz-rw*ry)*2 (ry*rz+rw*vx)*2 (1-(rx*rx+ry*ry)*2) | | 1 | | m20=(vxvz+svy)*2*s.z; m21=(vyvz-svx)*2*s.z; m22=(1-(vxvx+vyvy)*2)*s.z; |
| 1 | | 1 | | tx ty tz 1 | | m30=t.x; m31=t.y; m32=t.z; m33=1|
所以世界座標矩陣:
mworld = mscale * mrotate * mtranslate
2、檢視矩陣(view矩陣)
camera的uvn(u:右方 v:上方 n:後方):切線空間:xyz
檢視矩陣其實就是:將camera平移回原點(inverse translation) 再 旋轉對齊 座標軸 的變換
inverse translation(攝像機當前座標(px,py,pz))
|1 |
| 1 |
t = | 1 |
| -px -py -pz 1|
假設camera當前的uvn為(u,v,n)
那麼他的逆向矩陣:
|u| |a00 a01 a02| |1 0 0|
|v| * |a10 a11 a12| = |1 1 0|(對齊z軸)
|n| |a20 a21 a22| |1 0 1|
|ux vx nx|
r = |uy vy ny|
|uz vz nz|
將其化為四維矩陣:
| ux vx nx |
| uy vy ny |
r = | uz vz nz |
| 1 |
所以檢視矩陣mview
| ux vx nx |
| uy vy ny |
mview = t*r = | uz vz nz |
| -px -py -pz 1 |
3、投影透視矩陣(剪裁矩陣)
首先引入homogeneous coordinates(齊次座標)
(x,y,z) - >(x,y,z,w(0
軟體光柵化渲染器 六
加入了透視矯正,畫素的覆蓋遵循了左上的原則。對1 z進行插值,將結果在除以1 z得到正確的插值。透視矯正紋理 void fillbottom bytexcorrect const t else if t.vertex 1 newpos y t.vertex 2 newpos y else if le...
軟體光柵化渲染器 十
環境光,一般場景中只有乙個環境光源 環境光 class light 定向光源,方向一定,並且光不會衰減 方向光源 class directionlight public light 計算鏡面高光 l direction double x l.x 2 vectordot l,vertex.normal...
網管軟體的設計思想
對於企業來說,提高it效率的重要性不言而喻,所以引進一套支援運維人員工作效率的軟體非常重要,正如用crm提高銷售人員的工作效率 用erp提高整個製造過程的工作效率一樣。關於網管軟體的設計思想,我們 可以從技術和應用的角度來 一 從技術層面看 現在市場上可供選擇的網管軟體非常多,但真正滿足大中型企業管...