Трехмерная графика в современном мире. Трехмерная графика Что такое трехмерные реалистические изображения

27.06.2020

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

Мы рассмотрим наиболее распространённые технологии, которые уже устоялись и активно применяются производителями видеокарт. Данный материал рассчитан на опытных пользователей и полагает более подробное внедрение в технологии, чем просто поверхностных обзор.

Технология MIP mapping

Начнём, пожалуй, с наиболее часто применяемой технологии, которая называется MIP mapping . Основное назначение данной технологии – улучшение качественности текстурирования 3D-объектов.

Чтобы изображение выглядело более реалистичным, разработчикам необходимо учитывать, такое важное понятия, как глубина сцены. Реализм, в таком случае, предполагает качественное размытие по мере удаления изображения, а также, изменение цветовых оттенков. Поэтому для построения любых видов поверхностей, используется множество различных текстур, что и даёт возможность регулировать данное явление. Если необходимо, к примеру, построить изображение дороги, которое стремится к горизонту, то в случае применение одной текстуры, о реализме можно просто-напросто забыть, так как на заднем плане появится сплошной цвет или мерцание.


Как раз таки, для реализации этого множества текстур и используется технология Mip mapping , она дает возможность использования текстур с различной степенью детализации, что добавляет свои плюсы, к примеру, реалистичности дороге, которая описана выше.

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

Технологии фильтрации

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

Фильтрация бывает разных видов:

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

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

Анизатропная фильтрация . Наиболее продвинутый тип фильтрации и на сегодняшний день используется во всех новых видеоадаптерах . С помощью анизатропной фильтрации один пиксель рассчитывается по 8-32 текселам (текстурным пикселям) .

Anti-aliasing (Технология сглаживания)

Суть технологии Anti-aliasing, заключается в устранении зазубренности краев объектов, проще говоря – в сглаживании изображения.


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

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

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

В отличие от ряда САПР, использующих для визуализации и анимации дополнительные модули или сторонние программы, в MicroStation встроены средства для создания фотореалистичных изображений (BMP, JPG, TIFF, PCX и др.), а также для записи анимационных роликов стандартных форматов (FLI, AVI) и набора покадровых картинок (BMP, JPG, TIFF и др.).

Создание реалистичных изображений

Создание фотореалистичных изображений начинается с присвоения материалов (текстур) различным элементам проекта. Каждая текстура применяется ко всем элементам одинакового цвета, лежащим в одном и том же слое. Учитывая, что максимальное количество слоев — 65 тыс., а цветов — 256, можно предположить, что индивидуальный материал реально применить к любому элементу проекта.

Программа предоставляет возможности редактирования любой текстуры и создания новой, основанной на растровом изображении (BMP, JPG, TIFF и др.). При этом для текстуры можно использовать два изображения, одно из которых отвечает за рельефность, а другое — за фактуру материала . Как рельефность, так и фактура обладают различными параметрами размещения на элемент, как-то: масштаб, угол поворота, смещение, способ заполнения неровных поверхностей. Кроме того, рельефность имеет параметр «высота» (изменяемый в диапазоне от 0 до 20), а фактура, в свою очередь, обладает весом (изменяемым в диапазоне от 0 до 1).

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

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

Не менее важный аспект для создания реалистических изображений — способ визуализации (рендеринга). MicroStation поддерживает следующие, достаточно известные способы затенения: удаление невидимых линий, закраска невидимых линий, постоянное затенение, плавное затенение, затенение по Фонгу, рейтрейсинг, радиосити, трассировка частиц. При визуализации изображение можно сгладить (убрать ступенчатость), а также создать стереокартинку, которую можно просмотреть, используя очки со специальными светофильтрами.

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

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

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

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

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

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

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

