Комментарии 10
Эм... а зачем нужно было писать свой парсер когда у usd есть готовые биндинги в питон и весь файл можно читать в нормальном виде? К тому же у вас нет поддержки, референсов, слоёв, инстансов, пойнт инстансов, наследования и вариантов, тот же самый Kitchen_set (тестовый файлик от пиксар) вы так не загрузите.
Раз уж вы начали разбираться в формате USD, то может разумнее было бы добавить поддержку этого формата в приложение, чем писать конвертер?
Конкрентно в моменте стояла задача переконвертировать около 100-150 моделей в уже поддерживаемый формат, найденый мною костыльный вариант позволял это сделать "со всеми удобствами":
удобочитаемый формат данных (все промежуточные результаты, в том числе и вывод usdcat я сразу сохранял для всевозможных проверок что пошло не так)
есть все дебажные данные для проверки (в том числе и саму модельку можно без проблем посмотреть на линуксе)
промежуточная сцена, созданная в blender позволяла быстро проверить, как влияют какие-либо правки на финальный результат
есть возможность удобно вносить дополнительные правки (например, в некоторых случаях были текстуры 4к и больше, что на мобилках приводило к тормозам)
возможность в будущем спокойно править ошибки просто перегенерив модельки, в случае с поддержкой формата приложением цена ошибки выше (придется для определенных версий приложения не отдавать проблемные/неподдерживаемые модельки)
В случае поддержки формата в приложении можно было бы наткнуться на кучу проблем:
нужно еще больше погружаться в работу ArCore и USD, что заняло бы еще больше времени -> больше риски не успеть в сроки
банально неудобно смотреть на промежуточные результаты (сравнивать пример модельки с тем что отрисовалось в приложении на андроиде гораздо сложнее чем сравнить в полноценном 3d редакторе)
нет возможности на ходу быстро вносить правки (те же размеры текстур и тд)
большое количество возможных подводных камней, которые с ходу я мог бы не заметить
Хосподе! И это статьи от Яндекс, и работа в Яндекс??! :)
Костыль-мастер (с) Шико Мстоян
Вот туж точно. :)
Я бы рекомендовал сменить название статьи на «Как мы костылили обёртку (wrapper) над чужими библиотеками» и поставить заставкой это:

Дорогу осилит идущий! Спасибо за интересную статью!
Эм... а зачем нужно было писать свой парсер когда у usd есть готовые биндинги в питон и весь файл можно читать в нормальном виде? К тому же у вас нет поддержки, референсов, слоёв, инстансов, пойнт инстансов, наследования и вариантов, тот же самый Kitchen_set (тестовый файлик от пиксар) вы так не загрузите.
Задача делалась в сжатые сроки, и я тупо не заметил что уже есть биндинги к питону позволяющие нормально читать файл, поэтому накидал свой парсер :) Похоже мне нужно было последовать своему же совету "внимательно изучайте инструменты", это могло бы сэкономить много времени)
Спасибо за правильное замечание)
"Если бы у меня не получилось окольными путями сконвертировать хотя бы одну модельку, я бы быстро перегорел и ушел с проекта." - а что, так можно было? (с)...
Как я написал конвертер 3D-моделей из подручных средств