пятница, 10 июля 2009 г.

Трехмерные модели

 

Все программы в которых работал я создают модели трех основных типов: mesh, solid, nurbs. (если кто имеет что добавить – в комментах)

все они различаются достаточно принципиально как по методу моделирования, так и по методу использования. Принципиальная разница, на самом деле, заключается в методе построения (хранения информации) модели

1) Mesh-объекты (3dsMAX, SketchUp и тп.), создаются на основе связанных треугольников. Как известно, три  – минимальное количество точек, определяющие одну единственную плоскость. Таким образом поверхность объекта складывается из плоских поверхностей ограниченных треугольниками.

Сухой остаток: модель хранится как набор связанных точек, поверхность всегда состоит из плоскостей. Возможно, это лучший метод хранения конечного результата (меньше всего памяти занимает) однако ограничивает моделирование объекта и получение чертежа, его масштабирование. Для получения сложных обтекаемых поверхностей приходится сильно увеличивать количество плоских граней (полигонов) на объекте. Плохо работает с операциями типа boolean.

2) solid  (Autocad, Solidworks, Inventor, revit) создаются на основе простых методов(пересечение, выдавливание, вращение) ортогональных) профилей.  Именно как описание профилей, операций и численных параметров они и хранятся.

Сухой остаток: благодаря тому, что модель хранится не как жесткая геометрия а как описание алгоритма построения, в любой момент можно минимальными средствами изменить любой численный параметр или профиль объекта. Так же объекты масштабируются (кривые расчитываются каждый раз заново) и легко подвергаются операциям сложения/вычитания (boolean), легко делать рабочие чертежи. Модели получаются сравнительно простыми и для хранения сложных моделей (групп объектов по сути) потребуется много памяти. Создание обтекаемых сложных моделей невозможно или крайне трудоемко.

3) Nurbs  (Rhino, Revit, Inventor) – это модели (поверхности) которые создаются на основе сплайнов (кривых) “нерациональными” методами –то есть определенные параметры модели расчитываются “извне” – на основе настроек типа размер объекта и т.п. Это позволяет создавать поверхности на основе с множеством “незаданных” радиусов скругления.

Сухой остаток: модель хранится так же как и для solid; она масштабируется, позволяет делать рабочие чертежи, легко работает с boolean, однако ее изменение сравнительно сложнее чем solid (или, порой, невозможно) . В целом nurbs предназначена для создания сложных обтекаемых поверхностей.

Мои два пенса:

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

2 комментария:

  1. а как ты решаешь получение финальной картинки, например если есть проект отдельные части которого лучше моделить нурбс, а отдельные полигонами.

    ОтветитьУдалить
  2. визуализирую почти все в максе. При экспорте нурбс в 3дс они триангулируются с той или иной степенью точности, ты просто выбираешь необходимую.

    Альтернатива - в большинстве редакторов есть и то и то (в максе есть нурбс, в рино - меш).
    При рендере ВСЕ модели триангулируются для просчета в процессе рендеринга.

    ОтветитьУдалить