2013-12-23 67 views
2

我目前正在寫從模型空間變換到剪輯空間在OpenGL中使用。從我所看到的,程序員通常使用傳統的矩形平截頭體在其模型空間中定義裁剪邊界。我個人想到的是一個像平截頭體的形狀,除了近端和遠端的飛機都是在平截頭體的頂點(相機)中心的球體。這樣的東西看起來像這樣:使用「球形截錐」爲3D投影

Circular sector

黃色區域對應於OpenGL的夾的空間,並且兩個球(描繪爲在該截面圖像圓圈)對應於OpenGL的z=-1(內球)和z=1 (外部球體)。

這是對投影模型更現實的方式,或設計我的投影矩陣時,我應該堅持使用傳統的矩形圓臺?

+0

傳統的平截頭體是使用投影矩陣和邊界'z'的結果,圓形平截頭體需要得到歐氏距離(3個方塊和求和) –

+0

數學不是我的問題。我只想知道這是否是一個現實的預測。 – creXALBO

+0

如果添加圖像上的矩形截錐的垂直線,你會看到這是一個小的差異,無論如何,小的FOV –

回答

1

號我不知道你的意思是要完全誠實的,但在任何情況下,沒有。

  • 您的意思是說視圖座標(通常視圖視錐體)應該由球體爲界嗎?

那麼在很多大的多邊形相交夾持平面實際上破碎成更小的三角形不(全部?最?) - 否則一個大的多邊形即有一個頂點之外只會被忽略。這是剪輯實際涉及的內容。

記住,當你玩的老遊戲,走進對象,只讓他們消失了,如果你有過近?如果當一個多邊形的角落在視野之外,那麼這個洞就會消失嗎?澄清請參閱this

  • 在另一方面,你可能意味着檢視空間應該 投射到球,而不是一個平面。

井的屏幕是平的,所以在3D場景中的對象被投影到平坦表面上,相當於從向照相機的對象的追蹤光的射線和查找哪裏會相交顯示器。奇怪的「不切實際的」3D外觀是觀看者的眼睛是a)不是點照相機和b)很少在視場的正確距離處的結果。

+0

這是一個很好的答案,簡而言之,截錐體是飛機上的投影,因爲屏幕是一個平面。伸入球/ cilinder是有用的,如果屏幕將被彎曲的(否則你會看到disturbin distorion ..看看極地失真得到一個想法creXALBO) – GameDeveloper