2011-11-02 52 views
4

我希望有人能爲我解釋這個問題。如果我給一個點(I,J,K),我可以做如下立方體:混淆了我應該給OpenGL的3D座標的順序

 8______K_______7  1 = i , j , k 
    /|   /|  2 = i+1, j , k 
    L/ |   J/ |  3 = i+1, j+1, k 
/|H  /|  4 = i , j+1, k 
5/______I_____/6 |G  5 = i , j , k+1 
    | |  | |  6 = i+1, j , k+1 
    | |  | |  7 = i+1, j+1, k+1 
E| 4|________|F__|3  8 = i , j+1, k+1 
    |/ c |/
    | /D   | /B  
    |/___________|/    
    1  A  2    

其中數字1-8是每個立方體的頂點和字母AL的各邊的中點的立方體。

我想實現一個行軍立方體算法,但我不知道是什麼爲了給點,每個三角形平面,我覺得。例如,如果標記了頂點1,那麼我需要從E-D-A中繪製一個平面。同樣,如果標記頂點7,我需要從K-J-G中繪製一個平面。是否有規則爲OpenGL在3D空間中提供座標?

+2

看一看[保羅Bourkes(http://paulbourke.net/geometry/polygonise/)執行。雖然我似乎記得表中有一些小錯誤,但那是多年前的事,所以它可能已經被修復了(但是你可能想要檢查它們與其他來源)。 – user786653

+0

謝謝!那是一個完美的資源! –

回答

1

是否有一個命令的規則爲OpenGL的3D空間給座標?

OpenGL通過在屏幕空間中纏繞頂點來定義正面和背面。如果屏幕空間中的臉部頂點處於逆時針順序,則前臉被視爲可見。順時針順序=>背面。法線應指向前臉方向。

+0

這很有道理。感謝您的解釋! –

+0

「OpenGL通過在屏幕空間中纏繞頂點來定義臉部的正面和背面。」實際上,OpenGL允許_you_定義正面和背面是什麼。這就是['glFrontFace'](http://www.opengl.org/sdk/docs/man3/xhtml/glFrontFace.xml)。 –

+0

@NicolBolas:讓我們這樣說:這是默認設置。 – datenwolf