gpt4 book ai didi

opengl-es - 如何替换 OpenGL ES 2.0 中的 glBegin() 及相关函数?

转载 作者:行者123 更新时间:2023-12-02 22:12:21 25 4
gpt4 key购买 nike

我有如下所示的 OpenGL 代码,我想将其移植到 OpenGL ES 2.0:

for (surfnum=0;surfnum < surftotal;surfnum++){
for (i=0;i<triNum[surfnum];i++){
glBegin(GL_POLYGON);
glNormal3fv(triArray[surfnum][i].normpt1);
glVertex3fv(triArray[surfnum][i].pt1);
glNormal3fv(triArray[surfnum][i].normpt2);
glVertex3fv(triArray[surfnum][i].pt2);
glNormal3fv(triArray[surfnum][i].normpt3);
glVertex3fv(triArray[surfnum][i].pt3);
glEnd();
glFlush();
}
}

OpenGL ES 2.0缺少GL_POLYGON、glNormal3fv、glVertex3fv、glEnd、glBegin等函数,那么如何替换这些函数呢?

P.S.:我在 Ubuntu 10.10 中通过模拟器执行此操作。

最佳答案

您使用顶点缓冲区对象。 NeHe教程:http://nehe.gamedev.net/tutorial/vertex_buffer_objects/22002/

本教程(批量文本)是为 Windows 编写的。 Android 上的 OpenGL-ES 2 的不同之处在于,您不必手动加载扩展,并且可以通过 egl... 函数为您提供正确准备的 OpenGL 上下文。

另一个可读的教程是 http://www.songho.ca/opengl/gl_vbo.html

GL_POLYGONS 已被 OpenGL-3 和 -ES 放弃,因为它们使用起来很麻烦并且几乎从未使用过。 GL_POLYGON 也可以用 GL_TRIANGLE_FAN 完美替换。或者您自己做一些干净的事情并将多边形几何体镶嵌成三角形。

关于opengl-es - 如何替换 OpenGL ES 2.0 中的 glBegin() 及相关函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6408202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com