1

我知道我不能在 openGL ES 中执行 glPush/PopAttrib 并且我必须手动执行此操作。我的问题是:为了正确渲染 3D 模型,我需要启用/禁用和 psuh/pop 什么?

我遇到的问题是颜色在要渲染的不同对象之间混合。此外,某些对象没有纹理,看起来它正在尝试对其应用纹理。

是否有一种“安全”可能未优化的方法来确保每次渲染新对象时,openGL 状态都是“干净”的?有点像 glPushAttrib(GL_ALL_ATTRIB_BITS)

4

1 回答 1

4

不,没有。但是在 OpenGL ES 2.0 中可能的状态(~10)要少得多,其他一切都由您自己的着色器控制,无论如何。基本上,您只需启用/禁用所有可能的状态即可确定(并正确配置您启用的状态)。

可以在此处找到所有状态的列表:

http://www.khronos.org/opengles/sdk/docs/man/xhtml/glEnable.xml

于 2013-04-04T07:55:45.823 回答