3д графика и принципы работы. Трехмерная графика

3д графика и принципы работы. Трехмерная графика

Этот вид компьютерной графики вобрал в себя очень много из векторной, а также из растровой компьютерной графики. Применяется она при разработке дизайн-проектов интерьера, архитектурных объектов, в рекламе, при создании обучающих компьютерных программ, видео-роликов, наглядных изображений деталей и изделий в машиностроении и др.

Трёхмерная компьютерная графика позволяет создавать объёмные трёхмерные сцены с моделированием условий освещения и установкой точек зрения.

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

Трёхмерная компьютерная графика, как и векторная, является объектно-ориентированной, что позволяет изменять как все элементы трёхмерной сцены, так и каждый объект в отдельности. Этот вид компьютерной графики обладает большими возможностями для поддержки технического черчения. С помощью графических редакторов трёхмерной компьютерной графики, например Autodesk 3D Studio , можно выполнять наглядные изображения деталей и изделий машиностроения, а также выполнять макетирование зданий и архитектурных объектов, изучаемых в соответствующем разделе архитектурно-строительного черчения. Наряду с этим может быть осуществлена графическая поддержка таких разделов начертательной геометрии, как перспектива, аксонометрические и ортогональные проекции, т.к. принципы построения изображений в трёхмерной компьютерной графике частично заимствованы из них.

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

К средствам работы с трёхмерной графикой,относят такой графический редактор как 3D Studio MAX . Это один из самых известных трёхмерных редакторов, он часто используется при создании фильмов. Разработка программы 3D Studio МАХ была начата в 1993 году. Версия 3D Studio МАХ 1.0 вышла в 1995 году на платформе Windows NT .

Уже тогда некоторые эксперты осторожно высказывали мнение, что МАХ может конкурировать с другими пакетами трехмерной графики. Осенью 2003 года discreet выпускает ЗD MAX 6 . Новые инструменты анимации частиц в связке с модулями позволяют создавать фотореалистичные атмосферные эффекты. Появились встроенная поддержка капельно-сетчатых объектов, полноценная сетевая визуализация, импорт данных из САD -приложений, новые возможности для моделирования. Но кроме 3D Studio MAX есть и другие, не менее популярные программы трёхмерного моделирования, например Maya . Maya - это программа-аналог 3D Studio MAX , но она предназначена, в первую очередь, для анимации и для передачи мимики на лице трёхмерного актёра. Кроме того, в Maya удобнее рисовать. 3D Studio MAX направлен в первую очередь на качественную визуализацию предметов, ещё в нём можно выполнять примитивные чертежи.


Вообще для черчения существуют свои программы трёхмерного моделирования, самые известные из них AutoCAD , ArhiCAD . AutoCAD предназначен, в первую очередь, для машиностроительного черчения, а ArhiCAD для архитектурного моделирования.

Что же требует трехмерная графика от человека?

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

Именно это условие дает возможность описать с помощью получаемых плоскостей «пространственную сетку» , которая представляет собой модель объекта. Затем объекту дополнительно присваиваются характеристики поверхности объекта – материал. В свою очередь, материал характеризует качество поверхности, например, полированная, шероховатая, блестящая и др. Описывается и его текстура (камень, ткань, стекло и др.). Задаются и оптические свойства, например, прозрачность, отражение или преломление световых лучей и т.д.
Наряду с этим, трехмерному объекту можно задать условия освещения и выбрать точку обзора (камеру) для получения наиболее интересного наглядного изображения. Постановка, состоящая из трехмерного объекта, условий освещения и выбранной точки зрения, называется «трехмерной сценой» . А вот для описания трехмерного пространства и объекта, находящегося внутри его, используется хорошо уже знакомый Вам координатный метод.

Существуют различные методы моделирования трехмерных объектов. Например, метод текстового описания модели с помощью специальных языков программирования «Скрипт» .

Для создания компьютерной графики используют множество различных приложений. Условно их можно разделить на следующие группы:

  • Программы для цифрового скульптинга (Pixologic ZBrush, Autodesk Mudbox).
  • Игровые движки (Unreal Engine 4, Unity 5, CryEngine 3).
  • Узкоспециализированные приложения, «заточенные» под конкретные задачи (анимация жидкостей - RealFlow, создание текстур - Mari и пр.).
  • Универсальные 3D редакторы (Cinema 4D, 3Ds Max, Maya, Houidini и т.д.).

