gpt4 book ai didi

iPhone : Texture bigger than 64x64?

转载 作者:行者123 更新时间:2023-12-03 21:14:01 30 4
gpt4 key购买 nike

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

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

我之前尝试过将 is 作为绘画 View 的 subview 加载...但是,glReadPixels 无法按预期工作(它只考虑 PaintingView,而不是 subview )。另外,PaintingView 没有像 initWithImage 这样的方法...我需要 glReadPixels 对图像进行处理(以及修改),但我真的不知道为什么当我加载它时,纹理的大小为 64x64..

最佳答案

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);

关于iPhone : Texture bigger than 64x64?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/895327/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com