3

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

我想知道是否有人对我应该在设备上配置/注意的事情有任何建议,这些事情可能需要设置才能获得正确的渲染图像。

以下是结果的几张图片:

模拟器

在 iPhone 模拟器上运行的游戏截图。

设备

在此处输入图像描述

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

4

1 回答 1

3

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

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

于 2012-03-19T15:47:47.320 回答