2011-04-27 54 views
1

這似乎是一個問題,答案應該很容易在網絡或書籍上找到,但我對於答案的追求使我到目前爲止只能看到那些變成死衚衕的盲人小巷。用透視投影去除表面的深度插值

我試圖通過隱藏表面去除(線條是實體對象的邊緣)來實時繪製3D線條。

所以我有兩個三維點投影到二維點使用透視投影。對於每個點我計算了點的深度。現在我想繪製連接2個點的線段,並且爲了使隱藏表面去除起作用,我必須計算2D線上每個中間2D點(由投影產生的結果)相應3D點的深度(投影在中間2D點上的3D點)。

我的問題是,由於深度函數在進行透視投影時不是線性的,因此我無法插入2個原始3D點的深度來計算中間點的深度。

那麼如何用兼容實時渲染約束的方法計算線上每個點的深度?

在此先感謝您的幫助。

+0

可能重複的(http://stackoverflow.com/questions/5805992/finding-projection-and -z-distance) – Alnitak 2011-04-27 20:29:00

+0

答案是隨時可用的 - 這是在5個小時前這裏問的... – Alnitak 2011-04-27 20:29:26

回答

1

使用齊次座標,其可在屏幕空間中線性插值:[尋找投影和z距離] http://www.cs.unc.edu/~olano/papers/2dh-tri/

+0

仍然沒有得到它:我所知道的唯一深度定義是座標平方和的平方根如果中心或投影在原點。鑑於這個定義,我沒有看到這個深度函數(或其倒數1 /深度)如何可以是線性的,因此可以插入 – 2011-05-14 18:45:42

+0

這是距離原點的距離。計算機圖形學術語中的深度是Z. 1/Z是可線性插入的。 – 2011-05-15 20:16:47

+0

好的,但要做隱藏的表面去除(使用透視投影時),距離投影中心的距離是多少?距離投影中心的距離是我在光線追蹤環境中進行隱藏表面去除時使用的,並且工作正常。對於大多數情況,1/Z是否足夠好? – 2011-05-15 21:52:08