1
警告:试图学习OpenGL ...Apple OpenGL:为什么我用glVertexAttribPointer绘制一个多边形只是折叠一个正方形?
我用下面的代码绘制了一个正方形。
static const GLfloat squareVertices[] = {
-0.5f, -0.33f,
0.5f, -0.33f,
-0.5f, 0.33f,
0.5f, 0.33f,
};
...
glVertexAttribPointer(ATTRIB_VERTEX, 2, GL_FLOAT, 0, 0, squareVertices);
glEnableVertexAttribArray(ATTRIB_VERTEX);
...
glVertexPointer(2, GL_FLOAT, 0, squareVertices);
自然,我想添加两个顶点并得到一个六边形。相反,我有像折纸一样折叠的正方形:
static const GLfloat hexagonVertices[] = {
-0.5f, -0.33f,
+0.0f, -0.66f,
+0.5f, -0.33f,
+0.75f, +0.33f,
-0.1f, +0.5f,
+0.25f, +0.33f,
};
...
glVertexAttribPointer(ATTRIB_VERTEX, 3, GL_FLOAT, 0, 0, hexagonVertices);
glEnableVertexAttribArray(ATTRIB_VERTEX);
...
glVertexPointer(3, GL_FLOAT, 0, hexagonVertices);
我甚至尝试改变顶点以影响形状。我可以将广场变成一个不规则的四边形多边形,我可以歪斜“六边形”,但它仍然只是一张折叠的纸。
我可以这样做吗?
什么是首选替代方式?
谢谢 - 我以为我原本保持参数为“2”,但我一次改变多件事。我现在有一个方形,五角形和六角形。我仍然不太清楚顶点的顺序 - 我一直在思考一个路径。我必须继续阅读...... – mobibob