Реальность пакетов трехмерной графики


Введение

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

Какая степень реализма в изображении неподвижных изображений и анимации может быть достигнута сегодня?

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

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


Модели визуализации

Rendering, или тонирование - процесс, лежащий в основе основ и заключающийся в прорисовке пространственных объектов с учетом всех свойств взаимодействия света и поверхностей объектов. "Если компьютерную графику вообще сравнивают с рисованием при помощи цифр, то процесс тонирования, в частности, можно сравнить с рисованием светом и тенью..." - конец цитаты. Степень соответствия модели взаимодействия света с поверхностью 3D-объектов, лежащей в основе того или иного метода тонирования, прежде всего определяет степень реализма получаемого изображения.


Flat Rendering. Плоское тонирование

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


Метод тонирования Гуро (Gouraud)

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


Phong Rendering. Метод тонирования Фонга.
Phong Illuminance Model. Модель освещения Фонга.

Поскольку фотореализм в 3-мерной компьютерной графике достигается моделированием реальных процессов, достоверное тонирование невозможно без введения модели взаимодействия света и поверхности. В модели освещения, предложенной Фонгом (Phong Bin Tuong), предполагается, что свет, падающий на поверхность, участвует в трех процессах - поглощении, рассеянии и отражении. Первый - поглощение части света поверхностью. То, что в реальной жизни воспринимается как цвет, есть не что иное как способность реальных предметов поглощать свет одних длин волн и отражать свет с другими длинами волн, последние и определяют то, что мы воспринимаем как цвет. Для описания этого процесса в модели Фонга вводится первая характеристика поверхности - Ambience, а для ее количественного описания - величина Ia - интенсивность непоглощенного света. Второй процесс - рассеяние. Часть светового потока отражается поверхностью в окружающее пространство изотропно, т.е. под разными углами с одинаковой интенсивностью (с точки зрения квантовой физики - это неупругое столкновение квантов света с материалом поверхности), в определенном смысле можно считать поверхность вторичным источником рассеянного света. Благодаря изотропности, наблюдение рассеянного света не зависит от положения наблюдателя. Соответствующая модельная характеристика поверхности - Diffuse (рассеяние) и ее интенсивность Id . Третий процесс - отражение. Свет распространяется от поверхности по "закону отражения": угол отражения относительно нормали к поверхности в точке падения равен углу падения; луч падающий, луч отраженный и нормаль лежат в одной плоскости (упругое столкновение квантов света с поверхностью). Визуально воспринимается глазом как яркий световой блик на поверхностях с металлическими свойствами. В силу того, что отраженный свет распространяется под строго определенным углом, его наблюдение зависит от положения наблюдателя. Соответствующая характеристика - Specular и ее интенсивность Is. Таким образом, согласно модели Фонга интенсивность освещенности элемента поверхности от одного источника света рассчитывается по формуле:

Iсум.= kaIa + kdId + ksIs. Где ka, kd, ks - регулировочные коэффициенты поглощения, рассеяния и отражения соответствующих характеристик поверхности, вводимые для предоставления возможности моделирования (задания) этих свойств поверхности в программах 3D - графики. Так, большее значение ka соответствует большему поглощению света вплоть до полного поглощения, соответствующего невидимости объекта (в 3DStudio, например, этого можно добиться, установив черный цвет для кнопки Ambience в редакторе материалов).

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


Phong Shading Model. Модель тонирования Фонга.

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

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

Кстати, многие 3D-программы используют в качестве полигонов треугольники именно потому, что они имеют наименьшее количество вершин и граней, т.е. таким образом уменьшается количество вычислений при построении нормалей и повышается скорость расчетов.

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

(Продолжение следует)

Игорь СИВАКОВ
При подготовке статьи использованы интеллектуальные ресурсы Интернет

Версия для печатиВерсия для печати

Номер: 

29 за 1997 год

Рубрика: 

Графика
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!