是我需要导出到 .dae 的包 org.papervision3d.core.io 吗?

Posted

技术标签:

【中文标题】是我需要导出到 .dae 的包 org.papervision3d.core.io 吗?【英文标题】:Is it the package org.papervision3d.core.io what I need to export to .dae? 【发布时间】:2011-10-23 10:10:37 【问题描述】:

我需要从一个 DisplayObject3D 创建一个 .DAE 文件,但不知道该怎么做。只有我找到有关如何导入 DAE 的信息。从来不知道如何导出它。

谢谢。


我不能简单地将“网格”更改为“容器”。

这行我不是很懂:

mesh = scene.addChild(new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3));

如果我这样做:

mesh = container.addChild(new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3));

然后它使用纸飞机创建一个 dae,但只创建纸飞机而不是“容器”中存在的其他对象。

如何使用我的 DisplayObject3D“容器”的对象创建 dae?

谢谢

【问题讨论】:

我玩这个已经好几年了,但如果我没记错的话,DAE 文件只是包含 3D 数据的 xml 文件。将使用 3D 渲染程序创建 DAE 文件。 【参考方案1】:

您可以使用ExportCollada的export()静态方法编写一个.DAE文件:

trace(ExportCollada.export(yourDisplayObject3D));

我整理了一个非常基本的例子here:

运行测试并双击舞台以将平面作为 .dae 文件保存到磁盘。

更新

嵌套对象也可以工作,如您所见here:

你提到了这一行:

mesh = scene.addChild(new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3));

这只是在一行中做多件事的一种懒惰方式:

    创建一个新的 PaperPlane 对象 将其添加到场景中 将 PaperPlane 对象分配给网格变量

这样可能更有意义:

var mesh:DisplayObject3D = new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3);
scene.addChild(mesh);

你修改后的sn-p:

mesh = container.addChild(new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3));

表示网格等于通过将纸平面添加到容器(即纸平面)返回的 DisplayObject3D,因此如果要导出网格,则仅导出平面。 如果你导出容器,你应该得到包含容器所有子元素的dae。

更改此行可能更容易:

data.writeUTFBytes(ExportCollada.export(mesh));

到这里:

data.writeUTFBytes(ExportCollada.export(container));//assuming container is visible here

【讨论】:

非常感谢您提供这些信息。这正是所需要的。我花了很多时间寻找这个。现在的问题是我无法实现它。我的 DisplayObject3D 无法识别。我会继续尝试。谢谢再见 “现在的问题是我没有设法实现它。” ?你是什​​么意思 ?你导入了课程吗? import org.papervision3d.core.io.exporters.ExportCollada ? 我不能简单地将“网格”更改为“容器”。 是的,当您将“容器”导出为 DAE 时,您可以而且应该这样做 你好。原谅迟到了。我仍然无法解决它。如果我尝试这个:trace(container);然后我得到这个: 4: x:0 y:0 z:0 如果我试试这个:trace(ExportCollada.export(contenedor_x));然后我收到这条错误消息:错误 1009:无法访问空对象引用的属性或方法我相信我会停止这样做:(谢谢@GeorgeProfenza

以上是关于是我需要导出到 .dae 的包 org.papervision3d.core.io 吗?的主要内容,如果未能解决你的问题,请参考以下文章

导出到 DAE 时如何继承相同的纹理映射?

SCNView 导出的 Collada (.dae) 文件看起来不同,无法导入到 Blender

将dae批量转换为scn

SceneKit - 具有 DAE 文件格式的动画

如何导出 DAE 文件以在 Scene Kit 中使用而不会看到“无标题动画”?

3D可以打开.dae文件吗?