Первые три группы разберем в следующих статьях. А сегодня предлагаем обзор универсальных 3D редакторов (Full 3D Suites).

Универсальные 3 D редакторы, как правило, содержат все необходимое для CG: инструменты моделирования, анимации и визуализации.

На вопросы: «Какой из пакетов лучший? Что выбрать?» нет правильных ответов. Выбор инструмента зависит от многих факторов: личных предпочтений CG-художника, поставленных целей, финансовых возможностей и т.д.

  • функционал программы;
  • удобство пользования (интуитивный интерфейс и т.д.);
  • доступность, цена.

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

Самые популярные 3D пакеты:

3 Ds Max

3Ds Max - «пионер» среди 3D редакторов, очень популярный инструмент, №1 в выборе многих начинающих и продвинутых специалистов. Занимает ведущие позиции в сфере дизайна и архитектурной визуализации. Часто используется в игровой индустрии.

Возможности:

  • моделирование на основе полигонов, сплайнов и NURBS,
  • мощная система частиц,
  • модуль волосы/шерсть,
  • расширенные шейдеры Shader FX,
  • поддержка новых и усовершенствованных механизмов Iray и mental ray.
  • анимация толпы,
  • импорт из Revit и SketchUp,
  • интеграция композитинга.

И многое другое.

Плюсы: огромный функционал, множество плагинов и обучающей информации.

Минусы: не так прост в освоении, «старожилу» требуются серьезные обновления.

Autodesk Maya

Maya - промышленный стандарт 3D графики в кино и телевидении. Maya популярна среди крупных студий и масштабных проектов в рекламе, кино, игровой индустрии. Пакет идеален для создания анимации.

Возможности:

  • полный набор инструментов для NURBS- и полигонального моделирования;
  • мощные средства общей и персонажной анимации;
  • развитая система частиц;
  • технология Maya Fur (создание меха, волос, травы);
  • технология Maya Fluid Effects (моделирование жидкостей, атмосферы);
  • широкий набор средств создания динамических спецэффектов;
  • UV-текстуры, нормали и цветовое кодирование;
  • многопроцессорный гибкий рендеринг.

Плюсы: огромный функционал и возможности.

Минусы: длительное и сложное обучение, высокие требования к системе, высокая цена.

Cinema 4 D

Cinema 4 D - один из самых лучших и удобных 3D пакетов на сегодняшний день. Огромный функционал: от моделирования, анимации, эффектов до «лепки» и модуля BodyPaint 3D. У более понятный и удобный интерфейс нежели у 3Ds Max и Maya. Широко используется в моушен-дизайне, киноиндустрии и рекламе.

Возможности:

  • полигональное и NURBS-моделирование;
  • BodyPaint 3D (модуль для создания разверток UV и текстурных карт);
  • генерация и анимация объектов;
  • персонажная анимация;
  • динамика мягких и твердых тел;
  • модуль для создания реалистичных волос;
  • система частиц Thinking Particles;
  • неплохой встроенный визуализатор.

Плюсы: легкость в освоении, интуитивный интерфейс, отличный функционал, множество обучающих материалов, тесная связь с Adobe After Effects, Houdini и т.д.

Минусы: неотлаженная система перехода между версиями.

Modo

Modo - полноценный продукт для моделирования, рисования, анимации и визуализации. Включает также инструменты скульптинга и текстурного окрашивания. Благодаря удобству пользования и высокой производительности, у Modo репутация одного из самых быстрых инструментов моделирования. Modo популярен в сфере рекламы, разработки игр, спецэффектов и архитектурной визуализации.

Возможности:

  • полигональное и моделирование SDS;
  • современные инструменты анимации;
  • динамика твердых и мягких тел;
  • система рисования;
  • материал Fur (мех) для создания волос, травы и меха;
  • инструменты лепки;
  • быстрая и качественная визуализация.

Плюсы: мощный и понятный инструментарий, высокая производительность.

Минусы: мало информации.

Side Effects Houdini

Houdini - мощный профессиональный пакет для работы с 3D графикой, в его основе процедурная, нодовая система. Houdini идеально подходит для создания сложной динамики, симуляции: частиц, жидкости, дыма, огня, имитации природных явлений и т.д. А также это отличный инструмент для создания впечатляющих визуальных эффектов. Основная область применения Houdini - киноиндустрия.

