Цитата:
Сообщение от Asura
Было бы супер взять и скрыть полигоны сдвижной части и на их место прилепить отдельный мешь. Такие операции вообще технически возможны или это фантастика? 
|
По поводу конверта в obj - не могу ничего сказать, я с Максами/Блендерами не дружу от слова совсем. И с obj, в принципе, возможны проблемы по причине того, что формат достаточно простой и не содержит в себе многого необходимого. Про сбой маппинга, например, выше обсуждали, текстуру надо флипнуть по Y, а в obj это не указать.
Теперь маленькое лирическое отступление на тему того, как вообще функционирует отрисовка в ОГЛ и ДХ. Понимание этого позволит создавать более сложные модели и иметь при этом хорошую производительность. Те, кто в курсе этого, могут скипнуть следующие абзацы.
Фактически, что ОГЛ, что ДХ, это машины состояния. Условно - у нас есть конвейер. На него в определённом порядке грузятся команды. В соответствии с ними происходит изменение состояния конвейера. Вроде просто? Да. Но изменение состояния конвейера операция ОЧЕНЬ дорогая с точки зрения производительности. Это фундаментальная вещь в манипулировании с 3Д данными. При изменении состояния конвейера видяха должна синхронизировать все стадии внутренней обработки. Её внутренние конвейеры должны закончить обработку данных в пределах предыдущего состояния. А это приводит к тому, что на этот момент новые поступившие команды и данные не могут начать обрабатываться. Вот тут у нас и происходит основная потеря производительности. Если мы строим модели по определённым правилам, уменьшая кол-во изменений состояния конвейера до минимума, то решающими факторами для производительности будут пропускная шины для загрузки данных и скорость вывода готового результата на экран, мы таким образом будем приближаться к максимально возможной скорости обработки данных.
Основной девиз в 3Д - "Сортируйте всё, всегда, сортируйте максимально возможно!". Особенно в случае тяжелых операций, типа блендинга и ему подобных. Объединяйте части модели, использующие одинаковые настройки материалов в максимально крупные блоки. Разделяя модель на части старайтесь, чтоб части были максимально крупные, с минимально возможным кол-вом материалов. Внутри отдельных частей модели также сортируйте и объединяйте части по материалам. Режьте только там, где без этого не обойтись.
В качестве примера очень хорошо подходят кокпиты. Большое кол-во элементов - очень много маленьких элементиков, типа стрелочек, шариков, шкал и т.п. Если правильно собрать эти элементы в материалы и текстуры, то мы можем существенно выиграть на переключениях различных внутренних буферов. Если мы под каждую стрелочку и приборчик будем лепить свои текстуры и материалы, то у нас колов вставать будет даже очень продвинутое железо.
Ещё один пример. Тут выкладывалась модель с более чем 70к полигонов на лод. Почему она так шустро отрисовывается? Именно потому, что в ней фактически не происходит переключений состояния конвейера. Один раз загрузили данные, один раз установили стейты и потом всё, что мы делаем, говорим видяхе "рисуй!". Это очень быстро происходит, учитывая, что видяхи умеют кэшировать результаты промежуточных расчётов, которые не сбрасываются изменениями состояния конвейера.
Всегда помните и думайте об этом. Лирическое отступление - OFF.
В этой модели Спита полигоны объединены скорее всего именно по этой причине. Если часть модели монолитна, то выделять её в отдельный элемент очень вредно для производительности.
Теперь о самом вопросе.
Всё можно сделать.

Но надо ли подменять собой профессиональные инструменты, которые именно под такой функционал заточены и умеют это делать на отлично? Они же, как раз, и созданы для разработки моделей.

У нас немного другая задача - конверт данных, просмотр результата и чуть позже будет лёгкая манипуляция с готовыми частями модели (круть-верть мешей и хуков), то, что заменит ручную работу с форматами, неподдерживаемыми большими продуктами, чтоб из пушки по воробьям не пулять. В общем, пока у меня в планах нет задачи написания своего Макса, с "блекджеком и шл.хами".