导出与纹理的搅拌器3d模型到iPhone使用Cocos3D - 未显示的纹理

时间:2013-06-18 08:31:18

标签: ios 3d textures cocos3d blender-2.67

要求

我在Blender中创建了一个三维模型 - 每个面上有一个数字1到6的立方体。我在每个面上添加了一个UV纹理来表示数字。当我在Blender上渲染时,数字显示正常。

我正在尝试使用Cocos3D将此模型导出到iPhone。

规格

  • iOS 6.1和Xcode 4.6.2
  • cocos3d 0.7.0
  • Blender 2.67b

我做了什么

  1. 我按照this将PVRGeoPOD转换器插件添加到Blender 官方文件。
  2. 在搅拌机中创建3D模型。使用默认的blender cube和 在所有6个面上添加了UV纹理。
  3. 选择生成.pod文件 Blender中的文件 - >导出 - > PVRGeoPOD(.pod / .h / .cpp)

  4. 将pod文件添加到Cocos3D默认模板项目中。更改 代码使用我的编号立方体文件而不是默认的“Hello world”文本。

    [self addContentFromPODFile: @"numbered_cube.pod"];
    
  5. 添加了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]];
    
  6. 问题

    嗯,立方体正在显示,它正在旋转。但立方体上没有纹理。在日志中,我可以看到这个

      

    从包含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模型中显示纹理。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

好的,我明白了。我会详细解释。

对于初学者来说,我的错误是我没有将纹理图像添加到XCode项目包。我有一种误解,一旦在混合器中添加了纹理,它就会自动与.pod文件一起导出。但事实并非如此。从Blender导出纹理模型时,不要忘记将纹理添加到XCode项目包中。

在尝试修复此错误时,我注意到了另外一件事,这也导致在iPhone中运行时未显示纹理。

  1. 分两步导出.blend.pod时(.blend - > .dae - > .pod),在第一个之前需要做一些配置 转换(.blend - > .dae)。那是你保存.dae文件的时候 您需要勾选“纹理选项”下的所有字段。然后才 纹理数据被导出。

    enter image description here

相关问题