軟體光柵器的設計思想

2021-07-14 22:00:12 字數 1626 閱讀 4100

軟體光柵器的設計思想

排版有點亂,稍後補上

一、場景管理…壓根沒管

二、資源載入

三、好了…前戲完了..重點來了

四、頂點處理:四大座標系轉換

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提高整個製造過程的工作效率一樣。關於網管軟體的設計思想,我們 可以從技術和應用的角度來 一 從技術層面看 現在市場上可供選擇的網管軟體非常多,但真正滿足大中型企業管...