Реалистичное изображение – компьютерное изображение изделия с высоким качеством (фотографическим), которое может быть использовано в различных сценах. Обычно используется для рекламы изделий, которые еще только спроектированы, но не изготовлены. Подсистема создания реалистичных изображений изделий на основании их твердотельных моделей(например, Photo Works) позволяет: задавать свойства поверхностей (цвет, текстуру, коэффициент отражения, прозрачность с использованием библиотеки материалов (библиотека может быть пополнена пользователем самостоятельно) или присоединением текстуры (картинок, логотипов), задавать декорации (каждая модель связывается со сценой, для которой можно задавать свойства: освещение, тени, фон). На основе информации о расставленных источниках света генерируются тени и полутени, придающие необычайную достоверность компьютерному изображению еще не существующей реально конструкции.

Автоматизированное создание прототипов проектируемых изделий (Rapid Prototyping)

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

Принцип заключается в создании трехмерной модели изделия и представлении ее в виде отдельных поперечных двухмерных профилей, так называемых, срезов малой толщины (0,1-0,5 мм), параметры которых передаются в систему ЧПУ специального комплекса, с помощью которого формируется реальная модель каждого среза, набор которых образует реальную модель изделия – его прототип. Создание прототипа осуществляется на специальном основании (подложке), которое после изготовления каждого среза опускается на толщину среза. На основании этого метода разработан ряд способов изготовления прототипов:

Стереолитографии;

Покрытие твердой массой;

Из слоев специальной бумаги или фольги;

Селективное спекание с помощью лазера;

Наплавлением.

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

Способ покрытия твёрдой массой (Solid Ground Curing - SGC) не требует использования лазера и включает выполнение двух параллельно выполняемых процесса: создание маски и нанесение слоя фотополимера. Создание маски осуществляется для каждого среза трехмерной твердотельной модели методом электростатического осаждения материала, не прозрачного для прохождения ультрафиолетового излучения на прозрачную пластину маски. Затем на подложку наносится жидкий полимер затвердевающий под влиянием ультрафиолетового излучения. Пластина с маской помещается над подложкой с фотополимером и осуществляется освещение фотополимера ультрафиолетовым излучением через маску, в результате чего освещенный участок фотополимера затвердевает. Затем незатвердевший фотополимер удаляется, а на его место наносится слой легкоплавящегося материала, (например, воска) с целью уменьшения коробления. С пластины удаляется маска и создается следующая маска, соответствующая сечению последующего слоя модели. Процесс повторяется. По окончании цикла изготовления прототипа изделия слой легкоплавящегося материала удаляется горячей жидкостью.

Процесс создания объектов из слоёв специальной бумаги или фольги (Laminated Objekt manufacturing – LOM), покрытой клеевым составом, требует применения лазера. Каждый слой создается путем подачи бумаги в рабочую зону, вырезания контура соответствующего среза лазерным лучем и склеивания его с предыдущим слоем в результате обкатки горячим роликом. Материал: синтетическая фольга, алюминиевая фольга, керамическая фольга, ткань из углеродистого волокна.

Селективное спекание с помощью лазера (Selective Laser Sintering - SLS) заключается в последовательном нанесении слоев порошка из термопластичного материала и спекания каждого слоя под воздействием лазерного луча программно-управляемого лазера. Используется порошковый материал, в качестве чего принципиально могут использоваться все термопластичные материалы, как например, термопласты, воск для точного литья, металлы, формопесок.

Создание объектов наплавлением (Fused Deposition Modelling - FDM) не требует применения лазера и заключается в создании каждого слоя наплавлением термопластичного материала с помощью нагреваемого сопла, перемещение которого осуществляется с помощью устройства с ЧПУ.

Материал: термопластичная пластмасса, специальный воск для точного литья.

Использование трехмерных моделей для расчета изделий методами имитационного моделирования

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

Имитация в САПР осуществляется путем создания модели проектируемого объекта и наблюдения за его функционированием до реального его изготовления с целью нахождения его рациональных параметров. Различают кинематическую и динамическую имитацию.

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

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

При выполнении инженерных расчетов на прочность неизбежен этап создания моде­лей прочностной надежности элементов конструкций. С помощью таких моделей возмож­но выбрать материал и необходимые размеры конструкций и оценить ее сопротивление внешним воздействиям.

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

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

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

где [n] - допустимое значение запаса прочности. Допустимый запас прочности назна­чают на основании инженерного опыта эксплуатации подобных конструкций (прототи­пов). Ряд отраслей техники имеют нормы прочности, в которых допустимые запасы проч­ности регламентированы для разных условий эксплуатации. Обычный диапазон изме­нений [n] колеблется от 1, 3 (при стабильных условиях нагружения) до 5 и более (при пе­ременных и динамических нагрузках). В практике расчетов используют как аналитические, так и численные методы. Первые базируются на математических методах решения краевых задач, обычно сложных и тру­доемких, и зачастую ограничены достаточно простыми геометрическими формами тел и схем нагружения. Численные методы, к которым относятся, в частности, метод конечных разностей, метод граничных интегральных уравнений, метод граничных элементов, метод конечных элементов и другие методы, напротив, не ограничены ни формой тел, ни спосо­бом приложения нагрузки. Это, наряду с повсеместным распространением мощной вы­числительной техники, способствует их распространению в инженерной среде.

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

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

К узлам прикладываются граничные условия: кинематические (закрепления, перемещения) и статические (нагрузки), в результате чего тело деформируется. Условие равновесия каждого элемента:

где Р-вектор усилий, U-вектор перемещений, -матрица жесткости конечного элемента, в которую входят модуль упругости (Юнга) E, характеризующий сопротивление материала упругой деформации (отношение напряжения к вызванной им упругой деформации) и коэффициент Пуассона μ (отношение поперечной деформации к продольной).

Матрицы жесткости всех конечных элементов объединяются в глобальную матрицу жесткости [K], перемещения и усилия в узлах объединяются соответственно в общие столбцы перемещений [U] и усилий [P].

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

Решается система уравнений с вычислением перемещений каждого узла. Это стало возможным, когда в 1963 г. было доказано, что этот МКЭ можно рассматривать как один из вариантов известного в строительной механике метода Рэлея-Ритца, который путем минимизации потенциаль­ной энергии позволяет свести задачу к системе линейных уравнений равновесия. То есть полученное решение соответствует минимуму потенциальной энергии деформированной упругой системы.

Перемещения связаны с соответствующими напряжениями законом Гука:

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

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

Прежде чем изображение станет реалистичным, объекты проходят несколько стадий обработки. Самые важные стадии это создание формы (shape), обтягивание текстурами, освещение, создание перспективы, глубины резкости (depth of field) и сглаживания (anti-aliasing).

Создание формы

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

На иллюстрации показан каркас руки, изготовленный из малого количества полигонов - всего 862

Поверхностные текстуры (surface textures)

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

  • Цвет: Какого поверхность цвета? Однородно ли она окрашена?
  • Текстура: Ровная ли поверхность или на ней есть вмятины, бугры, рихтовка или что-то подобное?
  • Отражающая способность: Отражает ли поверхность свет? Четкие ли отражения или они размазаны?

Один из способов придания "реальности" объекту и состоит в подборе комбинации этих трех составляющих в различных частях изображения. Посмотрите вокруг себя: ваша компьютерная клавиатура имеет отличающийся цвет/текстуру/отражающую способность от вашего стола, который в свою очередь отличается цветом/текстурой/отражающей способностью от вашей руки. Для того чтобы цвет изображения был похож на настоящий, важно чтобы компьютер мог выбирать цвет пикселя из палитры в миллионы различных цветов. Разнообразие текстур зависит как от математической модели поверхности (от кожи лягушки до желеобразного материала) так и от карт текстур (texture maps), которые накладываются на поверхности. Также необходимо заложить в объекты те качества, которые нельзя увидеть: мягкость и твердость, теплоту и холод с помощью различных комбинаций цвета, текстуры и отражающей способности. Если ошибиться хотя бы в одном из этих параметров, ощущение реальности мгновенно рассеется.


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

Освещение

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

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


Подсветка изображения не только добавляет глубину
объекту через затенение, но и "привязывает"
объект к земле посредством тени.

Оптически плотные тела при освещении отбрасывают тень. Вы можете увидеть тень на солнечных часах или посмотреть на тень дерева на тротуаре. В настоящем мире объекты и люди отбрасывают тени. Если в трехмерном мире будут присутствовать тени, то вам будет еще больше казаться, что вы смотрите через окно на настоящий мир, а не на экран с математическими моделями.

Перспектива

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

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

Z-буфер присваивает каждому полигону номер в зависимости от того, насколько близко к переднему краю сцены располагается объект, содержащий этот полигон. Обычно меньшие номера присваиваются ближайшим к экрану полигонам, а большие номера - полигонам, примыкающим к горизонту. Например, 16-битный Z-буфер присвоит ближайшему к экрану объекту номер -32.768, а самому удаленному - 32.767.

В настоящем мире, наши глаза не могут видеть объекты закрытые другими, поэтому у нас нет проблем в определении видимых объектов. Но эти проблемы постоянно возникают перед компьютером, и он вынужден непосредственно их решать. При создании каждого объекта, его Z-значение сравнивается со значением других объектов, занимающих те же области по координатам X и Y. Объект с самым маленьким Z-значением будет полностью прорисовываться, другие же объекты с большими значениями будут прорисованы лишь частично. Таким образом, мы не видим фоновых объектов, выступающих через персонажей. Так как Z-буфер задействуется перед полной прорисовкой объектов, скрытые за персонажа части сцены не будут прорисовываться вообще. Это ускоряет графическую производительность.

Глубина резкости

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

Вторая причина использования этого эффекта заключается в привлечении вашего внимания к нужным предметам или актерам. Например, для усиления вашего внимания к герою фильма, режиссер будет использовать эффект малой глубины резкости (shallow depth of field), когда только один актер будет находиться в фокусе. С другой стороны, сцены, которые должны потрясти вас величием природы, используют эффект большой глубины резкости (deep depth of field) чтобы дать как можно больше предметов в фокусе.

Сглаживание (anti-aliasing)

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

Вы, наверное, читаете эту статью на экране монитора компьютера или мобильного устройства - дисплей, который имеет реальные размеры, высоту и ширину. Но когда вы смотрите, например, мультфильм История Игрушек или играете в игру Tomb Raider, вы лицезреете трёхмерный мир. Одной из самых удивительных вещей трехмерного мира является то, что мир, который вы видите, может быть миром, в котором мы живем, миром, в котором мы будем жить завтра, или миром, который живет только в умах создателей фильма или игры. И все эти миры могут появиться только на одном экране - это как минимум интересно.
Как компьютер делает так, что обманывает наши глаза и мы думаем, что смотря на плоский экран видим глубину представленной картины? Как разработчики игр делают так, что мы видим реальных персонажей, передвигающихся в реальном ландшафте? Сегодня я расскажу вам о визуальных трюках, используемых графическими дизайнерами, и о том, как всё это разрабатывается и кажется нам настолько простым. На самом деле всё не просто, и чтобы узнать, что из себя представляет 3D-графика, ступайте под кат - там вас ждёт увлекательная история, в которую, я уверен, вы погрузитесь с небывалым удовольствием.

Что делает изображение трехмерным?

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

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

На протяжении сотен лет художники использовали некоторые визуальные трюки, которые могут сделать плоское 2D-изображение настоящим окном в реальный трехмерный мир. Вы можете увидеть подобный эффект на обычной фотографии, которые вы можете сканировать и просмотреть на мониторе компьютера: объекты на фотографии кажутся меньше, когда они дальше; объекты же, близкие к объективу камеры, находятся в фокусе, значит, соответственно, всё, что за объектами в фокусе - размыто. Цвета, как правило, менее яркие, если объект не так близок. Когда мы говорим о 3D-графике на компьютерах сегодня - мы говорим об изображениях, которые движутся.

Что такое 3D-графика?

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

  1. Создание виртуального 3D-мира
  2. Определение того, какая часть мира будет показана на экране
  3. Определение того, как пиксель на экране будет выглядеть, чтобы полное изображение казалось максимально реалистичным
Создание виртуального 3D-мира
Виртуальный 3D-мир - это, понятное дело, не то же самое, что и реальный мир. Создание виртуального 3D-мира - комплексная работа по компьютерной визуализации мира, схожего с реальным, для создания которого используется большое количество инструментов и который подразумевает крайне высокую детализацию. Возьмите, к примеру, очень маленькую часть реального мира - свою руку и рабочий стол под ней. Ваша рука обладает особенными качествами, которые определяют, как она может двигаться и выглядеть внешне. Суставы пальцев сгибаются только в сторону ладони, а не противоположно от неё. Если вы ударите по столу, то с ним никаких действий не произойдёт - стол тверд. Соответственно, ваша рука не может пройти через ваш рабочий стол. Вы можете доказать, что это утверждение истинно, смотря на что-то естественное, а в виртуальном трехмерном мире дела обстоят совсем по-другому - в виртуальном мире нет природы, нет таких естественных вещей, как ваша рука, например. Предметы в виртуальном мире полностью синтетические - это единственные свойства, данные им с помощью программного обеспечения. Программисты используют специальные инструменты и разрабатывают виртуальные 3D-миры с особой тщательностью, чтобы всё в них всегда вело себя определённым образом.

Какая часть виртуального мира показывается на экране?
В любой момент экран показывает только крошечную часть виртуального трехмерного мира, созданного для компьютерной игры. То, что показывается на экране - определенные комбинации способов, которыми определяется мир, где вы принимаете решение куда пойти и что посмотреть. Независимо от того, куда вы идёте - вперёд или назад, вверх или вниз, влево или вправо - виртуальный трехмерный мир вокруг вас определяет то, что вы видите, находясь на определенной позиции. То, что вы видите, имеет смысл от одной сцены к другой. Если вы смотрите на объект с того же расстояния, вне зависимости от направления, он должен выглядеть высоко. Каждый объект должен выглядеть и двигаться таким образом, чтобы вы верили в то, что он имеет ту же массу, что и реальный объект, что он такой же твёрдый или мягкий, как и реальный объект, и так далее.


Программисты, которые пишут компьютерные игры, прикладывают огромные усилия к разработке виртуальных 3D-миров и делают их так, чтобы вы могли блуждать в них, не сталкиваясь ни с чем, что заставляло бы вас думать «Это не могло произойти в этом мире!». Последней вещью, которую вы хотите видеть - два твёрдых объекта, которые могут пройти прямо друг через друга. Это - резкое напоминание о том, что всё, что вы видите, является притворством. Третий шаг включает в себя ещё как минимум столько же вычислений, сколько и другие два шага и должны происходить так же в реальном времени.

Освещение и перспектива

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

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

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

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

Глубина резкости


Другим оптическим эффектом, успешно использующимся для создания графических трехмерных объектов, является глубина резкости. Используя мой пример с деревьями, помимо вышеописанного происходит ещё одна интересная вещь. Если вы посмотрите на деревья, находящиеся близко по отношению к вам, деревья, расположенные дальше, как представляется, будут не в фокусе. Кинорежиссеры и компьютерные аниматоры используют данный эффект, глубину резкости, для двух целей. Первая заключается в укреплении иллюзии глубины в рассматриваемой пользователем сцене. Вторая цель - использование режиссерами глубины резкости сосредотачивает свое внимание на предметах или актерах, которые считаются наиболее важными. Чтобы обратить ваше внимание не героиню фильма, например, может использоваться «малая глубина резкости», где только актер находится в фокусе. Сцена, которая разработана таким образом, чтобы произвести на вас полное впечатление, наоборот будет использовать «глубокую глубину резкости», чтобы как можно больше объектов было в фокусе и таким образом заметно зрителю.

Сглаживание


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

Реальные примеры

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

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

Создание анимации и видимости «живого действия»

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

Сколько кадров в секунду?
Когда вы идете на шикарный блокбастер в местное кино, последовательность изображений, называемых кадрами работает в количестве 24 кадра в секунду. Так как наша сетчатка сохраняет изображение немного дольше, чем 1/24 секунды, глаза большинства людей будут смешивать кадры в один непрерывный образ движения и действия.

Если вы не понимаете, о чём я только что написал, то посмотрим на это с другой стороны: это означает, что каждый кадр кинофильма - фотография, сделанная на выдержке (экспозиции) 1/24 секунды. Таким образом, если вы посмотрите на один из многочисленных кадров фильма о гонках, вы увидите, что некоторые гоночные автомобили «размываются», потому что они проехали с большой скоростью в то время, пока у камеры открыт затвор. Данная размытость вещей, создающаяся за счёт быстрого движения - то, что мы привыкли видеть, и это часть того, что делает изображение реальным для нас, когда мы смотрим на него на экране.


Однако, цифровые трехмерные изображения - это ведь не фотографии как ни крути, поэтому никакого эффекта размывания не происходит, когда объект перемещается в кадре во время съёмки. Чтобы сделать изображения более реалистичными, размывание должно быть явно добавлено программистами. Некоторые дизайнеры считают, что для «преодоления» этого отсутствия естественного размытия требуется более 30 кадров в секунду, посему и подтолкнули игры выйти на новый уровень - 60 кадров в секунду. Хотя это и позволяет каждому отдельному изображению выглядеть в мельчайших подробностях и отображать движущиеся объекты в меньших приращениях, оно существенно увеличивает количество кадров для данной анимационной последовательности действий. Есть и другие определенные куски изображений, где точный рендеринг на компьютере должен быть принесен в жертву ради реализма. Это относится как к подвижным, так и неподвижным объектам, но это уже совсем другая история.

Подойдем к концу


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

Похожие статьи