2014-03-28 62 views
0

所以我有一個頂點數組batcher,我想用它來呈現矩形,而不是填充的線。目前我使用glPolyGonMode(),但由於我的「形狀」是所有上傳到圖形卡爲三角形,我得到一條線沿着我的矩形中間,像這樣:enter image description hereOpenGL繪製矩形組成的線與頂點數組

很明顯,這是因爲有一個矩形有兩個三角形。但是我只想渲染沒有中間線的矩形。我怎麼能做到這一點?

回答

2

你不能用三角形列表做這個,三角形是建立三維模型的基本原理。你需要兩個三角形來建立矩形。

如果不希望中間線

  1. 使用GL_QUADS做,這是你的要求easist方式,但要注意,GL_QUADS是deprecate from core OpenGL 3.1
  2. 使用LINE_LOOP取代三角形,建立你的矩形

戰平GL_QUADS:

glBegin(GL_QUADS) ; 
    glVertex3f(0.0, 0.0, 0.0); 
    glVertex3f(0.0, 0.5, 0.0); 
    glVertex3f(0.5, 0.5, 0.0); 
    glVertex3f(0.5, 0.0, 0.0); 
glEnd() ; 

用LINE_LOOP畫畫:

glBegin(GL_LINE_LOOP) ; 
    glVertex3f(0.0, 0.0, 0.0); 
    glVertex3f(0.0, 0.5, 0.0); 
    glVertex3f(0.5, 0.5, 0.0); 
    glVertex3f(0.5, 0.0, 0.0); 
glEnd() ; 
+0

你是什麼意思線列表? – user3316633

+0

我的意思是線條,4條線組成一個矩形。 – zdd

+0

理論上講,在線框模式下繪製四邊形(不是三角形)會產生相同的結果。但我從來沒有嘗試過(從未想過)。 – keltar