【问题标题】:OpenGL gradient fill on iPhone looks stripediPhone 上的 OpenGL 渐变填充看起来有条纹
【发布时间】:2010-09-24 22:03:16
【问题描述】:

当我使用 OpenGL 绘制渐变填充时,输出看起来是条纹状的,也就是说,它仅使用大约四分之一的可能颜色进行渲染。

在渲染缓冲区中,所有颜色都会出现,但不会出现在实际输出中。

我正在运行 iOS4 的 iPhone 3G 上进行开发。

有什么想法吗?

彼得

===========

===========

GLint redBits, greenBits, blueBits;
glGetIntegerv (GL_RED_BITS, &redBits); // ==> 8
glGetIntegerv (GL_GREEN_BITS, &greenBits); // ==> 8
glGetIntegerv (GL_BLUE_BITS, &blueBits); // ==> 8

glDisable(GL_BLEND);
glDisable(GL_DITHER);
glDisable(GL_FOG);
glDisable(GL_LIGHTING);
glDisable(GL_TEXTURE_2D);
glShadeModel(GL_SMOOTH);

const GLfloat vertices[] = {
0, 0,
320, 0,
0, 480,
320, 480,
};

const GLubyte colors[] = {
255, 255, 255, 255,
255, 255, 255, 255,
200, 200, 200, 255,
200, 200, 200, 255,
};

glVertexPointer(2, GL_FLOAT, 0, vertices);
glEnableClientState(GL_VERTEX_ARRAY);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colors);
glEnableClientState(GL_COLOR_ARRAY);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

【问题讨论】:

  • 请使用代码示例格式化程序。此外,屏幕截图实际与预期。
  • 非常感谢您的评论。我添加了模拟器的图片。在设备上看起来是一样的。

标签: iphone colors opengl-es gradient


【解决方案1】:

知道了。

我需要为 CAEAGLLayer 属性指定 kEAGLColorFormatRGBA8。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多