Возможности:

  • полигональное и NURBS-моделирование,
  • анимация (ключевая, процедурная),
  • персонажная анимация,
  • система частиц,
  • динамика твердых и мягких тел, тканей, шерсти/волос, газов и жидкостей,
  • работа с объемным звуком,
  • мощный рендер движок Mantra,
  • встроенный инструмент композитинга.

Плюсы: высококлассные спецэффекты и анимация.

Минусы: мало информации, высокая цена.

Softimage

Softimage (Autodesk Softimage, ранее Softimage/XSI) - программа для 3D анимации и создания визуальных эффектов в game-индустрии, кино и телевидении.

У Softimage была одна из самых лучших систем анимации. Благодаря уникальной системе ICE (Interactive Creative Environment — платформе визуального программирования, основанной на нодах) пакет предлагал широкую функциональность, гибкость, высокую производительность и качество.

Возможности:

  • мощное полигональное, а также процедурное моделирование в среде ICE;
  • физика и динамика частиц и геометрии;
  • нелинейная анимация;
  • инструменты лицевой анимации Autodesk Face Robot;
  • встроенный MentalRay.

В 2008 году компания Autodesk выкупила Softimage у Avid за 35 млн. долларов. В 2015 Autodesk объявила о прекращении продаж лицензий на Softimage и фактически избавилась от одного из самых сильных игроков на рынке. На официальном сайте предлагается перейти на 3Ds Max или Maya.

LightWave

Lightwave 3D - инструмент для 3D анимации и визуальных эффектов от компании NewNek. С давних пор является промышленным стандартом в кино и телевидении.

Новый усовершенствованный пакет LightWave 2015 предлагает огромные возможности: от динамического моделирования, персонажной анимации, визуальных эффектов до разработки игр и архитектурной визуализации.

Возможности:

  • интуитивный двойной интерфейс (modeler и layout);
  • мощное полигональное моделирование;
  • развитая система анимации;
  • система частиц;
  • система снаряжения персонажа Genoma 2;
  • усовершенствованный рендеринг;
  • интерактивное динамическое наследование (Interactive Dynamic Parenting);
  • гибкая система Bullet Dynamics;

Плюсы: огромный функционал, удобный двойной интерфейс.

Минусы: не так популярен в нашей стране и странах СНГ, мало информации.

Blender

Единственный в списке бесплатный 3D пакет, который практически не уступает по функционалу платным приложениям. Blender включает в себя средства для 3D моделирования, анимации, а также набор опций для создания игр, визуальных эффектов и скульптинга. Отличная альтернатива «монстрам» 3D анимации. Благодаря поддержке Blender Foundation, программа очень быстро и стабильно развивается.

Возможности:

  • полигональное моделирование, сплайны, NURBS-кривые и поверхности;
  • режим лепки;
  • система частиц;
  • динамика твердых и мягких тел: жидкость, шерсть/волосы и т.д.;
  • скелетная анимация;
  • встроенные механизмы рендеринга и интеграция со сторонними визуализаторами;
  • редактор видео;
  • функции создания игр и приложений (Game Blender).

Плюсы: доступность, открытый код, кроссплатформенность, небольшой размер (около 50 мегабайт), широкий функционал, возможность создания игр.

Минусы: отсутствие документации в базовой поставке.

Итак, если коротко:

  • 3Ds Max - компьютерные игры, интерьеры, визуализация.
  • Maya - анимация, киноиндустрия, телевидение, клипы.
  • Cinema 4D - спецэффекты в кино и телевидении, моушен-дизайн, реклама.
  • Modo - реклама, игры, спецэффекты в кино.
  • Houdini - визуальное программирование, спецэффекты в кино.
  • Softimage - анимация и спецэффекты в кино, телевидении, играх.
  • LightWave - спецэффекты в кино, телевидении.
  • Blender - персонажная анимация, создание игр.

В заключение хочется отметить: 3D редактор - всего лишь инструмент, раскрыть потенциал которого может только сам дизайнер, CG художник. Освоив в полной мере один пакет, изучить другие не составит труда.

Удачи Вам в обучении и работе!

«Все что существует в реальном мире можно создать в виртуальном, используя правильное сочетание программ и таланта художника».

На сегодняшний день ни один современный фильм и компьютерная игра не обходятся без трехмерной графики. Профессия 3D-художника востребована как никогда. Чтобы начать создавать трехмерную графику, нужно иметь представление об основных инструментах (3D редакторах) и этапах производства (pipeline) 3D моделей.

Особенности процесса создания фильмов

