我按照以下代码使用GLKit加载texture.png纹理:
// Setup texture
CGImageRef imageRef = [[UIImage imageNamed:@"texture.png"] CGImage];
GLKTextureInfo texInfo = [GLKTextureLoader textureWithCGImage:imageRef options:nil error:NULL];
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texInfo.name);
// Set parameters that control texture sampling for the bound
// texture
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, texInfo.width, texInfo.height, 0, GL_RGB, GL_UNSIGNED_BYTE, XXXX);
XXXX是指定指向存储器中的图像数据的指针的数据。问题是我正在使用GLKit加载纹理,但在Apple文档中找不到从GLKTextureInfo类检索数据的任何方式。有谁知道我该如何解决?
最佳答案
如果您已调用[GLKTextureLoader textureWithCGImage:options:error:]
,则无需上传位图数据。它已经发生了,因此不需要调用glTexImage2D()
。
关于ios - 使用GLKit加载纹理时如何在glTexImage2D中传递数据参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14411239/