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