Создание компьютерной графики в фильмах - колоссальная работа, над которой трудятся сотни профессионалов. От сценаристов и режиссеров до целой армии 3D-художников: они занимаются моделированием, текстурированием, анимацией, риггингом и визуализацией персонажей и виртуального мира.

Основные факторы в процессе создания графики:

  • сроки работ;
  • уровень сложности и качества моделей;
  • бюджет проекта.

Особенности процесса создания компьютерных игр

В отличие от фильма, игра - это интерактивное взаимодействие человека и виртуального мира. Поэтому главные факторы при создании игры:

  • интерактивность;
  • бесперебойное функционирование;
  • и только затем визуальный аспект.

Моделер ограничен возможностями игрового движка и консоли. Часто задано строгое количество полигонов для каждого отдельного элемента.

Основные этапы создания и визуализации 3 D моделей в кино и game -индустриях

  1. Моделирование - создание трехмерных объектов.
  2. Текстурирование - наложение текстур и материалов на 3D-модели.
  3. Риггинг (от англ. Rig - оснастка) - создание виртуального «скелета», набора «костей»/«суставов» для последующей анимации персонажа.
  4. Анимация - «оживление», анимирование трехмерного персонажа.
  5. Рендеринг (3 D визуализация) - визуализация созданной графики и запись.
  6. Композитинг - объединение отдельных элементов в финальную сцену. К примеру, интегрирование 3D сцен в съемочный материал, цветокоррекция и добавление эффектов.

Моделирование

Способов моделирования множество, рассказать обо всех в одной статье нереально. Мы затронем лишь самые популярные методы.

Процесс моделирования для фильмов и игр в целом схож, однако существуют некоторые различия, а именно:

  1. Способ моделирования.

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

  1. Количество полигонов у модели.

Чем больше полигонов у объекта, тем выше детализация и качество. В связи с этим выделяют высокополигональные (high poly) и низкополигональные (low poly) модели. Для фильмов обычно создают высокополигональные модели, рендеринг которых, проходит по несколько часов, а то и дней. В играх же используются низкополигональные модели, визуализация происходит прямо по ходу игры. Часто в компьютерных играх встречается LOD-технология (Level of Detail - «уровень детализации»). Она состоит в упрощении 3D-моделей путем подмены их на более примитивные, когда виртуальная камера (игрок) удаляется от них. Это разгружает систему, и она работает над полной обработкой только объектов в пределах видимости.

Хотя релизы некоторых новых игр и демонстрируют качественное улучшение графики, у моделера стоит сложная задача: создать ощущения высокого качества при ограниченном «полигонаже».

Существует много программ для моделирования. Бесспорным лидером является Autodesk Maya , далее идут Autodesk 3 Ds Max и Cinema 4 D . Также можно выделить Modo и Blender . Преимущество последнего - бесплатность.

Если вы хотите заняться цифровым скульптингом, выбирайте такие редакторы, как ZBrush , Mudbox , 3 D Coat .

Текстурирование

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

Далее рисуются текстуры и привязываются к модели. Создается целый набор текстур: цвет, карта неровностей (bump), карта нормалей (normal map - создает видимость рельефа), карта рельефа (displacement - создает реальный рельеф), карта бликов (specular), карта прозрачности (alpha) и многие другие. Так создается готовый визуальный образ модели или персонажа: от одежды и волос до морщинок.

Часто в игровой индустрии моделер ответственен и за моделирование, и текстурирование. В кино художник по текстурам - часто отдельная должность.

Создавать текстурные развертки и текстуры можно в тех же программах, что и модели. Но часто удобнее делать это в UVLayout .

Риггинг

Следующий этап риггинг - создание «скелета», костей модели. Занимаются этим в кино и game-индустрии художники по «оснастке» модели, «сетаперы» (от англ. Setup artist). Еще их называют skinning, rigging artist. Сетаперы создают кости и средства (контроллеры) для управления этими костями, с помощью которых аниматоры могут «оживить» модель.

В кино обычно создается множество сложных контроллеров для аниматоров. Например, для лицевой анимации (facial control rig) и мимики модели. В играх можно обойтись и без них, если персонаж не разговаривает в игре.

Для риггинга модели подойдут те же 3D-редакторы, о которых сказано выше. Большинство этих программ - комплексные пакеты для создания трехмерной графики, в том числе и для оснастки модели.

Анимация

