我知道我不能在 openGL ES 中执行 glPush/PopAttrib,我必须手动执行此操作。我的问题是: 我需要启用/禁用什么和 psuh/pop 才能正确渲染 3D 模型?
我遇到的问题是要渲染的不同对象之间混合了颜色。此外,某些对象没有纹理,看起来它正在尝试对其应用纹理。
是否有一种“安全的”可能未优化的方法来确保每次渲染新对象时 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/