我刚开始学习OpenGl,我读过有关渲染和纹理图像的内容。如果有人可以提供插入图像的简单示例。
答案 0 :(得分:1)
OpenGL本身不提供API来从图像文件生成纹理。我们之前必须读取图像文件并将其转换为位图数据以在OpenGL中使用纹理,但GLKTextureLoader
中的GLKit
类使我们能够自动从图像生成纹理。
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"mushroom" ofType:@"png"];
GLKTextureInfo* textureInfo =
[GLKTextureLoader textureWithContentsOfFile:filePath options:nil error:nil];
if (textureInfo) {
NSLog(@"Texture loaded successfully. name = %d size = (%d x %d)",
textureInfo.name, textureInfo.width, textureInfo.height);
}
textureWithContentsOfFile:options:error:
方法的返回值是GLKTextureInfo
类的实例。 GLKTextureInfo
对象包含有关纹理的信息,例如宽度,高度......有一个名为'name'的属性(记录为'glName',它应该是错误打印)。我们在此属性中使用value来指定GLKBaseEffect
中的纹理(将在后面描述)
GLKTextureLoader
是一个用于加载纹理的类,所以我们应该通过自己释放纹理。在glDeleteTextures
对象中使用'name'属性值调用GLKTextureInfo
。
在博客中找到了这个很好的讨论。希望这有助于.. :))