Чтобы «оживить» трехмерную модель за работу берутся аниматоры. Главная задача аниматора - сделать движения модели максимально реалистичными. Особенно это актуально в фильмах, когда в кадре трехмерному персонажу нужно взаимодействовать с реальными актерами.

Простейшим методом анимации персонажей является Анимация по ключевым кадрам (Keyframes ) . Аниматор указывает положение персонажа в начальном и конечном кадрах движения, а положение в промежуточных кадрах вычисляется программой. Это простой в реализации способ, но достаточно трудоемкий для создания сложных движений и требует большого умения аниматора для получения реалистичности персонажа.

Существует еще процедурная анимация , при которой используется специальная программа для управления персонажем.

Напомним и про технологию Motion Capture (система захвата движений). Она подразумевает наложение движений реальных актеров на трехмерных персонажей. Эта технология максимально упрощает анимацию, позволяя использовать уже готовые движения актеров.

Негласным лидером в создании трехмерной анимации является Autodesk Maya . Однако, она не так легка в освоении. Помимо Maya отличные инструменты для анимации - 3 Ds Max и Cinema 4 D .

Рендеринг

Завершающий этап - итоговая визуализация (rendering) полученных сцен.

Существует два вида рендеринга - рендеринг в реальном времени и рендеринг не в реальном времени или пре-рендеринг.

В компьютерных играх используется рендеринг в реальном времени. Реакции на действия игрока происходят моментально. Свет, цвет и тени формируются с помощью ранее просчитанных карт и текстур, а объекты перспективно проецируются на экран. Чтобы качество графики при этом не пострадало, в играх часто используются 3D ускорители. Главный критерий в игре - скорость выполнения просчета.

В кино обычно используют пре-рендеринг , когда скорость просчета - не главный фактор, а на первом плане высокое качество изображений. А именно, фотореалистическое качество с физически корректным наложением света и тени. Рендер каждого отдельного кадра может длиться по 20, а то и 100 часов. Фотореалистичный рендер - ресурсоемкая задача, справиться с которой помогут рендер фермы. Они помогают в разы сократить время просчета.

Среди методов рендеринга можно выделить:

  • растеризацию с методом сканирования строк (scanline, rasterization);
  • трассировку лучей (raytracing);
  • метод излучательности (radiosity).

Очень часто методы raytracing и radiosity комбинируются для достижения впечатляющих фотореалистичных результатов.

Стандартные программы трехмерного моделирования включают и функцию рендеринга. Существуют и отдельные рендер-движки. Одни из самых мощных визуализаторов на сегодняшний день - Mental Ray , VRay , Renderman .

Композитинг

Композитинг является важным завершающим этапом постпродакшена.

И это не просто работа над цветом и слоями: композер объединяет все части в единое целое, интегрирует в съемочный материал трехмерных персонажей и другие 3D элементы, устраняет недочеты и убирает лишнее, работает над различными эффектами. Одним словом, создает одну реалистичную сцену. Композер является ответственным за финальный продукт - фильм, игру.

Профессиональные программы для композитинга - Nuke , Adobe After Effects , Eyeon Fusion .

В заключение хочется сказать, что хорошими художниками не становятся в одночасье: нужны многие месяцы и даже годы практики. Выбрав свой путь, старайтесь не расстраиваться, если на первых порах ваши работы далеки от шедевра. Помните: зачастую все, что вы видите в фильмах и играх годами создавалось сотнями профессионалов своего дела. Практикуйтесь и учитесь у профессионалов, и все у вас получится!

  • Recovery Mode

Все мы слышали о 3D графике (далее просто 3D, не путать со способом отображения - голограммами, 3D-мониторами и т.п.), многие прекрасно знают, что такое 3D и с чем его едят. Но, все же, есть и те, кто смутно себе представляет, что кроется под этой короткой аббревиатурой. Статья рассчитана на тех, кто не имеет представления о компьютерной графике. Также будет немного экскурса в историю компьютерной графики (в следующих планируемых частях).
Почему именно 3D? Как нетрудно догадаться, речь идет о 3 Dimension, или о трех измерениях. И не обязательно при этом, чтобы и отображение было в 3D. Речь идет о способе построения картинки.

