感謝 softwarekid的博文
1. 本文將分為下面三部分
為什麼能用齊次座標進行裁剪
使用齊次座標裁剪的步驟
2. 引入:為什麼不在投影除法後裁剪
指經過透視變化矩陣之後的得到齊次座標;
透視除法指將透視投影得到的齊次座標轉化為三維座標,即除以齊次分量,經過透視除法的點才是在規範化裁剪立方體中的點。
為什麼不在投影除法後裁剪呢?為了簡單起見,取投影參考點是觀察座標原點,近裁剪平面是觀察平面的透視變化矩陣: =⎡
⎣⎢⎢⎢
⎢⎢⎢⎢
⎢cot
(θ2)
aspe
ct00
00co
t(θ2
)000
0zne
ar+z
farz
near
−zfa
r−10
0−2z
near
zfar
znea
r−zf
ar0⎤
⎦⎥⎥⎥
⎥⎥⎥⎥
⎥m=[cot(θ2)aspect0000cot(θ2)0000znear+zfarznear−zfar−2znearzfarznear−zfar00−10]
θ 是相機的視角,asp
ectaspect
是近裁剪平面的縱橫比,zne
arznear和zf
arzfar
分別是近裁剪平面和遠裁剪平面。
對於相機座標系下的任意一點 p(x
0,y0
,z0,
1)p(x0,y0,z0,1)
,經過該矩陣變化後得到p1=
mp0p1=mp0,p1
p1的座標為(x1
,y1,
z1,w
)(x1,y1,z1,w)
。從該矩陣中可以看到z1=
s∗z0
+tz1=s∗z0+t
,其中s=z
near
+zfa
rzne
ar−z
fars=znear+zfarznear−zfar,t=
−2zn
earz
farz
near
−zfa
rt=−2znearzfarznear−zfar
,可以看到ss和t
t都是常數,所以z1z1
和z0z0之間是線性關係,同理x1x1
與x0x0,y1y1
與y0y0都是線性關係。w=−
z0w=−z0
。如果此時對p1p1
進行透視除法,得到p′1
=(x′
1,y′
1,z′
1,w′
)=(x
1/w,
y1/w
,z1/
w,1)
p1′=(x1′,y1′,z1′,w′)=(x1/w,y1/w,z1/w,1)
,此時x′1
x1′與原x0x0
之間不再是線性關係,x′1
x1′是以x0x0
和z0z0為變數的函式。如果在透視除法後進行裁剪,那麼將不能運用線性插值,否則很多在原來座標系中的儲存資訊將會變形,比如:紋理、顏色等。所以,一般直接在齊次空間中做裁剪,在該空間中進行裁剪可以直接用線性插值。
3. 為什麼能用齊次座標進行裁剪⎣⎢
⎢⎢rr
rprr
rprr
rptt
ts⎤⎦
⎥⎥⎥[rrrtrrrtrrrtppps]rt
p表示投影分量(這個分量,好多教科書都沒提及過)sw
1p1x1
,y1,
z1)(x1,y1,z1)x0
,y0,
z0)(x0,y0,z0),z
y,zx,w
)(x,w)=1
w=1=
1w=11p1
0p01′
p1′′
0p0′′p′
4. 使用齊次座標裁剪的步驟(x
0,y0
,z0,
1,u0
,v0,
c0)a(x0,y0,z0,1,u0,v0,c0)
和 b(x
1,y1
,z1,
1,u1
,v1,
c1)b(x1,y1,z1,1,u1,v1,c1)
其中(u,v
)(u,v)
是紋理座標,c
c是顏色值。經過透視變化後的得到a′(
x′0,
y′0,
z′0,
w0,u
′0,v
′0,c
′0)a′(x0′,y0′,z0′,w0,u0′,v0′,c0′)和b′
(x′1
,y′1
,z′1
,w1,
u′1,
v′1,
c′1)
b′(x1′,y1′,z1′,w1,u1′,v1′,c1′)
(2) 對於規範化後的裁剪立方體(−1
,1)×
(−1,
1)×(
−1,1
)(−1,1)×(−1,1)×(−1,1)
,只看對於x=−
1x=−1
的裁剪。注意此時x=−
1x=−1
是指經過透視除法後得到的xx。
上面的分析指出齊次空間的點與透視除法後的點是一一對映的,所以對於其次空間中與x=−
1x=−1
相對應的點c′c′
,可以設c′=
a′+t
b′c′=a′+tb′
。只看c′c′
的xx和ww
分量:c′(
x′0+
x′1t
,w0+
w1t)
c′(x0′+x1′t,w0+w1t)
,將c′
c′投影到w=1
w=1平面得到透視除法後的點,即: =−
1=x′
0+x′
1tw0
+w1t
x=−1=x0′+x1′tw0+w1ttt
′=a′
+tb′
c′=a′+tb′′c′
齊次空間 放射變換
4d向量是由3d座標 x,y,z 和齊次座標w組成,寫作 x,y,z,w 在3d世界中為什麼需要3d的齊次座標呢?簡單地說明一下,在一維空間中的一條線段上取一點x,然後我們想轉移x的位置,那我們應該是x x k,但我們能使用一維的矩陣來表示這變換嗎?不能,因為此時一維的矩陣只能讓x點伸縮。但如果變成...
齊次線性方程中,齊次和線性的含義
線性函式 對映 f a rightarrow b 為兩個 標量 向量 空間 a,b 的對應關係,在微積分,解析幾何等相關領域中,線性函式 function 是乙個一次或者少於一次的多項式,對於單一變數如 f f x lx m,forall x in r 或多變數的函式,其中 l,m 為已知定常數,由...
4 4(齊次)矩陣
4 4矩陣一般也叫齊次矩陣,主要有兩個作用,描述平移變換,描述透視投影變換 3 3矩陣可以用來旋轉,縮放座標系,但不能移動座標系 需要在4維空間切變實現3維平移 比較容易理解的是在3維空間實現2維平移 而4 4平移矩陣不會影響旋轉,縮放功能,所以4 4矩陣能包含旋轉,縮放,平移座標系功能 4d向量中...