воскресенье, 17 августа 2008 г.

Обмен полигональными моделями с системой CATIA


Я уже рассказывал как перегонять модели в виде NURBS-поверхностей из CATIA в 3D MAX для последующего рендеринга. Один из недостатков этого способа — применение дополнительного плагина (nPower PowerTranslator). Самое же главное его преимущество — получение поверхностей в том виде как они были смоделированы. Но в большинстве случаев, к примеру для фотовизуализации, достаточно полигональной модели. Также иногда нет возможности применения нескольких программ — хотелось бы напрямую перегонять модели из CATIA непосредственно в программу рендеринга. Поделюсь своим скромным опытом в этом на первый взгляд простом деле. Тестирование проводилось в CATIA V5R18 SP2 и 3D MAX 2009 SP1, однако описанные методы подходят и для более старых версий.

Задача 1. Модель CATIA требуется в полигональном виде передать в 3D MAX

Для начала создадим простую деталь в модуле Part Design (проектирование деталей).


Теперь посмотрим какие варианты экспорта полигональных моделей имеются в CATIA. В общем-то их три: CGR, 3D XML и STL. Про первые два прийдется забыть, т.к. кроме CATIA и нескольких 3D-вьюеров их никакой софт не поддерживает. Значит, воспользуемся тем что осталось — STL. Выбираем папку, в которую мы сохраним нашу модель и имя файла.


Далее через меню импорта 3D MAX выбираем соответствующий тип файла и нашу модель. В появившемся диалоговом окне можно все параметры оставить как есть. Жмем "ОК" и через секунду видим нашу детальку в окнах проекций.


Теперь можно присваивать материалы и рендерить.


На этом можно было и закончить описание всей процедуры, но мы немного усложним задачу — поробуем экспортировать не одну деталь, а сборку. И вот тут мы сразу попадаем в тупик — при сохранении сборки напрочь отсутствует тип файла STL. Получается, что прийдется заходить в каждую деталь и по одной ее пересохранять в нужный формат. Если в сборке несколько деталей, такой вариант не кажется обременительным, а вот если их десятки или сотни?


Применим небольшую хитрость — в CATIA есть отличный инструмент, которым почему-то редко пользуются, хотя он удобен не только для наших целей. Речь идет об Associativity, который позволяет создавать деталь на основе сборки, преобразуя детали в отдельные тела (при этом деталь остается параметрической — при изменении деталей в сборке будет меняться и ассоциативная деталь). Следующим шагом надо открыть эту деталь в новом окне — Open in new window и просто сохранить полученный результат в STL.


Импортируем полученный файл в 3D MAX. Все отлично, кроме того, что все детали слиты в один объект, что не слишком удобно если мы планировали применять разные материалы к разным деталям или проводить иные манипуляции. Воспользуемся инструментом Explode со значением 180 — это разобъет наш объект на детали, аналогично тому, как они были спроектированы в CATIA.


Теперь немного о настройках, которые позволят улучшить качество передаваемой модели. При сохранении в STL из CATIA используется механизм триангуляции тот же самый, что и при отображении на экране в рабочем окне. А значит, степень апроксимации меняется в меню Tools/Options/Display/Performance/3D Accuracy — чем меньше значение, тем более качественной будет модель на выходе (и, соответственно, "тяжелее"). Можно даже посмотреть как будет разбита модель на треугольники не выходя из CATIA.


Задача 2. Модель CATIA требуется в полигональном виде передать в программу рендеринга.

Сразу хочу сказать, что не все системы фотовизуализации поддерживают формат STL, тем не менее, одна из лучших, Maxwell Render, делает это.

Сохраним из CATIA модель как это было описано в Задаче 1 и импортируем ее в Maxwell Studio. Импортированная модель повернута и увеличена в масштабе (очевидно, используются другие единицы измерения) Опытным путем выяснилось, что правильное значение масштаба для импортированных объектов 0,001. Выбираем наш объект, меняем масштаб по всем осям и поворачиваем. Видим, что здесь сохраняется та же проблема, что и при импорте в 3D Max: все детали слились в один объект. Т.е. и материал мы можем присвоить всем деталям только один. Исправить ситуацию мы можем создав т.н. группы треугольников. Делается это так: переходим в режим управления треугольниками, выбираем любой из полигонов нужной детали и жмем на клавиатуре "/" — это выделит все полигоны, из которых состоит деталь, затем правой кнопкой мыши по выбранному и Group Triangles. Здесь можно ввести имя группы, чтобы не запутаться. Так же поступаем с остальными "деталями", которым в дальнейшем мы хотим присвоить разные материалы — все они должны быть преобразованы в группы треугольников.


Теперь подберем необходимые материалы и переложим их в список материалов сцены. Оттуда можем простым перетягиванием присвоить материалы группам (здесь-то и пригодятся нормальные названия, иначе сложно определись какой материал чему присваивается).

Вот, собственно, и все. Теперь достаточно выбрать HDRI-окружение (если необходимо), создать камеру и нажать кнупку Render. Эти части подробнейшим образом описаны в мануале к Maxwell Render

Задача 3. Перенести полигональную модель из 3D Max в CATIA.

В этом случае все так же решеается через STL-файлы. Готовим в 3D Max модель и экспортируем ее (File/Export/STL). Далее запускаем CATIA и идем в меню File/Open/STL, чтобы... убедиться, что таким способом STL-файл не откроешь.

Значит надо идти другим путем. В CATIA есть специальный модуль для работы с полигональными моделями (Shape Sculptor). Видимо, если и есть средства импорта, то только там...

Если масштаб и единицы измерения у оригинальной модели были нормальные, то они в том же виде перенесутся и в CATIA.

Примечание. Задача 2 решается еще одним способом, при котором не требуется возиться с группами треугольников, зато прийдется схожую по времени процедуру (может чуть быстрее) проделать в CATIA. Видимо этот способ будет удобнее тем, кто в большей степени работает с CATIA и в меньшей — с программами рендеринга. Так же не рассмотрен вариант сохранения поверхностей в формат STL — в приведенных примерах работа проводится только с солидами. Если все это интересно, я раскажу обо всем этом в следуещем посте.

четверг, 7 августа 2008 г.

Mudbox 2009

Уже можно потестировать новейшую версию продукта Autodesk и, пожалуй, главного конкурента ZBrush - Mudbox 2009. Основное направление программы - скульптурное моделирование дополняется в новой версии повышенной производительностью при большом количестве полигонов, поддержку GPU-рендеринга, HDRI, теней в реальном времени, добавлена повышенная совместимость с другими продуктами Autodesk - Maya и 3D Max. Среди других улучшений можно отметить и обновленный интерфейс. Все вышеописанное взято из официального пресс-релиза и для составления своего мнения надо все это пощупать своими руками. Вот как раз сейчас качаю 30-дневную триал-версию.