Часть 1. Собственно, моделирование
Традиционно рисуют в 2D (по осям X и Y) - на бумаге, холсте, дереве и т.п. При этом отображают какую-то одну из сторон предмета. Картинка сама по себе плоская. Но если мы хотим получить представление обо всех сторонах предмета, то необходимо нарисовать несколько рисунков. Так поступают в традиционной рисованной анимации. Но, вместе с тем, существует, (кстати, в СССР была довольно хорошо развита) т.н. кукольная анимация. Один раз изготовленную куклу снимают в необходимых позах и ракурсах, получая серию «плоских картинок». 3D (к X и Y добавляется координата глубины Z) визуализация - это те же «куклы», только существующие в цифровом виде. Другими словами, в специальных программах (Blender, 3ds Max, Maya, Cinema 4D и т.п.) создается объемное изображение, например авто.


Преимущество данного метода в том, что в распоряжении, скажем, аниматора есть объемная модель, необходимо лишь поместить ее должным образом в кадр, анимировать (задать траекторию передвижения или рассчитать с помощью симулятора) при необходимости, а уж отображение авто в финальной картинке ложится на специальную программу называемую визуализатором (render). Еще одно преимущество в том, что модель достаточно нарисовать один раз, а потом использовать в других проектах (скопировав), изменять, деформировать и т.п. по своему усмотрению. Для обычного 2D рисунка, в общем случае, такое невозможно. Третье преимущество - можно создавать практически бесконечно детализированные модели, например смоделировать даже винтики на часах и т.п. На общем плане этот винтик может быть и неразличим, но стоит нам приблизить камеру, программа-визуализатор сама рассчитает, что видно в кадре, а что - нет.

Существует несколько способов моделирования, но самым популярным является полигональное моделирование. Нередко можно увидеть в роликах о 3D или фантастических фильмах как тот или иной объект представляется в виде т.н. сетки. (см. рисунок выше) Это и есть пример полигонального моделирования. Суть его в том, что поверхности представляются в виде простых геометрических двумерных примитивов. В компьютерных играх это треугольники, для других целей обычно используют четырехугольники и фигуры с большим кол-вом углов. Эти примитивы, из которых состоит модель, называют полигонами . Но при создании 3D объекта стараются обойтись, как правило, четырехугольниками. При необходимости четырехугольники (полигоны) без проблем превращаются в треугольники при экспорте в игровой движок, а при необходимости сглаживания или тесселяции модель из четырехугольников получается, как правило, без артефактов.
Что такое тесселяция? Если какой-то объект представляется в виде полигонов (особенно органические объекты, например человек), то понятно, что чем меньше размер полигонов, чем их больше, тем более близкой может быть модель к оригиналу. На этом основан метод тесселяции: сначала изготавливают грубую болванку из небольшого кол-ва полигонов, затем применяют операцию тесселяции, при этом каждый полигон делится на 4 части. Так вот, если полигон четырехугольный (а еще лучше, близок к квадрату) то алгоритмы тесселяции дают более качественный и предсказуемый результат. Также операция сглаживания, а это та же тесселяция, только с изменением углов на более тупые, при близких к квадрату полигонах, позволяет получить хороший результат.


Как было сказано выше, чем больше полигонов, тем более модель может (может, потому, что модель должна быть еще похожа на оригинал, а это вопрос мастерства моделера, а не полигонов) походить на оригинал. Но у большого кол-ва полигонов есть обратная сторона: понижение производительности. Чем больше полигонов, тем больше точек по которым они строятся, тем больше данных приходится обрабатывать процессору. Поэтому 3D графика - это всегда компромисс между детализацией модели и производительностью. В связи с этим даже возникли термины: hight poly и low poly, соответственно высоко полигональная модель и низко полигональная модель. В играх применяются низко полигональные модели, так как в них выполняется визуализация в реальном времени. Кстати, модели в играх представлены треугольниками для повышения производительности: графические процессоры умеют на аппаратном уровне быстро обрабатывать сотни миллионов треугольников за секунду.

