Трехмерная графика

Построение трехмерного изображения

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

При формировании трехмерного изображения (статического или динамического) его построение рассматривается в пределах некоторого пространства координат, которое называется сценой. Сцена подразумевает работу в объемном, трехмерном мире — поэтому и направление получило название трехмерной (3-Dimensional, 3D) графики.

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

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

Рабочее пространство системы подготовки
трехмерной графики Blender (пример с сайта
http://www.blender.org
)

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

Как правило, во время выполнения этой процедуры выполняется и отсечение невидимых поверхностей. Существует много методов выполнения такого отсечения, но самым популярным стал метод
Z-буфера
, когда создается массив чисел, обозначающий “глубину” — расстояние от точки на экране до первой непрозрачной точки. Следующие точки поверхности будут обработаны только тогда, когда их глубина будет меньше, и тогда координата Z уменьшится. Мощность этого метода напрямую зависит от максимально возможного значения удаленности точки сцены от экрана, т.е. от количества битов на точку в буфере.

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

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

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

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

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

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

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

Твердотельная модель и итоговый результат обсчета модели
(пример с сайта http://www.blender.org)

Анимация и виртуальная реальность

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

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

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

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

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

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

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

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

Примеры программных продуктов

Maya, 3DStudio, Blender

Методические рекомендации

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

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

Большую часть времени занимают практические работы подготовки и обработки графических изображений с использованием растровых и векторных графических редакторов. В основной школе это, как правило, Adobe Photoshop, CorelDraw и/или MacromediaFlach. Различие между изучением тех или иных программных пакетов в основной и старшей школе в большей мере проявляется не в содержании, а в формах работы. В основной школе это практическая (лабораторная) работа, в результате которой учащимися осваивается программный продукт. В старшей школе основной формой работы становится индивидуальный практикум или проект, где главной составляющей является содержание поставленной задачи, а используемые для ее решения программные продукты остаются лишь инструментом.

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