iOS上的OpenGL ES 2.0移植到Mac OS X渲染模型上的OpenGL内部

时间:2014-09-06 20:10:42

标签: macos opengl opengl-es-2.0

我正在开发一款多平台游戏。它使用OpenGL ES 2.0,整个场景在iOS和Windows上使用Mali的OpenGL ES模拟器完美呈现。

我最近将它移植到Mac OSX。我必须做的唯一改变是让glCompileShader忽略lowp,mediump和highp。除此之外,对于大多数事物似乎都可以正常工作,除了所有模型渲染内外。

我已经尝试过以下方法来解决它而没有任何运气..

完全禁用剔除 在正面,背面,正面和背面之间切换剔除模式 将前面切换为CW和CCW

启用,禁用深度缓冲区 为depthfunc尝试less,greater,lequal和gequal 在投影矩阵中反转近处和远处

我能想到的另一件事就是用手。我的场景是在左手坐标系中创作的。我最终翻转视图矩阵的z轴来补偿它。因此,在OSX上,我尝试向后翻转视图矩阵并尝试使用LH和RH投影矩阵组合,结果表现如预期,但内部渲染的模型除外。

此时我完全难过了。

OpenGL ES和OpenGL之间似乎有些默认状态不同。 想法?

1 个答案:

答案 0 :(得分:1)

发现了这个问题。我没有有效的深度缓冲区。出于某种原因,我用来设置OpenGL上下文的示例代码忘记了深度缓冲区。

感谢Reto Koradi指出它。