現在考慮object座標系中的點p(
px,p
y,pz
) 向camera座標系進行變換,object座標軸分別為xyz,camera座標軸分別為uvn p=
pxx⃗
+pyy
⃗ +pz
z⃗ 先只考慮旋轉變換,camera座標系的基向量可表示為: ⎧⎩
⎨⎪⎪u
⃗ v⃗ n
⃗ =u.
xx⃗ +
u.yy
⃗ +u.
zz⃗ =
v.xx
⃗ +v.
yy⃗ +
v.zz
⃗ =n.
xx⃗ +
n.yy
⃗ +n.
zz⃗ 即 (
u⃗ ,v
⃗ ,n⃗
)t=m
(x⃗ ,
y⃗ ,z
⃗ )t
其中, m=
⎛⎝⎜u
.xv.
xn.x
u.yv
.yn.
yu.z
v.zn
.z⎞⎠
⎟ 可以觀察到mm
t=i ,所以有 mt
(u⃗ ,
v⃗ ,n
⃗ )t=
(x⃗ ,
y⃗ ,z
⃗ )t⇒
(u⃗ ,
v⃗ ,n
⃗ )m=
(x⃗ ,
y⃗ ,z
⃗ )現在再考慮點p
p=(x
⃗ ,y⃗
,z⃗ )
⋅⎛⎝⎜
pxpy
pz⎞⎠
⎟=(u
⃗ ,v⃗
,n⃗ )
⋅m⎛⎝
⎜pxp
ypz⎞
⎠⎟可以看到,齊次座標下,旋轉變換矩陣為 ⎛⎝
⎜⎜⎜u
.xv.
xn.x
0u.y
v.yn
.y0u
.zv.
zn.z
0000
1⎞⎠⎟
⎟⎟再考慮平移變換,camera座標系原點與object座標系原點構成的向量即為平移向量,記為ey
e→,向camera座標系的座標軸投影,即得到平移變換矩陣 ⎛⎝
⎜⎜⎜⎜
⎜100
0010
0001
0−ey
e→⋅u
⃗ −ey
e→⋅v
⃗ −ey
e→⋅n
⃗ 1⎞⎠
⎟⎟⎟⎟
⎟ 所以,最終的modelview矩陣為: ⎛⎝
⎜⎜⎜⎜
⎜u.x
v.xn
.x0u
.yv.
yn.y
0u.z
v.zn
.z0−
eye→
⋅u⃗ −
eye→
⋅v⃗ −
eye→
⋅n⃗ 1
⎞⎠⎟⎟
⎟⎟⎟
opengl 矩陣變換
opengl 矩陣變換 opengl 座標系的變換如下圖 我們給我們的圖形,設定好頂點座標後,通過model matrix 變換為世界座標,然後 view matrix相機座標,projection matrix 螢幕座標x,y 1,1 矩陣變換的結果是把三維的世界最終裁剪為二維的螢幕,數學的說法就...
從矩陣的定義開始談OpenGL矩陣變換
前言 矩陣的定義 先從2d場景說起.先從乙個最簡單的問題開始.q1 乙個點p x,y 它關於原點o的對稱點為p x y 請問x y 與x,y有什麼關係?下面兩個問題稍微難一些。q2 點 繞o逆時針旋轉45 得到點p x y 求p 的座標。a2 設p座標為p x,y 且滿足 由題意 p旋轉45 後得到...
OpenGL 矩陣變換GLM庫的使用
glm和mvp矩陣操作速記 連續工作15小時,累了,睡覺。若未特別說明,以下示例均假設矩陣 向量為四維 glm mat4 mat glm vec4 vec 對於vec來說,第四位為1代表座標,0代表方向 平移矩陣 1 0 0 x 0 1 0 y 0 0 1 z 0 0 0 1 構造平移矩陣 glm ...