1

我正在按照以下代码使用 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 加载纹理,但我在苹果文档中找不到任何从 GLKTextureInfo 类中检索数据的方法。有谁知道我该如何解决?

4

1 回答 1

3

如果您已调用[GLKTextureLoader textureWithCGImage:options:error:],则无需上传位图数据。它已经发生了,所以调用 toglTexImage2D()是不必要的。

于 2013-01-19T06:56:06.840 回答