Трёхмерная компьютерная графика – пользовательский и алгоритмический подход

Вид материалаДокументы

Содержание


Освещение сцены
Подобный материал:

Трёхмерная компьютерная графика –

пользовательский и алгоритмический подход


Залогова Любовь Алексеевна,

Пермский государственный национальный исследовательский университет,

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


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

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

Технологии трёхмерной компьютерной графики можно разделить на два уровня – пользовательский и алгоритмический.

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

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

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

Геометрические модели определяют формы, которые не имеют поверхностных свойств. Все предметы реального мира состоят из каких-либо материалов (пластмассы, дерева, кирпича, мрамора и др.). Материалы – краски и текстуры, которыми покрываются объекты. Кроме того, материалы определяют поверхностные свойства объектов, такие как шероховатость, блеск, прозрачность.

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

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

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

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


Пользовательский уровень изучения трёхмерной графики

Самым сложным аспектом освоения программ для работы с трёхмерной графикой является адаптация к работе в трёхмерном пространстве. Создание трёхмерных сцен существенно отличается от рисования в графическом редакторе и требует определённых навыков. Чтобы сделать процесс наблюдения за трёхмерным пространством понятным, в программах трёхмерного моделирования (3DStudio Max, Blender и др.) используется несколько окон проекций. Окно перспективной проекции представляет сцену так, как она воспринимается человеческим глазом: размер объекта становится меньше по мере удаления от наблюдателя. Это окно позволяет получить привычное для глаза изображение сцены. Однако в окне перспективной проекции часто возникают оптические искажения, например, при удалении от точки наблюдения объект уменьшается. Чтобы точно определить размеры и расположение объектов, используются окна ортографических проекций, которые позволяют увидеть объекты сверху, сбоку и спереди.

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

Создание виртуальных миров выполняется с использованием языка моделирования виртуальной реальности VRML/X3D. Спецификация VRML принята ISO (международной организацией по стандартизации). Наличие международного стандарта гарантирует высокое качество и стабильность спецификации. Язык VRML используется в ряде предметных областей, особенно образовательной и исследовательской. В настоящее время разработчики языка работают над его расширением.

X3D разработан Web3D–консорциумом и является расширением VRML. К наиболее важным расширениям относятся анимация персонажей, улучшенная система освещения и навигации, морфинг, поддержка потоковых типов данных, совместимость с XML и др. X3D полностью совместим с VRML. Спецификация X3D – стандарт ISO.

На языке VRML/X3D виртуальный мир представляется в виде ациклического графа сцены, вершинами которого являются узлы. Узлы содержат поля, в которых хранится информация о геометрических свойствах модели, внешнем виде объектов (стандартных материалах и текстурах), параметрах освещения, камерах, звуках, видео, а также ссылки на другие объекты, включая VRML/X3D -документы. Автор виртуального мира, имеющий навыки программирования, может воспользоваться узлом Script для работы со сценариями на языке ECMAScript. Чтобы создать VRML/X3D-файл, достаточно воспользоваться простым текстовым редактором. Но лучше установить специальный редактор для написания VRML/X3D-кода (VRMLPad, X3D-Edit). Визуализация описания графа сцены выполняется браузером. Среди наиболее популярных браузеров – Cortona3D Viewer фирмы Parallel Graphics, BS Contact фирмы BitManagement и др.

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

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


Алгоритмический уровень изучения трёхмерной графики

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

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

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

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

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

Современные графические процессоры (GPU – Graphics Processing Unit) намного эффективнее обрабатывают графическую информацию по сравнению с центральными процессорами. Поэтому следующий шаг в освоении технологий трёхмерной графики – программирование с использованием шейдеров – программ, выполняемых на GPU. Применение шейдеров позволяет создавать сложные визуальные эффекты в реальном времени, которые не могут быть реализованы при использовании традиционных средств OpenGL.

Программирование графики с использованием шейдеров - достаточно сложная задача. GLSL – высокоуровневый язык программирования шейдеров OpenGL. Для написания, редактирования и отладки шейдерных программ используется, как правило, специализированная инструментальная среда RenderMonkey.

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