тл;др;
Как разработчику программного обеспечения, получившему очень детализированную 3D-модель, быстро и легко оптимизировать ее для мобильных приложений, чтобы он мог сосредоточить свое время и энергию на разработке логики приложения?
Я думаю, что это довольно распространенный вариант использования, и, возможно, где-то уже есть инструмент для этого.
Длинная история
У меня есть 3D-модель (коллада) машины. Эта модель, созданная командой инженеров машины, содержит множество мельчайших деталей, необходимых для создания аппаратной части машины.
Теперь я разрабатываю мобильное приложение с Unity, которое должно отображать эту машину вместе с 10 другими машинами в одной сцене. Что мне нравится в доступных моделях, так это то, что они выглядят точно так же, как настоящие. При этом внутреннее наполнение меня не интересует, мне достаточно внешней оболочки. Я не взаимодействую с командой 3D-моделирования (допустим, я скачал модель из какого-то архива) и, следовательно, не могу попросить их внести какие-либо изменения для меня. Модель - это все, что у меня есть. Я сам по себе.
Есть две проблемы, с которыми я сталкиваюсь
- Как избавиться от интерьеров моделей?
- Как избавиться от деталей высокого разрешения во внешней оболочке, которые человеческий глаз не может обнаружить в мобильном телефоне?
Чтобы дать представление о масштабе, реальное оборудование и, следовательно, модель могут быть размером до 100 футов (30 м), в то время как они никогда не будут занимать более 5-дюймового HD-дисплея. Размер моделей варьируется от 50 МБ до 400 МБ. Таким образом, вся сцена может занимать до 2 ГБ. Каждая модель имеет около 300 тысяч лиц.
Другая проблема, с которой я сталкиваюсь, заключается в том, что я разработчик программного обеспечения, знакомый с кодом, и мое знакомство с инструментами 3D-моделирования очень ограничено, и я хотел бы, чтобы это было так :) Я могу поиграть с этими инструментами, но я не хочу начать тратить половину своего времени с этими инструментами.
Я пробовал модификатор Decimate блендера. Но результат не очень хороший, количество потерянных деталей очень равномерное, а не нацелено на интерьер. Я не хочу тратить время на просмотр каждой сетки и удаление их вручную.
Кроме того, по какой-то причине, когда я импортирую модель, экспортированную из блендера в единство, они выглядят ужасно (некоторые грани/многоугольники, которые я вижу в блендере, я не вижу их в единстве), даже с нулевым прореживанием.
Я не могу переварить тот факт, что ручной процесс - единственный способ. Я чувствую, что с сегодняшними технологиями это была бы простая автоматизация. Шаги, как я вижу,
- Обнаружение полигонов, недоступных напрямую из каких-либо внешних рейкастов. Если требуется, я могу определить набор (14 может быть достаточно) точек для начала raycast, в основном местоположения камеры.
- Удалить эти полигоны
- Обнаружение полигонов с размерами меньше порога
- Удалить эти полигоны