我创建了一个 OpenGL ES 游戏,该游戏在 iOS 上使用 GLKView 进行渲染。我还添加了一些位于 GLKView 顶部的自定义 UIButton。在渲染中,我使用 GL_POINTS
渲染模式绘制了一些星星。在模拟器中一切都很好,但在设备上看起来很糟糕。
我想知道是否有人对我应该在设备上配置/寻找的东西有任何建议,这些东西可能需要设置才能获得正确的渲染图像。
以下是结果的几张图片:
模拟器
设备
(请忽略自定义按钮缩放比例的差异 - 设备屏幕截图是在 iPad 上截取的)。
最佳答案
事实证明,问题与未在 OpenGL ES 着色器中设置 gl_PointSize
有关。屏幕截图实际上让我想到了这个解决方案,因为星星(使用 GL_POINTS
渲染模式绘制)在设备上比在模拟器上大错特错。
据推测,对于 OpenGL 的桌面版本,点大小默认使用 glPointSize
函数设置(除非启用 GL_VERTEX_PROGRAM_POINT_SIZE
)。在 OpenGL ES 上没有 glPointSize
函数,因此必须始终使用顶点着色器中的内置 gl_PointSize
变量指定点大小值。
关于ios - OpenGL 在 iPhone/iPad 设备上渲染 GL_POINTS 看起来很糟糕(但在模拟器中看起来完全没问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9739780/