Цитата:
Сообщение от jabo
Где могла бы хранится эта информация ?
|
Не где, увы. Вроде уже рассказывал, но повторю что с нормалями при конвертации в Иловский msh происходит.
Итак. В Максовской/Блендеровской модели информация о группах сохраняется в файле (в 3ds, obj и т.д.). Соответственно, когда мы загружаем модельку, то имеем эту информацию в наличии и у нас нет проблем.
Что с этими группами происходит? В соответствии с параметрами группы нормали при загрузке и всех манипуляциях с группами пересчитываются, ну и за счёт этого мы можем сглаживать рёбра и т.д. Вам это всё знакомо и понятно.
Но! При конвертации в Иловский меш пишутся уже предрассчитанные нормали! Во-первых, в этом случае загрузка более быстрая, ибо нам не надо их пересчитывать. А во-вторых - в игре не предполагается модификация моделей и информация о группах игре вообще не нужна. Вот по этому с группами сглаживания при обратном экспорте всё так печально. Информации о группах в иловском меше просто нет за ненадобностью.
Печально ещё и то, что надёжно восстановить группы по имеющимся нормалям очень сложно. Вернее, результат на сложных моделях будет очень не аккуратный и проще руками группы назначить, чем править сделанное автоматом. Проблема в том, что нужно по всем полигонам проводить множественные сортировки и вычисления общих для них параметров. А это натыкается на сложные случаи, когда из-за конструкции модели возникают неоднозначности в принятии решения. На простых поверхностях эти алгоритмы работают, но даже на простой поверхности можно изобразить случай, когда будет сложно принять решение о том, к какой группе полигон принадлежит. Может я найду в себе силы сделать группировку как фичу, задача сама по себе интересная и мне такие нравятся.

Но обещать сделать это точно не буду, ибо это потребует много свободного времени.