Как правило, полигональное моделирование относится к пустотелому моделированию, где объект имеет только объем, но внутри пустой. Это означает, что если мы смоделируем куб, а потом удалим одну из стенок, то увидим внутри пустоту. Также имеются программы для твердотельного моделирования, где тот же самый куб представлен в виде монолитного объекта. В таких программах (к примеру, Autodesk Inventor) применяются математические модели отличные от тех, что в полигональном моделировании. Алгоритмы твердотельного моделирования лучше подходят для моделирования механизмов при разработке техники. Программы вроде Autodesk Inventor имеют средства для моделирования с учетом особенностей технологического процесса, как то фаски, сверление отверстий, проставление размеров, допусков и т.п. Получаемые модели можно сразу отправить на подходящий станок для получения изделия в металле или другом материале.
Также существуют так называемые программы 3D лепки (ZBrush, Autodesk Mudbox) в которых моделирование сводится (грубо говоря) к созданию углублений или выпуклостей. Такая техника похожа на то, как скульпторы лепят из глины - убирая ненужное и добавляя необходимое. С помощью таких программ можно добиться реалистичного рельефа поверхности, например морщин на коже или складок ткани. В настоящее время высокополигональные (а для лепки модель должна обладать солидным кол-вом полигонов) реалистичные модели людей и вообще животного мира выполняются, в большинстве своем, с применение программы лепки. Распространена практика когда заготовка модели создается с помощью полигонального моделирования, а затем в программе лепки тесселируется и добавляются мелкие детали.

Но вот у нас есть готовая модель, скажем, танка. Но на танк, собственно, она не совсем похожа. В чем же тут дело? На данном этапе у нас всего лишь математическая модель содержащая данные только о геометрической форме. Но у реального объекта кроме формы есть еще и цвет, плотность, отражающая способность, и, возможно, запах. Последнее пока в 3D графике не применяется, а вот все остальное можно смоделировать. Придание модели нужного цвета и блеска называют текстурированием, от слова текстура.


В общем случае текстура - это двумерный рисунок который накладывается на 3D модель. Текстура может быть как процедурной - сгенерированной при помощи алгоритма, так и нарисованная в графическом редакторе, или фотографией реального объекта. С помощью текстуры задается рисунок и цвет модели, но реальная поверхность обладает и другими параметрами: отражающей способностью, преломлением, рельефом, позрачностью и т.п. Все эти параметры задаются в свойствах материала. Т.е. материал с точки зрения 3D графики - это некая математическая модель описывающая параметры поверхности. Например, для воды обязательно необходимо указать прозрачность и преломляющую, отражающую способности.
Перед «нанесением» материала на 3D модель необходимо создать ее развертку, т.е. представить все (несколько, одну) поверхности в виде проекции на плоскость. Это необходимо для того, чтобы затем двумерная текстура правильно «лягла» на модель.
Таким образом изготовление 3D модели в общем случае состоит из следующих стадий:
1. Получение изображений референса (т.е. того, с чего будет моделироваться) или самого референса. Или отрисовка экскиза.
2. Моделирование геометрии на основе референса.
3. Создание развертки.
4. Отрисовка текстур или получение их другим способом в виде файлов.
5. Настройка параметров материала (текстуры, преломление, отражение, прозрачность).
Теперь 3D модель готова для визуализации - получении картинки.
Первый и четвертый пункт могут быть быть опущены если модель простая, но, как правило, хороших результатов без всех 5 шагов не добиться.
Подытожим.
Между обычным рисунком, скажем, на бумаге, и построением 3D изображения есть существенные различия в самом процессе. Двумерный рисунок, как правило, создается в два этапа: эскиз и раскрашивание. В 3D графике после изготовления модели ее необходимо поместить в сцену к другим объектам (или в так называемую студию), добавить освещение, камеру и лишь затем можно надеяться получить финальную картинку. Изображение в 3Dграфике просчитывается на основе физической модели, как правило, это модель распространения луча света с учетом отражения, преломления, рассеивания и т.п. Рисуя красками мы сами отрисовываем тени, блики и т.д., а в трехмерной графике мы подготавливаем сцену с учетом освещения, материалов, геометрии, свойств камеры, программа рассчитывает итоговую картинку сама.

Вот, на сегодня пока и все. Комментарии, а особенно вопросы и замечания по существу приветствуются.

P.S. В следующих частях (если Хабрабществу будет интересно) мы более подробно поговорим о трехмерном моделировании для игр, будет затронута визуализация, моделирование динамических сред, таких как вода, разрушение объекта и затронем динамическое взаимодействие между 3D объектами, историю 3D графики.

Трёхмерная графика (3D Graphics, Три измерения изображения, 3 Dimensions, рус. 3 измерения) - раздел компьютерной графики, совокупность приемов и инструментов (как программных, так и аппаратных), предназначенных для изображения объёмных объектов. Больше всего применяется для создания изображений на плоскости экрана или листа печатной продукции в архитектурной визуализации, кинематографе, телевидении, компьютерных играх, печатной продукции, а также в науке и промышленности.

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

