我正在使用 Cheetah3D 导出 COLLADA 文件 ( .dae ),然后使用 Erik Buck 的 COLLADAViewer2 ( https://github.com/erikbuck/COLLADAViewer2/tree/master/COLLADAViewer2 ) 程序导出模型列表格式,如他的书中所述。
我的 COLLADA 文件是一个简单的球体,我正在尝试在其上渲染地球纹理。
在 COLLADAViewer 程序中,我导出的 .dae 文件看起来不错,这是一个屏幕截图:
我用于在球体上渲染纹理的代码部分在这里:
// Setup texture
CGImageRef imageRef =
[[UIImage imageNamed:@"Earth.jpg"] CGImage];
GLKTextureInfo *textureInfoEarth = [GLKTextureLoader
textureWithCGImage:imageRef
options:[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
GLKTextureLoaderOriginBottomLeft, nil]
error:NULL];
self.baseEffect.texture2d0.name = textureInfoEarth.name;
self.baseEffect.texture2d0.target = textureInfoEarth.target;
// Enable fragment blending with Frame Buffer contents
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
不幸的是,在 XCode 中,当我构建和运行我的球体时,在模拟器上看起来像这样:
我不知道如何解释球体上的奇怪图案,就像纹理在那里但被重复一样。谁能帮我解决这个问题?谢谢 -
我将我正在试验的 xcode 项目上传到 Github。它使用了 Buck 先生的 OpenGL 书中的大量示例代码。