我有一系列这种形式的标准 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);
但是我不确定如何在这个 ES 版本中包含法线向量的规范(原始 glNormal3fv() 调用)。
有人愿意举例说明解决方案吗?
Best Answer-推荐答案 strong>
看看 glNormalPointer() 。它的工作方式与 glVertexPointer() 大致相同,但选项较少,因为法线总是有 3 个浮点组件。
关于ios - OpenGL ES(在 iOS 上):,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/5797916/
|