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

我的问题是颜色在不同的对象之间混合以进行渲染。此外,某些对象没有纹理,并且看起来像在尝试对其应用纹理。

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

最佳答案

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

可以在这里找到所有状态的列表:

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

关于c++ - OpenGl ES glPushAttrib()3D模型渲染,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15798294/

10-11 22:54
查看更多