OpenGL ES (на iOS): - PullRequest
       2

OpenGL ES (на iOS):

2 голосов
/ 27 апреля 2011

У меня есть ряд стандартных инструкций OpenGL в этой форме:

glBegin(GL_TRIANGLES);
// ...
glNormal3fv(a); glVertex3f(a[0]*r, a[1]*r, a[2]*r);
// ...
glEnd();

Я хочу запустить их на iOS, поэтому должен конвертировать их в OpenGL ES. Поскольку OpenGL ES не поддерживает glBegin () или glEnd (), я упаковываю вызовы glVertex3f в массив вершин GLfloat, за которым следует вызов glDrawArrays ().

GLfloat vertices[] = {1,0,0, 0,1,0, ...};
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);

Однако я не уверен, как включить спецификацию нормального вектора (исходные вызовы glNormal3fv ()) в эту версию ES.

Будет ли кто-то достаточно любезен, чтобы проиллюстрировать решение?

1 Ответ

4 голосов
/ 27 апреля 2011

Посмотрите на glNormalPointer(). Он работает почти так же, как glVertexPointer(), но с меньшим количеством опций, так как у нормалей всегда есть 3 компонента с плавающей запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...