2016-11-16 187 views
0

讓我們假設以下三行表示在投影變換後的三維空間中的三角形的頂點(這些只是例如只是任意值)內:找出三角形投影面

0.0000000 0.0000000 0.9797980 
0.1191754 0.0000000 0.9797980 
0.0000000 0.1191754 0.9797980 

如果投影平面是一個長度爲2(左上角點(-1,1)和右下角點(1,-1)的正方形,並且我已經對z軸執行剪裁,z座標將在[-1 ,1]到現在。所以,我將如何確定哪些是完全像下面的圖片投影區域外的三角形?他們將所有的X,每個頂點的y值> 1或-1 <?

回答

0

不會。即使所有頂點都在可見區域之外,三角形仍然可見。這將,例如,是這個點的情況下:

-2 -2 0.5 
2 2 0.5 
2 -2 0.5 

雖然兩者中,x和y分量是不在[-1,1]的三角形仍然覆蓋屏幕的一半。

實際上,沒有簡單的解決方案,以準確地確定哪些三角形是外部(或內部)的可見區域。根據您的需求有幾個選項:

如果可以接受一些三角形爲可見的分類雖然他們都沒有,你可以測試所有點是否可見區域的同一側外。例如,如果所有點都有x < -1等等。

如果你真的需要一個完美的分類,Sutherland–Hodgman algorithm可能是一種選擇。當輸出列表爲空時,三角形是完全不可見的。

+0

我做了一個小編輯@BDL – user5411115

+0

答案保持不變。 z座標實際上在這裏沒有區別。唯一可以容易說出的是,當兩個點中的一個點在[-1,1]內時,三角形肯定可見。但對於其他事情來說,沒有小事。 – BDL

+0

關於形象:在這種情況下,我的答案的第一種方法將工作。但是,例如,[0,3],[3,3],[3,0]將被錯誤地分類爲可見,但它不是。 – BDL