Для получения трёхмерного изображения на плоскости требуются следующие шаги:

    моделирование - создание трёхмерной математической модели сцены и объектов в ней.

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

    вывод полученного изображения на устройство вывода - дисплей или принтер.

Однако, в связи с попытками создания 3D-дисплеев и 3D-принтеров, трёхмерная графика не обязательно включает в себя проецирование на плоскость

Моделирование

Сцена (виртуальное пространство моделирования) включает в себя несколько категорий объектов:

    Геометрия (построенная с помощью различных техник модель, например здание)

    Материалы (информация о визуальных свойствах модели, например цвет стен и отражающая/преломляющая способность окон)

    Источники света (настройки направления, мощности, спектра освещения)

    Виртуальные камеры (выбор точки и угла построения проекции)

    Силы и воздействия (настройки динамических искажений объектов, применяется в основном в анимации)

    Дополнительные эффекты (объекты, имитирующие атмосферные явления: свет в тумане, облака, пламя и пр.)

Задача трёхмерного моделирования - описать эти объекты и разместить их в сцене с помощью геометрических преобразований в соответствии с требованиями к будущему изображению.

Рендеринг

На этом этапе математическая (векторная) пространственная модель превращается в плоскую (растровую) картинку. Если требуется создать фильм, то рендерится последовательность таких картинок - кадров. Как структура данных, изображение на экране представлено матрицей точек, где каждая точка определена по крайней мере тремя числами: интенсивностью красного, синего и зелёного цвета. Таким образом рендеринг преобразует трёхмерную векторную структуру данных в плоскую матрицу пикселов. Этот шаг часто требует очень сложных вычислений, особенно если требуется создать иллюзию реальности. Самый простой вид рендеринга - это построить контуры моделей на экране компьютера с помощью проекции, как показано выше. Обычно этого недостаточно и нужно создать иллюзию материалов, из которых изготовлены объекты, а также рассчитать искажения этих объектов за счёт прозрачных сред (например, жидкости в стакане).

Существует несколько технологий рендеринга, часто комбинируемых вместе. Например:

    Z-буфер (используется в OpenGL и DirectX 10);

    Сканлайн (scanline) - он же Ray casting («бросание луча», упрощенный алгоритм обратной трассировки лучей) - расчёт цвета каждой точки картинки построением луча из точки зрения наблюдателя через воображаемое отверстие в экране на месте этого пиксела «в сцену» до пересечения с первой поверхностью. Цвет пиксела будет таким же, как цвет этой поверхности (иногда с учётом освещения и т. д.);

    Трассировка лучей (рейтрейсинг, англ. raytracing) - то же, что и сканлайн, но цвет пиксела уточняется за счёт построения дополнительных лучей (отражённых, преломлённых и т. д.) от точки пересечения луча взгляда. Несмотря на название, применяется только обратная трассировка лучей (то есть как раз от наблюдателя к источнику света), прямая крайне неэффективна и потребляет слишком много ресурсов для получения качественной картинки;

    Глобальное освещение (англ. global illumination, radiosity) - расчёт взаимодействия поверхностей и сред в видимом спектре излучения с помощью интегральных уравнений.

Грань между алгоритмами трассировки лучей в настоящее время практически стёрлась. Так, в 3D Studio Max стандартный визуализатор называется Default scanline renderer, но он считает не только вклад диффузного, отражённого и собственного (цвета самосвечения) света, но и сглаженные тени. По этой причине, чаще понятие Raycasting относится к обратной трассировке лучей, а Raytracing - к прямой.

Наиболее популярными системами рендеринга являются:

    PhotoRealistic RenderMan (PRMan)

Вследствие большого объёма однотипных вычислений рендеринг можно разбивать на потоки (распараллеливать). Поэтому для рендеринга весьма актуально использованиемногопроцессорных систем. В последнее время активно ведётся разработка систем рендеринга использующих GPU вместо CPU, и уже сегодня их эффективность для таких вычислений намного выше. К таким системам относятся:

    Refractive Software Octane Render

    AAA studio FurryBall

    RandomControl ARION (гибридная)

Многие производители систем рендеринга для CPU также планируют ввести поддержку GPU (LuxRender, YafaRay, mental images iray).

Самые передовые достижения и идеи трёхмерной графики (и компьютерной графики вообще) докладываются и обсуждаются на ежегодном симпозиуме SIGGRAPH, традиционно проводимом в США.

просмотров