Предупреждение: пытаемся выучить OpenGL ...
Я нарисовал квадрат со следующим кодом.
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);
Я даже пытался изменить вершины, чтобы изменить форму. Я могу превратить квадрат в неправильный четырехугольный многоугольник и наклонить «шестиугольник», но это все еще просто сложенный лист бумаги.
Могу ли я сделать это таким образом?
Какой предпочтительный альтернативный способ?