- Трехмерная графика — это что такое?
- Что это такое?
- История технологии
- Как это делается?
- Моделирование
- Процесс моделирования
- Материалы и текстуры
- Макет и анимация
- Что такое рендеринг?
- Программное обеспечение
- Системы автоматизированного проектирования
- Дополнительные инструменты
- Сообщества
- Отличия от других видов компьютерной графики
- Псевдо-3D и настоящее 3D
- Что такое 3D-графика и как она устроена
- Создание 3D-моделей
- Отображение 3D-моделей на экране
- Движение в 3D
Трехмерная графика — это что такое?
Трехмерная графика — это графика, в которой используется 3-мерное представление геометрических фигур (часто декартовых), хранящихся в компьютере для целей расчетов и рендеринга двумерных изображений. Такие картинки могут быть сохранены для последующего просмотра или отображены в режиме реального времени.
Что это такое?
Трехмерная компьютерная графика опирается на многие из тех же алгоритмов, что и двухмерная компьютерная векторная в каркасной модели, и двухмерная компьютерная растровая в окончательном отображаемом изображении. В приложениях компьютерной графики 2D-программы могут применять 3D-методы для получения аналогичных эффектов (к примеру, освещение), а 3D могут использовать 2D-методы рендеринга.
Трехмерную графику часто называют 3D-моделями. Помимо визуализированного изображения, модель содержится в графическом файле данных. Однако есть различия: трехмерная модель — это математическое представление какого-либо трехмерного объекта. Она технически не является графикой, пока не отображается. Она может отображаться визуально в виде двумерного изображения посредством процесса, называемого 3D-рендерингом, или использоваться в неграфических компьютерных симуляциях и вычислениях.
При 3D-печати эти модели аналогичным образом преобразуются в трехмерное физическое представление с ограничениями на то, насколько точным может быть рендеринг для виртуальной модели.
История технологии
Система трехмерной графики имеет довольно длительную историю. Уильяму Феттеру приписывают термин «компьютерная графика» с 1961 года для описания его работы в Boeing. Одной из первых работ в стиле компьютерной анимации являлась Futureworld (1976), которая включала анимацию человеческого лица и руки. Эта технология первоначально появилась в экспериментальной короткометражке A Computer Animated Hand 1972 года, созданной студентами Университета Юты Эдвином Кэтмаллом и Фредом Парке. С того момента трехмерная графика – это прорывная технология, которая стала развиваться очень активно по настоящее время.
ПО для трехмерной графики стало появляться для домашних компьютеров в конце 1970 годов. Самым ранним известным примером является 3D Art Graphics — набор трехмерных компьютерных графических эффектов, написанный Kazumasa Mitazawa и выпущенный в июне 1978 года для Apple II.
Как это делается?
Создание трехмерной графики делится на три основных этапа:
- 3D-моделирование — представляет собой процесс создания компьютерной модели, отображающей форму объекта.
- Макет и анимация — размещение и перемещение объектов внутри сцены.
- 3D-рендеринг — компьютерные вычисления, которые на основе расположения света, типов поверхности и других качеств генерируют изображение.
Моделирование
Моделирование описывает процесс создания формы объекта. Двумя наиболее распространенными источниками трехмерных моделей являются следующие:
- те, которые художник или инженер создают на компьютере с помощью какого-либо инструмента трехмерного моделирования;
- модели, отсканированные в компьютер из реальных объектов.
Они также могут быть изготовлены процедурно или с помощью физического моделирования. По сути, трехмерная модель создается из точек, называемых вершинами, которые определяют форму и формируют многоугольники. Для этого используется построение трехмерных графиков.
Многоугольник — это область, образованная как минимум из трех вершин (треугольник). В свою очередь, многоугольник из n-точек — это n-угольник. Целостность модели в общем, и ее пригодность для анимации зависят от ее структуры. Чтобы она была функциональной, требуется правильно построить трехмерный график.
Процесс моделирования
Существует три распространенных метода представления модели. Они отличаются так:
- Полигональное — точки в трехмерном пространстве, называемые вершинами, соединяются отрезками, образуя полигональную сетку. Большинство современных трехмерных моделей построены как текстурированные полигональные, потому что они гибкие и компьютеры могут отображать их очень быстро. Однако многоугольники являются плоскими и могут только приблизиться к кривым поверхностям, используя много многоугольников.
- Моделирование кривых — поверхности определяются кривыми, на которые влияют взвешенные контрольные точки. Кривая следует (но не обязательно интерполирует) точки. Увеличение веса для точки притянет кривую ближе к ней. Типы кривых включают в себя неоднородный рациональный B-сплайн (NURBS), патчи, сплайны и геометрические примитивы.
- Цифровое — до сих пор относительно новый метод моделирования. Оно стало очень популярным за последние несколько лет.
Сегодня существует три типа цифрового моделирования:
- Смещение, которое наиболее широко используется в приложениях. В этот момент применяется плотная модель (часто генерируемая поверхностями подразделений многоугольной управляющей сетки), которая сохраняет новые местоположения для положений вершин с помощью карты изображений, в которой хранятся скорректированные местоположения.
- Объемный, слабо основанный на вокселях, который обладает аналогичными возможностями смещения, но не страдает от растяжения границ, когда недостаточно точек для достижения деформации объекта.
- Динамическая тесселяция похожа на воксели, но она разделяет поверхность при помощи триангуляции для поддержания гладкой поверхности и получения более мелких деталей.
Моделирование может выполняться с помощью специальной программы (например, Cinema 4D, 3ds Max, Maya, Blender, Modo, LightWave) или прикладного компонента (Shaper, Lofter в 3ds Max), либо с помощью некоторого языка описания сцены (как в POV-Ray). Иногда нет строгого различия между этими фазами. В данных случаях моделирование трехмерной графики — это только часть процесса создания сцены.
Сложные материалы, такие как движущийся песок, облака и брызги жидкости, моделируются с помощью систем частиц и представляют собой массу трехмерных координат, которым назначены точки, многоугольники, текстуры или спирали.
Материалы и текстуры
Материалы и текстуры — это свойства, которые движок рендеринга использует для создания модели. В несмещенном механизме рендеринга, таком как циклы блендера, можно дать указание движку по материалам модели. Например, так можно настроить, как обрабатывать свет, когда он попадает на поверхность.
Текстуры используются, чтобы придать материалу цвет, используя карту цветов или альбедо, или добавить поверхностные особенности, используя карту неровностей или нормалей. Это может также использоваться, чтобы видоизменить саму модель по форме, используя карту смещения. Несмотря на то что она создается посредством построения трехмерных графиков, эти процессы оказывают сильное влияние.
Макет и анимация
Перед рендерингом в изображение объекты должны быть размещены в композиции. Это определяет пространственные соотношения между разными объектами, в том числе их размер и местоположение. Анимация представляет собой временное описание объекта (то есть как он движется и деформируется во времени). Распространенные методы включают в себя кадрирование, обратную кинематику и захват движения. Эти способы часто используются в сочетании, и оказывают непосредственное влияние на производительность трехмерной графики. Как и в случае с анимацией, физическое моделирование задает также и движение.
Что такое рендеринг?
Рендеринг превращает модель в изображение посредством имитации переноса света для получения фотореалистичных изображений либо путем применения художественного стиля, как при нефотореалистичном рендеринге.
В реалистичном рендеринге двумя основными операциями являются перенос (сколько света попадает из одного места в другое) и рассеивание (взаимодействие поверхностей со светом).
Как правило, данный шаг выполняется с использованием программного обеспечения для компьютерной 3D-графики или API-интерфейса для нее. Изменение сцены в подходящую для рендеринга форму также включает в себя трехмерную проекцию, отображающую 3-мерное изображение в двух измерениях. Хотя ПО 3D-моделирования и САПР также могут выполнять 3D-рендеринг (например, Autodesk 3DS Max или Blender), также существует эксклюзивное программное обеспечение 3D-рендеринга.
Программное обеспечение
Программы для трехмерной графики создают компьютерные изображения (CGI) с помощью 3D-моделирования и рендеринга. Или создают модели для аналитических, научных и промышленных целей.
Приложения для 3D-моделирования — это класс ПО для компьютерной трехмерной графики, используемой для создания трехмерных моделей. Отдельные программы данного класса называются сервисами моделирования или разработчиками моделей.
Такие сервисы позволяют пользователям реализовать и изменять модели с помощью 3D-сетки. Так художники могут вычитать, добавлять, растягивать и прочим образом изменять сетку по своему усмотрению. Модели можно просматривать под разными углами, обычно одновременно. Их можно вращать, а вид — увеличивать и уменьшать.
Большинство 3D-программ включают в себя ряд связанных опций, например, трассировщики лучей и другие альтернативы рендеринга и средства наложения текстур. Некоторые из также предлагают функции, которые поддерживают или разрешают анимацию моделей. Ряд из них могут быть в состоянии генерировать видео с полным движением из серии визуализированных сцен (то есть анимации).
Системы автоматизированного проектирования
Трехмерная графика – это результат взаимодействия различных сервисов. Программное обеспечение для автоматизированного проектирования может использовать те же фундаментальные методы, что и ПО для самого моделирования, но их цель различна. Они используются в компьютерном проектировании, автоматизированном производстве, анализе методом конечных элементов, управлении жизненным циклом изделия, 3D-печати и автоматизированном архитектурном проектировании.
Дополнительные инструменты
После производства видео студии затем редактируют или комбинируют его, используя такие программы, как Adobe Premiere Pro или Final Cut Pro на среднем уровне, или Autodesk Combustion, Digital Fusion либо Shake на высоком уровне. Программное обеспечение для сопоставления движущихся изображений обычно используется для монтажа в реальном времени с видео, сгенерированным компьютером, и синхронизирует их по мере движения камеры.
Сообщества
Существует множество веб-сайтов, предназначенных для разработчиков ПО, но есть и отдельные любительские ресурсы. Эти сообщества позволяют участникам обращаться за советом, размещать учебные пособия, предоставлять обзоры продуктов или публиковать примеры своей собственной работы.
Отличия от других видов компьютерной графики
Не вся компьютерная графика, которая появляется в 3D, основана на каркасной модели. Двухмерная ее разновидность с трехмерными фотореалистичными эффектами часто достигается без каркасного моделирования и иногда неразличима в окончательном виде. Некоторые графические программы включают в себя фильтры, которые можно применять к двухмерной векторной или двухмерной растровой графике на прозрачных слоях. Визуальные художники также могут копировать или визуализировать 3D-изображения и вручную создавать фотореалистичные эффекты без использования фильтров.
Однако настоящий режим трехмерной графики в видео и анимации чаще всего требует специального оборудования (очков) для лучшего просмотра.
Псевдо-3D и настоящее 3D
В некоторых видеоиграх используются ограниченные проекции трехмерных сред, таких как изометрическая графика или виртуальные камеры с фиксированными углами, созданные для повышения производительности игрового движка либо для стилистических и игровых задач. Считается, что такие игры используют псевдо-3D графику.
Производительность трехмерной графики и игр, созданных при помощи моделирования, существенно отличается.
Источник
Что такое 3D-графика и как она устроена
Мы каждый день видим 3D-графику, но не задумываемся, как она устроена изнутри. Давайте заглянем за ширму.
Современные компьютеры генерируют графику, которая почти неотличима от того, как видим жизнь мы. И если вам всегда было интересно, как создаются реалистичные шедевры (или вы занимаетесь чем-то похожим), то будет полезно узнать, как вообще работает 3D.
Давайте разберёмся, как обычные точки превращаются в 3D-графику:
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Создание 3D-моделей
Персонажи, оружие, машины, пончики, пейзажи… всё, что вы видите в играх и фильмах с использованием 3D-графики, состоит из точек, граней и плоскостей. Вот, например, изображение трёхмерной сферы:
Кажется, что это просто гладкий шар, но на самом деле он состоит из множества точек — вершин (англ. vertices — вершины):
Чем больше вершин, тем более детализированной выглядит модель и тем больше ресурсов требуется компьютеру, чтобы отрисовать такой объект на экране.
Вершины соединяются друг с другом и образуют рёбра (англ. edge) и грани (англ. face):
Всё это образует полигональную сетку (англ. polygon mesh или просто меш, геометрия) —- совокупность вершин, рёбер и граней (плоскостей), которая определяет форму объекта.
У каждой вершины есть свои координаты по осям X, Y и Z. А то, как грань отображается на мониторе, зависит от её положения относительно камеры и источников света:
Изменяя меш, добавляя вершины и меняя их положение, мы можем создавать любые сложные объекты:
Для создания твёрдых объектов (англ. hard surface) 3D-художники обычно меняют положение граней вручную, как это показано выше.
При работе с персонажами чаще используется скульптинг (англ. sculpting) — напоминает лепку из пластилина:
Но геометрия — не последний этап создания 3D-модели. Например, у моделей, созданных скульптингом, плохая топология (то, как именно устроен меш) — слишком много задействовано вершин:
Чтобы исправить это, используют специальные инструменты для ретопологии — это когда удаляют лишние грани, чтобы оптимизировать модель.
Также нужно подготовить материал — это то, как окрашены разные грани или вся модель. Возможен как и простой цвет, так и изображение или паттерн.
Есть множество других важных моментов: анимирование, запекание текстур, составление карт нормалей и так далее. Всё это стоит вплотную изучить тем, кто собирается моделировать 3D. Сейчас же мы поговорим о более техническом вопросе.
Отображение 3D-моделей на экране
Как на двумерном экране показать трёхмерную модель? В этом вопросе столько математики, что может показаться, будто это какая-то магия.
Пространство, в котором находятся объекты, называется сценой. Всё, что на ней, существует пока только в памяти компьютера в виде данных о геометрии, материалах и прочем.
Чтобы компьютер понял, как это всё отобразить, нужен наблюдатель, чьими глазами он будет смотреть на сцену, — камера. А чтобы мы могли хоть что-то разглядеть, нужен источник света.
Вот тут и начинается магия: компьютеру предстоит определить, как бы выглядела эта сцена с точки зрения камеры. Вот так это устроено:
Мы видим только то, что расположено между областями отсечения. Всё остальное, как можно догадаться, отсекается. Компьютер должен понять, какие цвета отобразить на мониторе в каждом из пикселей. Для этого он отправляет из камеры лучи и смотрит, во что они ударяются.
Если луч попадает в объект, то дальше компьютер проверяет, в какой именно полигон было попадание, какой материал у объекта, как падает свет, на каком расстоянии находится объект от камеры и многие другие переменные.
Всё это транслируется на плоскость проекции (англ. viewport) — двумерный квадрат в трёхмерном пространстве. Эта плоскость уже используется для того, чтобы составить изображение, которое будет показано на мониторе.
Процесс перевода 3D-сцены в 2D-изображение называется рендерингом (англ. rendering) или отрисовкой.
Движение в 3D
Мы узнали, как выводится одно изображение, но ведь 3D бывает ещё и в фильмах и играх, где постоянно происходит какое-то движение. На самом деле мы до сих используем тот же принцип анимации, что и несколько веков назад.
В 1877 году был изобретён праксиноскоп — барабан, обклеенный изнутри последовательностью изображений. В его центре есть ещё один барабан поменьше, обклеенный зеркалами. Если смотреть в центр устройства, когда оно вертится, можно увидеть иллюзию движения:
Сейчас это выглядит так:
- На монитор транслируется отрисованная сцена.
- Положение объектов на ней немного меняется.
- И на экран выводится обновлённое изображение.
Большинство современных мониторов могут выводить 60 картинок (кадров) в секунду (англ. Frames Per Second, FPS), благодаря чему создаётся ощущение плавности.
В случае с играми все кадры отрисовываются в реальном времени. То есть, пока пользователь играет, положение объектов на сцене меняется, компьютер 60 раз в секунду проверяет, как это всё выглядит, и обновляет изображение на мониторе.
Разумеется, это накладывает ограничения на качество изображения. Например, в играх только недавно появилась технология трассировки лучей (англ. Ray Tracing), которая позволяет программно рассчитывать рассеивание лучей света.
Вот, например, как выглядит сцена из Minecraft без RTX (технология трассировки лучей в видеокартах Nvidia):
Источник