視錐和投影矩陣,視口變換

2022-02-26 10:55:10 字數 1372 閱讀 7817

縮放與視域角有關

投影的過程就是xyz分量除以w的過程

可知投影在了z=1,的平面

上面的z是指乘以投影矩陣(剪裁矩陣)後的z

這裡設上面這個dip矩陣為a;

經過計算可知:

(在近裁剪面的點) (x,y,n,1)*a=(x*zoomx,y*zoomy,0,n)---->投影後為(x*zoomx/n,y*zoomy/n,0)

(在遠裁剪面的點)    (x,y,f,1)*a=(x*zoomx,y*zoomy,f,f)---->投影後為(x*zoomx/f,y*zoomy/f,1)

乘以矩陣後的點滿足了0<=z<=w。而且是兩個邊界。

這裡的dip矩陣就是投影矩陣。只不過投影過程要除以w分量來完成。

經過相機變換、投影變換後,視見體內所有的點都被投影到x[-1,1]、y[-1,1]、z[0,1]的範圍,(不在視見體內的物體如果被投影的話會被投影在這個範圍之外)

投影後z的值在區間[0,1]中。作為深度快取?

注意最後一句話,投影後的z分量還是會被保留做z快取用。

投影後轉換到螢幕空間的轉換矩陣(視口變換矩陣)

winresx/2,0,0,0

0,-winresy/2,0,0

0, 0,1,0

winresx/2,winresy/2,0,1

投影變換與視口變換

一些說明 0.投影變換 描述如何指定視景體 viewing volume 的形狀和方向。視口變換 解釋如何控制三維模型座標到螢幕座標的變換。1.無論是透視投影還是平行投影 正交投影 只有在視景體中的物體才可見。2.下圖為opengl預設視點位置 eyex,eyey,eyez 0.0,0.0,0.0 ...

DirectX視口變換矩陣詳解

視口變換在投影變換之後,視口變換的作用是將投影平面上的點轉換為螢幕上的點,這是乙個縮放的過程。投影變換的作用是將viewing frustum 視景體 中的場景投影到乙個平面上,這個平面就是投影平面,在directx中,使用近剪裁平面作為投影平面 z 1 關於透視投影的矩陣求解,請參考透視投影詳解 ...

DirectX視口變換矩陣詳解

視口變換在投影變換之後,視口變換的作用是將投影平面上的點轉換為螢幕上的點,這是乙個縮放的過程。投影變換的作用是將 viewing frustum 視景體 中的場景投影到乙個平面上,這個平面就是投影平面,在directx中,使用近剪裁平面作為投影平面 z 1 關於透視投影的矩陣求解,請參考 透視投影詳...