iPhone / iPad设备上的OpenGL渲染GL_POINTS看起来很糟糕(但在模拟器中看起来完全没问题)

时间:2012-03-16 15:09:54

标签: ios opengl-es ios-simulator points glpointsize

我创建了一个在iOS上使用GLKView渲染的OpenGL ES游戏。我还添加了一些定位在GLKView顶部的自定义UIButton。在渲染中,我使用GL_POINTS渲染模式绘制了一些星星。在模拟器中一切都很好,但在设备上看起来很糟糕。

我想知道是否有人对我应该在设备上配置/寻找的东西有任何建议,可能需要设置以获得正确的渲染图像。

以下是结果的几张图片:

模拟器

Screenshot of game running on iPhone simulator.

设备

enter image description here

(请忽略自定义按钮缩放的差异 - 设备屏幕截图是在iPad上拍摄的。)

1 个答案:

答案 0 :(得分:3)

事实证明,问题与未在OpenGL ES的着色器中设置gl_PointSize有关。屏幕截图实际上引导我使用这个解决方案,因为星星(使用GL_POINTS渲染模式绘制)在设备上的严重错误比在模拟器上错误。

据推测,对于桌面版的OpenGL,默认情况下使用glPointSize函数设置磅值(除非启用GL_VERTEX_PROGRAM_POINT_SIZE)。在OpenGL ES上没有glPointSize函数,因此必须始终使用顶点着色器中的内置gl_PointSize变量指定磅值。