gpt4 book ai didi

xcode - OpenGL ES 1.1 到 2.0 的重大变化?

转载 作者:行者123 更新时间:2023-12-04 17:39:26 28 4
gpt4 key购买 nike

我正在使用 cocos2d 创建一个 iPhone 应用程序,并且我正在尝试使用以下 OpenGL ES 1.1 代码。但是,我不擅长 OpenGL,我的应用程序使用 OpenGL ES 2.0,所以我需要转换它。

因此我想知道,将以下代码从 ES 1.1 转换为 ES 2.0 会有多困难?是否有一些消息来源可以告诉我哪些方法需要替换等?

-(void) draw
{
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable(GL_TEXTURE_2D);

glColor4ub(_color.r, _color.g, _color.b, _opacity);
glLineWidth(1.0f);
glEnable(GL_LINE_SMOOTH);

if (_opacity != 255)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

//non-GL code here

if (_opacity != 255)
glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);

glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
}

最佳答案

如果您不太适合 OpenGL,那就不会那么容易了。

OpenGL ES 2.0 不再具有固定功能的管道。这意味着您必须使用 GLSL 顶点和片段着色器自行管理顶点变换、照明、纹理等。您还必须自己跟踪变换矩阵,没有 glMatrixMode , glPushMatrix , glTranslate ,……再说。

也不再有 buitlin 顶点属性(如 glVertexglColor ,...)。所以这些函数,以及相应的数组函数(如 glVertexPointerglColorPointer 、...)和 gl(En/Dis)ableClientState ,也被删除了。相反,您需要通用顶点属性函数( glVertexAttribglVertexAttribPointergl(En/Dis)ableVertexAttribArray ,它们的行为类似)以及相应的顶点着色器来赋予这些属性正确的含义。

我建议您查看一个好的 OpenGL ES 2.0 教程或书籍,因为从 1.1 移植到 2.0 确实是一个重大变化,至少如果您从未听说过着色器的话。

关于xcode - OpenGL ES 1.1 到 2.0 的重大变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7777605/

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