OpenGL 3+版本仅使用“GL_TRIANGLES”吗?
这就是我所读到的,但在OpenGL 3.3的文档中,http://www.opengl.org/sdk/docs/man3/,“glDrawArrays()”采用以下参数:
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
答案 0 :(得分:4)
OpenGL 3+版本是否仅使用“GL_TRIANGLES”
你的意思是“而不是提供GL_QUADS和GL_POLYGON”?
确实是的。四边形和多边形已被完全删除。大多数多边形无论如何都需要被镶嵌成三角形,因为OpenGL只能处理凸多边形(凸面也可以实现平面!)。类似于四边形。当然,仍然需要支持线和点。
答案 1 :(得分:2)
OpenGL 3+版本只使用“GL_TRIANGLES”吗?这就是我读到的内容
在哪儿?请提供链接。
“GL_TRIANGLES”和“三角形”之间存在差异。
GL_TRIANGLES是特定的基元类型。它有a specific interpretation。它的基本原始类型是“三角形”(如同,它生成三角形),但它还有更多。
“三角形”正是如此:表示平面区域的3个顶点的组合。 GL_TRIANGLES,GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN 生成三角形。
OpenGL 3.1+核心不允许使用特定的基元类型GL_QUADS,GL_QUAD_STRIP(即:所有“四元组”类型)和GL_POLYGON。其他一切都是公平的游戏。
答案 2 :(得分:1)
根据规范的2.6.1部分,像glDrawArrays()这样的命令接受你发布的原语。所以,不,OpenGL 3.3不接受GL_TRIANGLES。
您所阅读的内容可能是为了解释OpenGL不再支持GL_QUADS和GL_POLYGON等原语。
根据规范的附录E.2.2删除了Quad和polygon基元(从版本3.1开始,之前的版本仍支持它们,尽管它们已从版本3.0中弃用)。
您可以找到规范here。