Сколько цветов в цветовом буфере OpenGL ES нам нужно? - PullRequest
0 голосов
/ 17 февраля 2011

Если у меня есть сетка куба в OpenGL ES, и я хочу иметь плоский цвет для каждой стороны куба, чтобы у каждой стороны был свой цвет, нужно ли указывать цвет для каждой вершины или цвет для треугольника или цвет длябоковая сторона?Это 2 строки кода:

gl.glEnableClientState (GL10.GL_COLOR_ARRAY);gl.glColorPointer (4, GL10.GL_FLOAT, 0, mColorBuffer);

связаны с этим вопросом.

Как OpenGL ES узнает, какой цвет, который я указал, соответствует какой стороне куба?

1 Ответ

1 голос
/ 17 февраля 2011

Цвета должны быть указаны для каждой вершины, но поскольку у каждого лица свой цвет, вы не сможете разделить вершины между гранями.Вместо того, чтобы рисовать куб (8 вершин, 8 цветов, 12 треугольников), нарисуйте 6 квадов, которые, как оказалось, имеют совпадающие позиции вершин (24 вершины, 24 цвета, 12 треугольников)

Правка: квадратов всего 2треугольники, которые разделяют некоторые вершины.Например, квад, покрывающий единичный квадрат (в 2D), может иметь массив вершин и индексный треугольник, например:

// bottom left, top left, bottom right, top right order
float[] verts = new float[]{ 0, 0, 0, 1, 1, 0, 1, 1 };
// anti-clockwise vertex order
int[] tris = new int[]{ 0, 2, 1, 2, 3, 1 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...