【问题标题】:iPhone : Texture bigger than 64x64?iPhone:纹理大于 64x64?
【发布时间】:2010-10-28 01:49:36
【问题描述】:

我以 GLPaint 为例...我正在尝试将背景放入“PaintingView”中,这样​​您就可以在背景上绘制,最后将图像保存为文件.....我迷路了.

我正在加载 PNG (512x512) 并尝试在程序一开始就“用它绘画”,但它被绘制为 64x64 而不是 512x512...

我之前尝试加载是作为绘画视图的子视图...但是,glReadPixels 无法按预期工作(它只考虑到绘画视图,而不是子视图)。此外,paintingView 没有像 initWithImage 这样的方法...我需要 glReadPixels 处理图像(以及修改中),但我真的不知道为什么当我加载它时,纹理的大小为 64x64 ..

【问题讨论】:

    标签: iphone opengl-es load background textures


    【解决方案1】:

    GLPaint 示例项目使用 GL_POINT_SPRITE 在您移动画笔时绘制画笔纹理的副本。在 iPhone 上,glPointSize 被限制为 64x64 像素。这是一个硬件限制,在模拟器中我认为你可以把它做得更大。

    听起来您正在尝试使用 GL_POINT_SPRITE 方法来绘制背景图像,而这确实不是您想要的。相反,请尝试绘制一个填充屏幕的平面纹理框。

    这里有一段 OpenGL 代码,它为 2D 盒子设置顶点和纹理坐标,然后绘制它:

    const GLfloat verticies[] = {
            0.0f, 0.0f,
            1.0f, 0.0f,
            0.0f, 1.0f,
            1.0f, 1.0f,
        };
    
        const GLfloat texcoords[] = {
            0, 0,
            1, 0,
            0, 1,
            1, 1,
        };
    
        glVertexPointer(2, GL_FLOAT, 0, verticies);
        glEnableClientState(GL_VERTEX_ARRAY);
        glTexCoordPointer(2, GL_FLOAT, 0, texcoords);
        glEnableClientState(GL_TEXTURE_COORD_ARRAY);
        glEnable(GL_TEXTURE_2D);
    
        glBindTexture(GL_TEXTURE_2D, texture);
        glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
    

    希望对您有所帮助!请注意,您需要根据相机投影的设置方式指定不同的顶点。就我而言,我使用下面的代码设置了我的 GL_MODELVIEW - 我不确定 GLPaint 示例是如何做到的。

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glOrtho(0, 1.0, 0, 1.0, -1, 1);
    

    【讨论】:

      【解决方案2】:

      首先,glReadPixels() 只会查看与当前 OpenGL 上下文相关联的帧缓冲区。这或许可以解释为什么您没有获得预期的像素。

      其次,以特定像素大小渲染纹理是什么意思?我假设纹理被渲染为一个四边形,然后这个四边形的大小应该在你的控制之下,代码方面。

      另外,检查纹理的加载是否不会生成OpenGL error,我不确定 iPhone 对纹理大小的限制是什么。 512x512超出范围是完全可以想象的。您当然可以通过调用@987654322@ 并使用GL_MAX_TEXTURE_SIZE 常量来自行调查。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-20
        • 2011-11-10
        • 1970-01-01
        • 2011-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多