据我所知,从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