據我所知,從OpenGL draw rectangle outline - 給定一個適當的頂點數組,GL_LINE_LOOP應繪製一個正方形。GL_LINE_LOOP如何繪製三角形?
所以,我想這波前obj文件:
v 0.0 0.0 0.0
v 1.0 0.0 0.0
v 1.0 1.0 0.0
v 0.0 1.0 0.0
g myPlane
f 1 2 3 4
...我本來期望X,Y的(0,0) - >(1,0) - >( 1,1) - >(0,1)將提供一個正方形。不過,我想這一個程序,它是https://github.com/julianstorer/JUCE/blob/master/examples/Demo/Source/Demos/OpenGLDemo.cpp的簡化版本...有它用於:
attributes.enable (openGLContext);
glDrawElements (GL_LINE_LOOP, vertexBuffer.numIndices, GL_UNSIGNED_INT, 0); //GL_TRIANGLES
attributes.disable (openGLContext);
...爲C++繪製代碼,並輸出爲上述obj文件是:
...那就是 - 有一條對角線,我不知道它是如何可能爲它在那裏結束,如果我用GL_LINE_LOOP? (有像this one這樣的圖像,表明GL_LINE_LOOP不應該爲這個頂點序列繪製對角線)?那麼,爲什麼我會得到一個對角線 - 造成這個問題的原因可能是什麼?我該如何擺脫它?
你確定你的OBJ解析器不會將n> 3-gons分解爲三角形? – genpfault
謝謝@genpfault - 我不確定;我手動編寫了這個文件,我認爲這已經足夠了,但我想我最好還是檢查解析器......再次感謝! – sdaau