我已经读过glDrawElements的第一个参数是模式: http://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml
接受符号常量GL_POINTS,GL_LINE_STRIP,GL_LINE_LOOP,GL_LINES,GL_LINE_STRIP_ADJACENCY,GL_LINES_ADJACENCY,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN,GL_TRIANGLES,GL_TRIANGLE_STRIP_ADJACENCY和GL_TRIANGLES_ADJACENCY。
我没有看到GL_POLYGON。这是否意味着我不能使用GL_POLYGON?如果我有10个指数?我需要将它转换为几个包含3个索引的多边形吗?如果是真的,我该怎么做?
答案 0 :(得分:5)
www.opengl.org上的GL3和GL4级别手册页仅记录了OpenGL的核心配置文件。不推荐使用GL_POLYGON
,当规范在OpenGL 3.2中拆分为Core和Compatibility配置文件时,它不属于Core Profile。
如果您创建支持兼容性配置文件的上下文,您仍然可以使用GL_POLYGON
。但是,如果你开始,我会建议你坚持核心配置文件功能。如果您确实需要已弃用功能的文档,则必须返回GL2 man pages。
要绘制多边形,GL_TRIANGLE_FAN
是最简单的替代。您可以像使用GL_POLYGON
一样使用三角形扇形的同一组顶点,它将产生相同的结果。
答案 1 :(得分:0)
顺便说一句,您正在链接到GL3手册页。
由于GL_POLYGON
已在3.0中弃用并在3.1中删除,因此您不会在其中找到它。实际上,你会发现那里只有GL 3.2支持的一些标记(邻接基元,它是在几何着色器时引入的);幸运的是, 实际上已记录在手册页本身,而不像GL_POLYGON
已被弃用。
对于兼容性配置文件(您正在使用),您应该查看GL2手册页。可以找到GL2手册页here。