齊次空間的裁剪

2021-08-21 04:01:04 字數 3207 閱讀 8843

感謝 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向量中...