我在Blender中创建了一个三维模型 - 每个面上有一个数字1到6的立方体。我在每个面上添加了一个UV纹理来表示数字。当我在Blender上渲染时,数字显示正常。
我正在尝试使用Cocos3D将此模型导出到iPhone。
选择生成.pod文件 Blender中的文件 - >导出 - > PVRGeoPOD(.pod / .h / .cpp)。
将pod文件添加到Cocos3D默认模板项目中。更改 代码使用我的编号立方体文件而不是默认的“Hello world”文本。
[self addContentFromPODFile: @"numbered_cube.pod"];
添加了3轴旋转,以便我可以看到所有6个面。
CC3MeshNode* helloTxt = (CC3MeshNode*)[self getNodeNamed: @"Cube"];
CCActionInterval* partialRot = [CC3RotateBy actionWithDuration: 1.0
rotateBy: cc3v(40.0, 30.0, 30.0)];
[helloTxt runAction: [CCRepeatForever actionWithAction: partialRot]];
嗯,立方体正在显示,它正在旋转。但立方体上没有纹理。在日志中,我可以看到这个
从包含3个节点的文件numbered_cube.pod构建CC3PODResource (1个网格节点),1个网格,1个摄像头,1个灯光,1个材料, 0 纹理,0帧,环境光
我做了一些搜索并遇到了this SO帖子。它讲述了Collada(.dae)文件,.blend和.pod之间的中间文件。当我尝试转换时,我只获得了.pod文件。 然后,我使用文件 - >导出 - > Collada(.dae)来创建.dae文件manullay。然后我尝试使用PVRGeoPODGUI独立工具将此.dae文件转换为.pod。文件已成功打开,但始终禁用导出按钮。
如此简单,我的问题是如何在我使用Cocos3D在iPhone中的Blender中创建的3D模型中显示纹理。 有什么想法吗?
答案 0 :(得分:2)
好的,我明白了。我会详细解释。
对于初学者来说,我的错误是我没有将纹理图像添加到XCode项目包。我有一种误解,一旦在混合器中添加了纹理,它就会自动与.pod
文件一起导出。但事实并非如此。从Blender导出纹理模型时,不要忘记将纹理添加到XCode项目包中。
在尝试修复此错误时,我注意到了另外一件事,这也导致在iPhone中运行时未显示纹理。
分两步导出.blend
到.pod
时(.blend - > .dae - >
.pod),在第一个之前需要做一些配置
转换(.blend - > .dae)。那是你保存.dae
文件的时候
您需要勾选“纹理选项”下的所有字段。然后才
纹理数据被导出。