3D-моделирование
3D-моделирование (от полного названия — трёхмерное моделирование, итал. modellazione 3D) — процесс создания формы трёхмерного объекта в виртуальном пространстве с помощью компьютера. Такие объекты, называемые 3D-моделями, генерируются с помощью специализированных программ, известных как 3D-моделлеры, или более широко — 3D-программное обеспечение.
Термин используется в сфере информационных технологий и отличается от других видов трёхмерного моделирования, например, от традиционной скульптуры.
История
История трёхмерной компьютерной графики весьма недавняя; сам термин компьютерная графика появился только в 1960 году[1].
Одной из первых трёхмерных визуализаций, выполненных на компьютере, была так называемая модель «первого человека» или «Boeing Man», созданная Уильямом Феттером; это было множество линий, описывающих виртуальный силуэт пилота.
С 1959 года General Motors в сотрудничестве с IBM занималась разработкой системы DAC, одного из первых CAD-систем. С помощью оптической ручки и чувствительного экрана операторы могли рисовать математические кривые в виртуальном пространстве, образуя профили, сечения и поверхности автомобилей[2]. С первой половины 1960-х годов известна также система «Adage», считающаяся первой автономной CAD-рабочей станцией[3].
Таким образом, появление 3D-моделирования связано с промышленностью, где оно служило вспомогательным инструментом проектирования. Позднее области применения 3D-моделирования и трёхмерной графики значительно расширились, выйдя за пределы технической сферы.
Практика 3D-моделирования в компьютерной графике
Иногда 3D-моделирование является самоцелью, и тогда полученная модель не требует дальнейшей переработки. Однако обычно моделирование — это первый этап комплекса операций, формирующих конечный продукт. Этот этап в области трёхмерной графики обязателен и служит отправной точкой.
Рассмотрим пример сложной задачи: создание «фотореалистичного статического изображения 3D-персонажа». Процесс включает следующие основные этапы:
- Первичное 3D-моделирование[4]
- Вторичное 3D-моделирование[5]
- Определение материалов поверхности (Surfacing)
- Маппинг (задание координат проекции)
- Наложение текстур
- Вставка скелета (риги)
- Скиннинг модели
- Определение позы модели
- Построение сцены[6]
- Освещение сцены
- Рендеринг сцены
- Сохранение изображения в графическом файле
- Финальный вывод (например, печать на бумаге)
Этапы 6-8 не обязательны для статической модели, но необходимы в случае анимации.
Более простой пример: «Корпус катушки из алюминия, изготовленный на станке с ЧПУ».
- 3D-моделирование детали в CAD-моделлере
- Сборка и проверка детали в сборочной модели
- Экспорт 3D-модели в машиночитаемый формат
- Обработка детали на ЧПУ
- Очистка и завершение отделки
- Анодирование и полировка детали
- Сборка в готовом изделии
Таким образом, создание 3D-модели всегда выступает первым звеном технологической цепи — основой последующих операций.
Области применения 3D-моделирования
Системы 3D-моделирования применяются во всех областях трёхмерной компьютерной графики, и зачастую понятия «3D-моделирование» и «3D-графика» считаются синонимами.
Научно-технические приложения
- Математические, физические и естественные науки (биология, физика, математика, астрономия и др.)
- Исследование территории (геология, сейсмология, метеорология и др.)
- Исторические науки (археология, палеонтология, палеоантропология и др.)
- Прикладные науки
- Медицина (судебная, реконструктивная, диагностические исследования и др.)
- Гражданское строительство
- Промышленное проектирование
- Архитектура
- Промышленный дизайн
- Проектирование механических узлов
Художественные приложения
- Кинематографическая индустрия и телевидение
- Видеоигры и игровые приложения
- Рекламная графика
- Издательская продукция
- Web-дизайн
- Мультимедийные приложения
- Художественное производство
Виды 3D-моделирования
С точки зрения типов, всё 3D-моделирование подразделяется на две основные категории, отражающие различия моделей:
- Органическое моделирование — типично для создания людей, животных, гуманоидов и других «естественных» объектов (горы, деревья, ландшафты). Такие модели тем более выразительны, чем богаче детализация. К органическому моделированию часто относят и сложные мягкие формы промышленного дизайна.
- Геометрическое моделирование[7] — старейший тип моделирования, используемый для создания технических, механических и вообще искусственных объектов. Внешне такие модели проще органических, но зачастую куда более точны и строги по параметрам.
Один и тот же объект может включать как органическую, так и геометрическую составляющую либо состоять из частей обеих типов.
Техники 3D-моделирования
Основные направления делятся на три категории:
- Процедурное моделирование (автоматическое и полуавтоматическое)
- Ручное моделирование
- По данным с реальных моделей (3D-сканирование)
Они, в свою очередь, подразделяются на три типа:
- Твёрдотельное моделирование — объект рассматривается как заполненный объём.
- Воксельное моделирование — формируются сущности, задающие имплицитную поверхность.
- Моделирование поверхностей — объект определяется только своими наружными поверхностями.
В отдельных 3D-моделлерах объект считается поверхностным, пока его поверхности незамкнуты; после замыкания и герметизации о форме говорят как о твёрдом теле.
Ниже представлены различные техники ручного моделирования. Некоторые из них (например, patch-системы) считаются устаревшими, но по-прежнему входят в разные 3D-пакеты как вспомогательные опции.
Базовые построения (твёрдые тела и поверхности)
- Примитивы — каждый 3D-пакет, поддерживающий моделирование, содержит набор стандартных «примитивов»: предопределённых объёмных или поверхностных объектов. Обычно это плоскость, куб/прямоугольный параллелепипед, сфера, цилиндр, конус/пирамида[8], тор, а также более сложные объекты (чайник, обезьяна и пр. — в зависимости от программы)[9].
- Построение по экструдированию — создание трёхмерной формы путём вытягивания двумерной заготовки (контур или многоугольник) на определённую высоту и по выбранному направлению.
- Построение по вращению — более сложный вариант: поверхностная форма образуется за счёт вращения плоского профиля вокруг оси, при этом вместо глубины задаётся угол вращения.
Patch-поверхности
Patch-моделирование — одна из старейших систем, эволюционировавшая в ряд новых подходов. Простейший вариант создаёт параметрические поверхности, построенные по четырём и более стыкующимся кривым, формирующим замкнутый контур.
- Поверхность Кунса — интерполирует patch между четырьмя граничными кривыми с общими вершинами; первый алгоритм предложен Стивеном Кунсом в 1967 году[10].
- Patch де Безье — параметрическая поверхность с локальным управлением через контрольные точки (сетку). Сшивая несколько patch-ов, получают сложные сплайновые поверхности[11]; контрольные точки располагаются на пересечениях соседних patch.
Сплайновое моделирование (по поверхностям)
Этот подход использует технику patch-«заплат», как выше, но в основе лежат кривые сплайн. В результате модель формируется из каркаса взаимно соединённых сплайновых кривых. Пространства между 3-4 связанными сплайнами затем заполняются patch-поверхностями[12]. Чаще всего используется при органическом моделировании.
Продвинутые построения (твёрдые тела и поверхности)
Эти конструкции расширяют методы экструдирования и вращения дополнительными возможностями.
- Sweep — экструдирование вдоль пути: профильная кривая или многоугольник вытягивается по заранее заданной кривой или линии.
- Loft — форма объекта определяется последовательностью профилей, размещённых вдоль маршрута; поверхность связывает (с помощью направляющих) эти сечения в единую оболочку.
- Вращение по рельсу — гибрид между вращением и sweep: профиль вращается вокруг оси, но его путь задаётся дополнительной базовой кривой (рельсом)[13].
Такие подходы особенно востребованы при создании инженерных и дизайнерских изделий за счёт высокой точности.
Полигональное моделирование
Это один из базисных методов в 3D-графике. Полигональное моделирование работает с поверхностями, представленными сетками из граней-полигонов. При низком числе полигонов модель лишь приблизительно воспроизводит нужную форму (такой объект называют Low Poly). После завершения полигональная модель может содержать сотни тысяч или даже миллионы граней[14].
Основные методы:
- Смещение элементов — полигональная модель состоит из граней, рёбер и вершин; их перемещение (по одному или группами) изменяет форму сетки. Это самая элементарная процедура полигонального моделирования.
- Создание из базовых примитивов — начать можно с заготовленного полигона (например, куба), далее деформируя (перемещая, вращая, масштабируя) его компоненты.
- Метод плоской сетки — все полигоны объекта создаются и размещаются по отдельности, формируя нужный контур, который далее переводится в объём путём смещения точек или экструдирования[15][16].
Низкополигональный пиранья, построенный из плоской сетки
- Паутинообразный метод — разновидность предыдущего: полигоны строятся поэтапно, начиная с центральной зоны, и «ткань» расширяется к периферии[17].
Моделирование лица от области глаз
- Пошаговая детализация — самый совершенный метод. Вначале быстро создают грубый эскиз с небольшим числом полигонов — это облегчает работу с пропорциями; далее, по мере совершенствования формы, наращивают детализацию, всё глубже прорабатывая отдельные элементы[18].
- С помощью displacement map — см. отдельный раздел.
- С помощью 3D-скульптинга — см. отдельный раздел.
Твёрдотельное моделирование
Твёрдотельное моделирование или CSG применяется главным образом в инженерии и CAD. Коммерческие твёрдотельные моделлеры появились в конце 1960-х, первым был Romulus (1981)[19]. Позднее появились Granite от PTC (1987) с поддержкой параметрического моделирования, и Parasolid от Unigraphics (1988)[20].
К основным операциям относятся:
- Базовые примитивы — те же, что и выше.
- Экструдирование и вращение (простое и расширенное)
- Булевы операции — объединение, вычитание и пересечение твёрдых тел, заимствованные из булевой алгебры.
- Скругления и фаски — автоматические функции соединения граней с определённым радиусом или углом.
Метаболлы
метаболлы («blobs») — особые объёмные примитивы для создания органических, дизайнерских или жидких форм. Метаболлы — сущности с ядром (визуализируемым как имплицитная поверхность) и внешним «полем влияния». При сближении метаболлы притягиваются и сливаются (или отталкиваются, если поле отрицательно)[21]. Модель, созданная как имплицитная поверхность, затем переводится в полигональную сетку с заданной плотностью.
Варианты метаболлов:
- Сферические метаболлы — простейшая форма, неудобна для вытянутых объектов (требуется много сущностей).
- Метаболлы произвольной геометрии — облегчают создание сложных форм.
- Мета-мышцы — вариант для моделирования анатомии; впервые реализованы в MetaReyes для 3DS Max (REM Infográfica, 1997)[22].
NURBS-поверхности
Технология NURBS (Non-Uniform Rational B-Spline) внедрена Boeing в 1975 году[23]. NURBS-поверхности — универсальный инструмент для сложных органических и технических форм, отличаются идеальной гладкостью (без полигонажа)[24], легко контролируются посредством небольшого числа контрольных точек (CV).
Генерация поверхностей — по NURBS-кривым (экструдирование, вращение, loft, patch и др.) либо через специализированные примитивы (сферы, цилиндры и т. д.). Изменения модели обычно вносятся через редактирование CV, а также добавление/удаление кривых по направлениям U и V[25].
Параметрическое твёрдотельное моделирование
Классический твёрдотельный подход в CAD получил новый импульс с внедрением параметрических «feature-based» моделей. Здесь объект строится шагами, повторяя логику изготовления реальной детали. В результате изменять размеры, радиусы и другие параметры можно на любом этапе.
Появление подхода связывают с работами д-ра Сэмюэла Гейзберга, реализовавшего систему Pro/ENGINEER в 1987 году.
Параметрическое моделирование позволяет не только строить объекты по числовым параметрам, но и структурировать процесс: все этапы (feature) сохраняются в древе зависимостей. Любой этап можно откатить, скорректировать параметры и автоматически обновить модель. Сегодня большинство CAD-систем сочетают твёрдотельное и поверхностное параметрическое моделирование[23].
Типовая последовательность (для механообъектов):
- Выбор плоскости
- 2D-эскиз на плоскости
- Базовая операция (feature) (например, экструдирование)
- Вторичные операции (вырезы, дополнительные экструдирования)
- Финишные операции (скругления, фаски, резьбы и т. д.)
Изменять любые параметры и опции можно на каждом этапе — процесс полностью обратим.
Поверхности подразделения (Subdivision Surface)
Поверхности подразделения Катмулла-Кларка впервые описаны Э. Катмуллом и Д. Кларком (1978)[26], а в Pixar впервые использованы для фильма «Geri’s Game» (1989).
Этот метод совмещает достоинства полигонального и NURBS-моделирования: итоговая поверхность гладкая (без граней), допускает неограниченную сложность формы[27]. Лучший способ начать — конвертация упрощённой полигональной сетки; продолжать можно как обычное полигональное моделирование, дополнительно регулируя «вес» точек.
Имплицитные поверхности (Воксели)
Воксели обычно применяют для визуализации сложных структур, а не для стандартного моделирования. Воксель формирует объём вокруг точки, рендерится по его имплицитной границе.
На практике воксели используются для построения медицинских моделей по данным КТ и МРТ[28], относятся к «моделированию по данным сканирования» (см. ниже). Воксели также востребованы для анимации сложных эффектов — газов, атмосферы, взрывов[29], имитации жидкостей, лавы и проч., где они выступают частью процедурного моделирования.
В ручном моделировании имплицитные поверхности могут использоваться для построения необычных форм из точечных объектов (например, по полигональной сетке). Получаемые результаты часто сходны с метаболлами[30], но удобнее для генерации «органических» и фантастических конструкций.
Карты смещения (Displacement mapping)
Displacement mapping — техника, деформирующая геометрию модели изображением в градациях серого[31]. Отличие от bump mapping в том, что displacement искажает физическую форму поверхности по нормалям: светлые участки изображения смещают точки наружу, тёмные — внутрь. Применяется для органических и технических моделей.
Выделяют два типа:
- Геометрический displacement — напрямую изменяет вершины mesh, требует высокой тесселяции; недостаток — тяжёлые модели.
- Microdisplacement — создаёт миллионы мелких граней только на этапе рендеринга или предпросмотра; исходная модель может оставаться простой.
3D-скульптинг
Эту технику называют также displacement painting, поскольку она объединяет карты смещения (displacement-maps) и 3D-рисование. Модификация геометрии происходит виртуальными кистями (разные формы и функции), которыми «прорисовывают» детали на поверхности в реальном времени — как при лепке из глины. Предшественниками выступали инструменты прямого покраса по mesh, не искажая геометрию. Первая реализация техники — модуль artisan в Maya, однако пионером 3D-скульптинга стал ZBrush от Pixologic[32].
Чаще всего используется для доработки детализированных органических моделей, особенно персонажей. Из-за высокой сложности (миллионы полигонов) данные часто «запекают» в displacement- или normal maps для последующего использования в облегчённых mesh.
Ротоскопирование
Это вспомогательный, а не самостоятельный метод. Ротоскопинг (от англ. rotoscoping, «трассировка») — использование картинок-фонов в окнах моделирования (или накладывая их на плоскости), чтобы точнее построить объект. Для простых форм достаточно одного ракурса, для сложных — ставят изображения в фронтальной, боковой и верхней или нижней проекциях[33].
Анатомический элемент (ухо) моделируется с помощью фонового изображения |
Далее рассмотрены методы, выходящие за пределы классического ручного моделирования:
Процедурное моделирование
Процедурное моделирование подразумевает автоматизированную или полуавтоматическую генерацию форм с помощью алгоритмических инструментов. Качество результата зависит от возможностей конкретного ПО.
Основные категории программ:
- Динамические симуляторы (гидродинамика, ткань, soft-body симуляция)
- Генераторы растений
- Генераторы волос/шерсти
- Генераторы 3D-моделей (лица, существа, технические объекты)
- Фрактальные генераторы (ландшафты, абстрактные формы)
Методы различаются: либо работают только с набором исходных параметров (полностью автоматическая генерация), либо добавляют геометрию-направляющую или дополнительные ограничения с частичным контролем.
3D-сканирование
Трёхмерные модели, построенные по реальным прототипам, востребованы в архитектуре, кино, сохранении культурного наследия, медицине и др. Существует спектр приёмов и инструментов.
- Фотограмметрия — бюджетная технология[34], позволяет создавать low-poly формы по фотографиям c разных ракурсов (иногда с метками[35]). Модель будет неточной, просто аппроксимирующей объект.
- 3D-проба с помощью контактного щупа — механический рукав «ощупывает» модель по сетке[34], программно строится облако точек. Позволяет сканировать средние и малые твёрдые объекты.
- Лазерное сканирование — широкое семейство приборов (от ручных до крупногабаритных для ландшафта)[36]. Каждый проход создаёт облако точек, агрегируемое в финальную модель; точность высока, а «безконтактность» позволяет оцифровывать даже мягкие или гибкие объекты[37].
- Проецирование световых паттернов — схоже с лазерным сканированием, но использует проекцию полос света и оптические сенсоры[38]. Работает быстрее, но не подходит для крупных объектов.
- КТ и МРТ-сканирование
Позволяют реконструировать внутренние структуры организма неинвазивно.
Принципы корректного моделирования
Важнейшее понятие — правильная 3D-модель: важен не столько технический метод, сколько соответствие готовой модели её назначению. Сначала выбирают способ построения (органическое или геометрическое моделирование) в зависимости от типа объекта: бессмысленно лепить механический элемент «органикой», либо строить руку посредством чистого CAD. Конкретный выбор зависит от назначения: например, модель автомобиля для игры и для заводской CAD-системы радикально различаются.
Правильной считается та техника, которая соответствует типу объекта и предполагаемому применению.
| 3D-модель для построения: (человеческое лицо) | ||
|---|---|---|
| ▼ | ||
| Тип моделирования: (органическое) | ||
| ▼ | ||
| Назначение модели: | ||
| Реалтайм-игра | Facial Липсинк-анимация | 3D-печать (стереолитография) |
| СИСТЕМА A Полигональное моделирование Low Poly |
СИСТЕМА B Полигональное моделирование + Subdivision Surface |
СИСТЕМА C Полигональное моделирование + 3D-скульптинг + конвертация STL |
| ▼ | ▼ | ▼ |
| СВОЙСТВА МОДЕЛИ минимум полигонов, очень облегчённая сетка |
СВОЙСТВА МОДЕЛИ оптимизирована для анимации поверхности |
СВОЙСТВА МОДЕЛИ максимум деталей, очень тяжёлая сетка |
Примечания
Литература
Книги и руководства
- Giacomo Andreucci, SketchUp. Моделирование 3D и геомоделирование, FAG, Милан, 2012, 512 стр.
- CAD Tutor 3D. Интерактивный курс AutoCAD 3D. Клаудио Гаспарини, 2005, Gasparini Editore, ISBN 88-89740-00-0.
- Dan Ablan, LightWave 3D. Полное руководство, APOGEO, 1998, ISBN 88-7303-399-7.
- David Rogers, Rae Earnshaw. Computer Graphics Techniques: Theory and Practice. Springer, 2001, 399 с. ISBN 0-387-97237-4.
- Karen E. Goulekas — Visual Effects in a Digital World, 2001, Morgan Kaufmann, ISBN 0-12-293785-6.
- Michael Todd Peterson — 3D Studio MAX 2 Guida completa, 1998, APOGEO, ISBN 88-7303-400-4.
- John Kundert-Gibbs, Peter Lee — Maya 5. Полное руководство, Apogeo Editore, ISBN 88-503-2219-4.
- Dan Ablan, LightWave [6]. Guida completa, APOGEO, 2000, ISBN 88-7303-583-3.
- Mental Ray per Autodesk 3ds Max, Max Design e VIZ, Полное руководство, 2008, AM4 EDUCATIONAL, ISBN 978-88-901879-1-9.
Журналы
- Computer Grafica: tecniche & applicazioni, выпуски № 6, 11, 14, 15, 18, 21, 42, 46, 52, 56, Imago Edizioni.
- 3D professional, выпуски № 1, 2, Imago Edizioni.
- CG computer Gazette, № 12, декабрь 1999, IHT Gruppo Editoriale.