Как импортировать сложную модель .dae в SceneKit? - PullRequest
0 голосов
/ 12 октября 2018

Я знаю, как экспортировать одну модель (например, автомобиль) из Blender в виде файла .dae, а затем импортировать и показать ее с помощью SceneKit.А также с анимацией для этой модели.

Но мне интересно, как лучше импортировать более сложные модели.Как маленькая часть города.Как сцена с несколькими автомобилями, зданиями и людьми, с разными анимациями.

Есть ли способ сделать это, не экспортируя все как одну модель с одной анимацией, а затем с помощью кода в комбинат SceneKit и размещая все?Чтобы как можно больше было определено в Blender / другом 3D-инструменте.

Ответы [ 2 ]

0 голосов
/ 10 марта 2019

На самом деле, есть способ сделать это.

Если вы смотрите видео WWDC о Model I / O, парень демонстрирует, как перебирать файл .USD, чтобы легко захватывать узлы, геометрии, связанные иерархии, материалы, анимацию и т. Д.

К сожалению, он не сделал этого для файла .dae.

Процесс идет следующим образом:

  1. Создание массива узлов в файле сцены.

  2. Создать массив, который описывает родительские узлы каждого узла.

  3. Создайте массив, который описывает экземпляры этих узлов.

  4. Создать массив, описывающий материалы для узлов ...

  5. Создать массив, описывающий анимации ... сделать это с помощьюсоздание массива костей, их прикрепленных вершин, преобразований и т. д.

После всего этого вам нужно написать функцию, которая собирает сцену, которая была описана как массив массивов.,

Я недостаточно опытен, чтобы сделать это ... и я надеюсь, что кто-то создаст пример, чтобы я мог его изучить.

Но это логика.

0 голосов
/ 12 октября 2018

Очевидно, что вы должны экспортировать сложные модели из 3D-пакетов, разделенных на более мелкие части.И, конечно же, вам не обязательно экспортировать все ваши 3D-модели отдельно (для каждой модели).В любом случае, подготовка всех ваших 3D-моделей для использования в Game Engine является чрезвычайно трудоемким процессом. Нет единого решения для кнопки .

Сложные сцены, такие как город, можно логически разделить на группы статических объектов: небоскребы, посты, асфальт, дома, скамейки и т. Д. Но анимированные объекты, такие как людидеревья или машины должны быть экспортированы из Blender и импортированы в SceneKit отдельно.

Помните, что все соответствующие текстуры для этих 3D-объектов (будь то отдельный объект или группа объектов) должны быть сохранены в виде квадратных * * * * * * * файлов * или * png (например, 512x512 или 1024x1024 пикселей),И не забывайте о низкополигональных сетках столкновений для динамики.

Посмотрите на сессия WWDC 2015 SceneKit .Вы узнаете, как построить трехмерную сцену в редакторе сцен Xcode.

enter image description here

Для достижения своей цели вам необходимо экспортировать меньшие части (логически разделенные, какЯ уже упоминал ранее) вашей 3D-сцены из Blender, импортируйте все части в проект SceneKit (ARKit), а затем объедините их все через код Swift.Кроме того, многие 3D-пакеты могут экспортировать несколько анимаций в виде одной анимации с так называемыми суб-анимациями.В этом SO сообщении вы можете найти, как справиться с этим.

...