【问题标题】:How to correctly display 3d model in Cocos3d using makehuman, blender and PVRShaman?如何使用 makehuman、blender 和 PVRShaman 在 Cocos3d 中正确显示 3d 模型?
【发布时间】:2016-01-23 01:52:21
【问题描述】:

我使用 makehuman 和 blender 创建了一个人体模型,当我使用这个模型在应用程序中显示时,它看起来像这样

在 Blender 中看起来像这样

PVRShaman 看起来像这样

在 PVRShaman 中打开时,会显示一些类似的错误

以及我用来显示这个的代码

CC3Camera* cam = [CC3Camera nodeWithName: @"Camera"];
    cam.location = cc3v( 0.0, 0.0, 50.0 );
    [self addChild: cam];
CC3Light* lamp = [CC3Light nodeWithName: @"Lamp"];
    lamp.location = cc3v( -2.0, 0.0, 0.0 );
    lamp.isDirectionalOnly = NO;
    [cam addChild: lamp];
CC3ResourceNode* rezNode = [CC3PODResourceNode nodeFromFile: @"man.pod"];
    [self addChild: rezNode];
self.opacity = kCCOpacityFull;
[self selectShaders];
[self createBoundingVolumes];
[self createGLBuffers];
    [self releaseRedundantContent];
CC3MeshNode* helloTxt = (CC3MeshNode*)[self getNodeNamed: @"man"];
    [helloTxt runAction: [CC3ActionRotateForever actionWithRotationRate: cc3v(0, 0, 20)]];

编辑:问题:

  1. 看起来为什么模型在模拟器中渲染后看起来不像在搅拌器中看起来那样(纹理和头骨?

  2. 为什么不渲染模型在搅拌机中没有纹理细节?

  3. 为什么在 PVRShaman 中找不到错误文件?

【问题讨论】:

  • 您尚未说明您的担忧。是不是随着模型的旋转,头骨的后部会周期性地消失?或者说模型在 Cocos3D 中没有头发?还是灯光不一样?还是说T恤没有logo?请更新您的问题以更具体。
  • 对于消失的头骨,尝试设置rezNode.isOpaque = YES;。问题可能是模型旋转时非透明节点的渲染顺序发生变化。
  • 是的,问题是头骨周期性地消失,模型在渲染后没有纹理细节,就像在搅拌机中一样,我也试过rezNode.isOpaque = YES;,但结果是一样的。

标签: ios game-engine blender cocos3d makehuman


【解决方案1】:

您还应该在 Xcode 日志中看到类似的错误消息,指出无法加载纹理。 POD 文件不包含纹理。您需要从 Blender 中单独导出它们并将它们添加到您的项目中Resources。一旦你这样做了,它们会在你加载POD时被Cocos3D自动加载。

【讨论】:

  • 我在resources中的resource中添加了纹理但是结果是一样的
  • 如果您压缩了一个示例 Cocos3D Xcode 项目,包括 POD 和纹理,请将其上传到 Dropbox(或等效的)并在此处发布链接,我会看看它。
猜你喜欢
  • 2012-06-24
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 2022-07-18
  • 2016-11-23
  • 2019-03-07
  • 2010-12-30
相关资源
最近更新 更多