Это пакет org.papervision3d.core.io, который мне нужен для экспорта в .dae? - PullRequest
0 голосов
/ 09 августа 2011

Мне нужно создать файл .DAE из одного DisplayObject3D и не знаю, как это сделать.Только я нахожу информацию о том, как импортировать DAE.Никогда о том, как его экспортировать.

Спасибо.


Я не могу просто заменить "меш" на "контейнер".

Я не очень хорошо понимаю эту строку:

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

Если я сделаю это:

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

Затем он создаст точку с бумажной плоскостью, но только бумажную плоскость, а не другие объекты, которые существуют в «контейнере».1015 * Как я могу создать dae с объектами моего "контейнера" ​​DisplayObject3D?

Спасибо

1 Ответ

0 голосов
/ 11 августа 2011

Вы можете записать файл .DAE, используя ExportCollada export () статический метод:

trace(ExportCollada.export(yourDisplayObject3D));

Я собрал очень простой пример здесь :

PV3D DAE Export

Запустите тест и дважды щелкните по сцене, чтобы сохранить плоскость в виде файла .dae на диск.

Обновление

Вложенные объекты также работают так, как вы можете видеть здесь :

PV3D DAE Export multiple nested objects

Вы упомянули эту строку:

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

Это просто ленивый способ сделать несколько вещей в одной строке:

  1. создать новый объект PaperPlane
  2. добавить его на сцену
  3. назначить объект PaperPlane переменной сетки

Это, вероятно, имеет больше смысла, как это:

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

Ваш модифицированный фрагмент:

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
...