43 технологии трёхмерной компьютерной графики в выс

advertisement
Информационные технологии
ТЕХНОЛОГИИ ТРЁХМЕРНОЙ КОМПЬЮТЕРНОЙ ГРАФИКИ В ВЫСШЕЙ ШКОЛЕ
3D COMPUTER GRAPHICS TECHNOLOGIES IN HIGHER EDUCATION
Залогова Любовь Алексеевна / Zalogova Lubov A.,
доцент кафедры Математического обеспечения вычислительных систем,
кандидат физико-математических наук, Пермский государственный национальный
исследовательский университет / Associate Professor of Software Department, Ph.D. in
Mathematics, Perm State National Research University,
zalogova.la@gmail.com
Аннотация
Рассмотрены вопросы обучения технологиям трёхмерной компьютерной графики в вузе. Выделены
основные этапы создания трёхмерных миров. В рамках пользовательского подхода изучаются программы
трёхмерного моделирования и системы виртуальной реальности. Алгоритмический подход основан на создании программ с использованием
графической библиотеки OpenGL и
языка шейдеров.
Abstract
This article considers the problems of teaching 3D-computer graphics
technologies in a Higher School. The
key stages of 3D-world creation are
pointed out. It also studies the terms of
users’ approach 3D-modelling software
and the systems of virtual reality are
studied. The algorithmic approach is
founds on the software creation based
on OpenGL graphics library and shader
language.
Ключевые слова: трёхмерная
компьютерная графика, виртуальная
реальность, графическая библиотека
OpenGL, шейдеры.
Keywords:
3D
Computer
Graphics, Virtual Reality, Graphics library OpenGL, shaders.
Введение
В последние годы наблюдается рост интереса к компьютерной
графике и, следовательно, к технологиям создания изображений на экране компьютера. С компьютерной
графикой могут работать разные категории пользователей. С одной стоИнформатизация образования и науки № 3(15)/2012
роны, для использования прикладного программного обеспечения от
пользователя не требуется навыков
программирования. С другой стороны,
программисты-профессионалы
могут создавать изображения и анимацию любой сложности, используя
языки программирования и специальные графические библиотеки.
Следовательно, изучение компьютерной графики включает два основных подхода: пользовательский и алгоритмический.
В статье предложены методические аспекты преподавания трёхмерной компьютерной графики (3Dграфики), а именно,
- выделены основные этапы
построения трёхмерных изображений
на экране компьютера (независимо от
используемого подхода);
- рассмотрены и проанализированы особенности реализации этих
этапов для обоих подходов.
Таким образом, сначала необходимо освоить основные этапы построения трёхмерных изображений
на экране компьютера; а далее, в зависимости от поставленной цели и
программистской
квалификации,
следует приступать к изучению конкретных программных средств. На
пользовательском уровне – это программы трёхмерного моделирования
и системы виртуальной реальности, а
на алгоритмическом – среда разработки на базе языка высокого уровня,
графическая библиотека и язык шейдеров.
43
Информационные технологии
1. Особенности создания
трёхмерных изображений на экране компьютера
Использование
программ
трёхмерной графики
во многом
сходно со съёмкой с помощью видеокамеры. Во время съёмки в объектив попадают различные трёхмерные
объекты, но при воспроизведении на
экране компьютера видны лишь плоские двумерные изображения, представляющие собой образы реальных
объектов. Эти образы на экране выглядят вполне реально благодаря наличию источников света, естественной окраске, присутствию теней и
бликов, придающих изображению
глубину и делающих его визуально
правдоподобным.
Таким образом, основная задача разработчика трёхмерного компьютерного мира – создать сцену –
совокупность образов трехмерных
объектов.
Основным отличием двумерной графики от трёхмерной является
полное отсутствие у двумерных объектов координаты глубины. Даже если плоские объекты будут нарисованы так, чтобы создавалось впечатление наличия у них третьего измерения, любая попытка взглянуть на эти
объекты с другой точки наблюдения
будет связана с необходимостью перерисовывания этих объектов заново.
Поскольку при моделировании трёхмерных объектов появляется координата глубины, то достаточно однажды нарисовать такие объекты, чтобы потом иметь возможность рассматривать их под любым углом зрения, не перерисовывая заново. Именно эта особенность работы с трёхмерным миром позволяет проникать
внутрь объекта и исследовать его изнутри.
3D-графика успешно применяется в области автоматизированного проектирования, в компьютерном
моделировании, для проектирования
интерьеров, при создании анимаци44
онных фильмов, в дизайне и рекламе.
Там, где выполнение реальной фотосъёмки невозможно, затруднительно
или требует значительных материальных затрат, 3D-графика помогает
синтезировать изображения событий,
т.е. выполнять комбинированную
съемку.
Создание виртуальных миров
– одно из наиболее интересных направлений информационных технологий. Виртуальные миры предназначены для того, чтобы обеспечить
пользователя трехмерной интерактивной средой для исследований и
путешествий.
Привлекательность
виртуальных миров связана с их
функциональностью.
Виртуальная
среда позволяет не только наблюдать, но и действовать, т.е. пользователи могут самостоятельно исследовать трёхмерные миры. Например,
гость виртуального города может
совершить прогулку по национальному парку, побродить по незнакомым улицам, обойти вокруг любое
здание, пройтись по залам музея и
осмотреть его экспонаты со всех
сторон. Кроме того, виртуальный
мир может реагировать на действия
путешественника. Таким образом,
разработчик виртуального мира сначала должен создать сцену, а затем
дополнить её средствами интерактивного взаимодействия.
Технология виртуальной реальности может быть использована в
самых разных областях – в инженерной и научной визуализации, мультимедиа–презентациях,
развлекательных и образовательных продуктах, рекламе, при создании Web–
страниц и справочников, а также в
архитектуре и туризме.
2. Основные этапы создания
трёхмерных изображений на экране компьютера
Независимо от используемых
программных средств, формирование
трехмерного мира состоит из следующих этапов: моделирование, наИнформатизация образования и науки № 3(15)/2012
Информационные технологии
ложение материалов, расстановка
источников света, установка камер,
визуализация, анимация. Рассмотрим
краткую характеристику каждого
этапа создания трёхмерного мира.
Моделирование
Моделирование – создание
формы трехмерного объекта. Для
представления объектов, как правило, используются многоугольники
(полигоны), которые располагаются
таким образом, чтобы образовывать
оболочку нужной формы. В простейшем случае объекты строятся из
примитивов (кубов, сфер, конусов,
цилиндров, плоскостей и т.д.). После
того, как объект создан, его можно
перемещать, вращать, масштабировать, копировать, зеркально отражать
и т.д.
Многие объекты создаются на
основе сплайнов (линий, окружностей, многоугольников и др.). Например, с помощью сплайнов можно
создать объект вращения или loft –
объект
(результат
перемещения
сплайна вдоль заданного пути). Более
сложные объекты можно создавать с
помощью кусков поверхности Безье.
Кусок поверхности Безье состоит из
двух частей: собственно поверхности
и решётки деформации. Решётка деформации, в свою очередь, является
совокупностью связанных между собой управляющих точек, окружающих поверхность куска Безье. Перемещение одной или нескольких
управляющих точек решётки деформации влияет на форму участка поверхности. При деформации куска
Безье получается довольно гладкая
поверхность. Однако это всего лишь
приближённая аппроксимация исходного объекта. Метод на основе
неоднородных рациональных Bсплайнов (Non-Uniform Rational BSplines – NURBS) более точно воспроизводит форму объектов. В этом
методе, как и в случае кусков Безье,
для управления кривизной поверхности используются управляющие точИнформатизация образования и науки № 3(15)/2012
ки. Однако метод NURBS обладает
большими возможностями и потому
более сложен в использовании.
NURBS-поверхности применяются
для создания драпировки, моделей
велосипедов, автомобилей, самолётов, а также персонажей с высокой
степенью детализации.
Наложение материалов
Геометрические модели определяют формы, которые не имеют
поверхностных свойств. Все предметы реального мира состоят из какихлибо материалов (пластмассы, дерева, кирпича, мрамора и др.). Материалы – краски и текстуры, которыми
покрываются объекты. Кроме того,
материалы определяют поверхностные свойства объектов, такие как шероховатость, блеск, прозрачность.
Любая модель будет с высокой степенью достоверности представлять
реальные объекты, если её поверхности придать вид некоторого материала.
В результате создания пользователем собственного стандартного
материала объект приобретает вид
ровного куска пластика. Сходство
стандартных материалов с поверхностями объектов реального мира достигается благодаря использованию
различных параметров. Диффузное
отражение – это основной цвет материала объекта; именно этот цвет
наблюдается в тех случаях, когда поверхность объекта освещается прямыми лучами света. Зеркальное отражение – это цвет бликов, появляющихся на поверхности объекта.
Непрозрачность определяет степень
прозрачности материала. Глянцевитость – способность поверхности
блестеть при отражении света; параметр глянцевитость используется в
совокупности с параметром сила блеска, который указывает, насколько
ярким будет пятно зеркального блика. Самосвечение задаёт яркость свечения материала; в зависимости от
значения этого параметра материал
45
Информационные технологии
выглядит так, будто он имеет источник света изнутри.
Различные оптические характеристики поверхностей можно имитировать с помощью карт текстуры.
При этом для имитации таких
свойств материалов, как, например,
диффузное отражение, используются
растровые изображения (текстурные
карты), полученные методом сканирования фотографий поверхностей
реальных предметов, либо путём математического расчёта (процедурные
карты). Например, чтобы смоделировать дерево, нужно заменить цвет
диффузного отражения материала на
текстурную карту – изображение реальной фактуры распиленного древесного ствола. После этого можно
настроить значения параметров глянцевитость и сила блеска, чтобы создать впечатление отполированной
деревянной поверхности.
Расстановка
источников
света
Освещение сцены – процесс
расстановки источников света таким
образом, чтобы вид сцены точно соответствовал замыслу. Изображение
модели объекта, которому присвоен
подходящий материал, не будет
правдоподобным без хорошего освещения. Освещение придаёт сцене
ощущение реальности, так как источники света способны создавать
тени, когда их лучи падают на объекты.
В 3D-графике используется
несколько типов источников света, в
том числе: окружающая подсветка,
всенаправленный или точечный, направленный или удаленный, а также
прожектор. Окружающая подсветка – это равномерное освещение поверхностей всех объектов светом, который отражается от окружающей
обстановки. Всенаправленный источник света испускает лучи равномерно во всех направлениях. Этот источник идеально подходит для моделирования любых ненаправленных
46
осветителей, например, лампочки
или солнца в условиях открытого
космоса. Направленный источник
испускает параллельные лучи света.
Именно поэтому он используется для
моделирования источника света, удалённого на очень большое расстояние от освещаемого объекта. Нацеленный прожектор испускает лучи в
пределах конуса, в вершине которого
размещается источник. Этот тип освещения подобен свету прожектора,
карманного фонарика или автомобильных фар. Нацеленные прожекторы особенно эффективны для освещения интерьеров.
Можно настраивать параметры источников света, такие как цвет
и яркость.
Установка камер
Выбор способа показа сцены
является очень важным для зрителя.
Пользователь может рассматривать
сцену через съёмочную камеру и, таким образом, управлять параметрами
съёмки. Камера – полноценный объектив, у которого в отличие от фотоаппарата нет корпуса. Важнейшие
параметры камеры: точка камеры,
точка нацеливания, фокусное расстояние объектива. Точка камеры
аналогична местоположению фотографа в процессе реальной фотосъёмки, а точка нацеливания – той
части пространства, куда нацелен
объектив фотоаппарата. Вид сцены
рассчитывается по специальным алгоритмам с учётом выбранного фокусного расстояния. Вместо значения
фокусного расстояния нередко задаётся поле зрения объектива - угол
при вершине конуса или пирамиды
видимости, однозначно определяющий все, что будет наблюдаться через объектив с заданным фокусным
расстоянием.
Визуализация
После того как создана модель, расставлены источники света,
установлена камера и подобраны материалы, выполняется визуализация –
Информатизация образования и науки № 3(15)/2012
Информационные технологии
формирование изображения. В традиционной живописи рисованием
или визуализацией называется создание нарисованного представления
какого-то реального объекта. В мире
трёхмерной компьютерной графики
визуализация - процесс преобразования описания сцены в растровое изображение, а именно, вычисление цвета и яркости каждого пикселя. Визуализация выполняется специальным программным обеспечением и
может занимать довольно продолжительное время, зависящее от
сложности сцены и быстродействия
компьютера. Именно на этом этапе
программа рассчитывает и наносит
на изображение все тени, блики и отражения объектов.
Объекты можно закрашивать
(тонировать) с различными уровнями
качества за счёт применения различных моделей закраски. Модель закраски определяет, каким образом
алгоритм визуализации будет интерпретировать цвета материалов и бликов на поверхности объекта. При использовании закраски многоугольников вычисляется цвет одной из точек,
расположенных на грани, и принимается за цвет всей грани. Закраска Гуро визуализирует объекты со сглаживанием окраски граней, так как в
этом случае вычисляется цвет каждого пикселя; при этом объект выглядит гладким, несмотря на фактическое наличие граней в геометрической модели. В закраске Фонга сохраняется сглаживание рёбер между
гранями, как и в закраске Гуро, однако добавляется формирование зеркальных бликов, которые придают
объекту блестящий или глянцевый
вид. Металлическая закраска подобна модели Фонга, но при этом поверхность приобретает металлический блеск. Блики и блеск в этой модели усиленно подчёркиваются. Существуют и другие методы закраски
объектов.
Информатизация образования и науки № 3(15)/2012
Правильно выбирая модель
закраски для каждого типа материала, можно обеспечить визуальную
правдоподобность сцены. Для повышения достоверности изображения в
ходе визуализации можно выполнить
имитацию некоторых природных явлений, таких как дымка, туман или
огонь.
Анимация
Компьютерная анимация –
любые динамические изменения искусственно созданного изображения.
Анимация изображений достигается
за счет показа на экране последовательности кадров со скоростью, достаточной для создания иллюзии
плавного движения. Этот принцип
полностью аналогичен тому, который
используется в рисованной мультипликации.
Двумя базовыми методами
анимации являются анимация реального времени и покадровая анимация.
В анимации реального времени кадры отображаются на экране по мере
их генерации. При покадровой анимации каждый кадр генерируется и
записывается отдельно. Позже все
кадры объединяются в фильм или же
последовательно отображаются на
мониторе в режиме воспроизведения
в реальном времени. Используя покадровую анимацию, компьютерный художник может создавать каждый кадр анимационной последовательности. Такой подход требует
больших временных затрат, но при
этом позволяет получать анимацию
любой сложности. Кроме того, ряд
графических систем предоставляют
возможность
задавать положение
анимируемых объектов только в
ключевых (опорных) кадрах, а содержимое промежуточных кадров
создаётся автоматически.
Простые анимационные сцены
обычно генерируются в реальном
времени, тогда как более сложная
анимация требует медленного покадрового построения. В то же время
47
Информационные технологии
для некоторых приложений необходима анимация в реальном времени,
например, для интерактивных систем
виртуальной реальности.
3. Пользовательский и алгоритмический подходы к изучению
3D-графики
На пользовательском уровне
для работы с двумерной графической
информацией используются растровые и векторные редакторы, а с
трёхмерной графикой - программы
трёхмерного моделирования и системы виртуальной реальности. На
алгоритмическом же уровне описание алгоритмов построения трёхмерных сцен и взаимодействие с ними
выполняется на языках высокого
уровня, что требует определённой
программистской квалификации.
3.1. Пользовательский подход
Для
успешного
освоения
пользовательского подхода необходимо знать:
- особенности, достоинства и
недостатки растровой и векторной
графики;
- методы описания цветов в
компьютерной графике – цветовые
модели;
- способы хранения изображений в файлах растрового и векторного формата;
- проблемы преобразования
форматов графических файлов;
- назначение и функции различных графических редакторов;
и уметь:
создавать собственные иллюстрации, используя
векторный
графический редактор;
редактировать изображения
в растровом графическом редакторе.
Самым сложным аспектом освоения программ для работы с трёхмерной графикой является адаптация
к работе в трёхмерном пространстве.
Создание трёхмерных сцен существенно отличается от рисования в
графическом редакторе и требует
48
определённых навыков. Чтобы сделать процесс наблюдения за трёхмерным пространством понятным, в
программах трёхмерного моделирования (3DStudio Max, Blender и др.)
используется несколько окон проекций [1]. Окно перспективной проекции представляет сцену так, как она
воспринимается человеческим глазом: размер объекта становится
меньше по мере удаления от наблюдателя. Это окно позволяет получить
привычное для глаза изображение
сцены. Однако в окне перспективной
проекции часто возникают оптические искажения, например, при удалении от точки наблюдения объект
уменьшается. Кроме того, точное
расположение объекта иногда трудно
определить из-за ложных визуальных
эффектов перспективы. Чтобы точно
определить размеры и расположение
объектов, используются окна ортографических проекций, которые позволяют увидеть объекты сверху,
сбоку и спереди. Когда в этих окнах
формируется изображение, наблюдатель располагается на бесконечном
расстоянии от сцены; при этом все
проецирующие лучи перпендикулярны плоскости проекции (экрану).
Основные этапы формирования трёхмерного мира, а именно, моделирование, наложение материалов,
расстановка источников света, установка камер и анимация используют
законы векторной графики. В результате визуализации создаётся растровое изображение. Поэтому знание
основ растровой и векторной графики – необходимое условие для работы в программах трёхмерного моделирования.
Для создания виртуальных
миров удобно воспользоваться языком моделирования виртуальной реальности VRML/X3D [2,3]. Спецификация VRML принята ISO (Международной организацией по стандартизации). Наличие международного стандарта гарантирует высокое
Информатизация образования и науки № 3(15)/2012
Информационные технологии
качество и стабильность спецификации. Язык VRML используется в ряде предметных областей, особенно
образовательной и исследовательской. В настоящее время разработчики языка работают над его расширением [4]. К примеру, введены новые
возможности
моделирования,
а
именно, NURBS-поверхности.
Язык 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 и др.
Сравнение основных этапов
создания трёхмерного мира в программах трёхмерного моделирова-
Информатизация образования и науки № 3(15)/2012
ния и системах виртуальной реальности
С одной стороны, все этапы
создания мира (моделирование, наложение материалов, расстановка источников света, установка камер,
анимация) в программах трёхмерного
моделирования и системах виртуальной реальности одинаковы; с другой
стороны, каждый этап имеет свои отличительные особенности. Объясняется это тем, что программы трёхмерного моделирования, как правило,
используются для построения реалистических изображений высокого качества, напоминающих фотографии.
Поэтому на их создание требуется
достаточно длительное время. Исследование
же виртуального мира
должно выполняться в реальном времени.
Моделирование. Сцена виртуального мира должна содержать, по
возможности, небольшое количество
объектов. Это связано с ограничениями пропускной способности сети.
Если число многоугольников, из которых состоит объект, слишком велико, то изображение виртуального
мира может оказаться непригодным
для использования из-за низкой производительности
вычислительной
системы. Следует учитывать, что
многие браузеры содержат алгоритмы, которые позволяют отображать
примитивы (конус, цилиндр, куб,
сфера и др.) быстрее, чем объекты,
созданные с помощью кусков поверхности Безье или на основе неоднородных рациональных В-сплайнов.
Наложение материалов. В
программах трёхмерного моделирования и системах виртуальной реальности используются стандартные материалы, а также карты текстур. Однако текстуры – узкое место при создании виртуальных миров. Использование текстур приводит к значительному снижению пропускной способности сети при передаче больших
графических файлов с высоким раз49
Информационные технологии
решением. Для уменьшения времени
загрузки мира необходимо искать
всевозможные пути уменьшения
файлов текстур. Поэтому следует
применять 16-битовые цветовые палитры или текстуры из оттенков серого цвета. Многократное использование одной текстуры сокращает
время, необходимое для отображения
виртуального мира. В результате
экспериментов с освещением и цветом нередко удаётся найти приемлемые и эффективные альтернативы
текстурам, что, в свою очередь, повышает пропускную способность каналов связи.
При просмотре сцены в браузере, как правило, не воспроизводятся процедурные текстуры, а также
эффекты зеркального отражения,
преломления и рельефности. В то же
время в окне браузера видны эффекты блеска и прозрачности.
В отличие от программ трёхмерного моделирования системы
виртуальной реальности имеют ограниченные возможности закраски
объектов. Большинство браузеров
используют только закраску Гуро.
Фирма Parallel Graphics усовершенствовала браузер Cortona3D Viewer
введением закраски Фонга.
Расстановка
источников
света. В программах трёхмерного
моделирования источники света способны создавать тени, когда их лучи
падают на объекты. Построение чётких теней, точно воспроизводящих
контур объекта, требует больших вычислительных затрат, что существенно снижает скорость визуализации.
Следует учитывать, что при просмотре виртуального мира в браузере
тени могут не отображаться. Это, в
свою очередь, приводит к нереалистическим эффектам. Однако тень
можно создать искусственно путём
наложения полупрозрачных геометрических объектов. Кроме этого, в
браузере не видны такие оптические
50
эффекты, как объёмное освещение и
сияние.
Установка камер. В программах трёхмерного моделирования
используются нацеленные и свободные камеры. Нацеленная камера имеет точку камеры и точку нацеливания. Свободная же камера не имеет
точки нацеливания и предназначена
для использования в анимации, где
предусмотрено перемещение камеры
вдоль некоторой траектории.
Браузеры виртуальных миров
автоматически создают камеру, которая располагается таким образом,
чтобы мир целиком мог быть отображён на экране. Необязательно начинать исследование мира, используя
заранее заданную точку обзора. В
системах виртуальной реальности в
сцене следует устанавливать несколько камер. Несмотря на то, что
мир может иметь множество точек
наблюдения, только одна из них активна в каждый момент времени. Переключение с одной камеры на другую освобождает пользователя от необходимости выполнять вручную
сложные перемещения по трёхмерному миру, которые требуют определённых навыков. Браузеры обеспечивают возможность такого переключения.
Визуализация. Так как программы трёхмерного моделирования
применяются для получения реалистических изображений фотографического качества, визуализация может быть выполнена в течение нескольких секунд, минут или часов в
зависимости от сложности сцены. В
системах же виртуальной реальности
визуализация выполняется в реальном времени, так как неизвестно, в
какой точке пространства будет находиться путешественник в каждый
конкретный момент времени. Именно поэтому некоторые специальные
эффекты, для визуализации которых
требуется достаточно много времени,
Информатизация образования и науки № 3(15)/2012
Информационные технологии
не отображаются браузерами виртуальных миров.
Анимация. В программах
трёхмерного моделирования используется покадровая анимация, основанная на ключевых (опорных или
наиболее важных) кадрах. Идея метода ключевых кадров заключается в
следующем. Сначала задаются новые
значения параметров объекта в ключевых кадрах. В зависимости от вида
объекта такими параметрами являются высота, ширина, угол поворота,
местоположение, коэффициент масштабирования и т.д. Затем специальное программное обеспечение автоматически строит изображения объектов в промежуточных кадрах, и,
наконец, в результате показа последовательности кадров на экране появляются движущиеся объекты. В
дальнейшем анимационный ролик
можно редактировать, изменяя параметры объектов в ключевых кадрах.
Кроме этого, можно удалять и добавлять новые ключевые кадры.
VRML/X3D использует метод ключевых кадров для реализации
анимации реального времени.
Таким образом, в рамках
пользовательского курса по 3Dграфике рассматриваются следующие вопросы:
1)
основные этапы создания трёхмерного мира;
2)
особенности организации трёхмерных миров в программах
трёхмерного моделирования и системах виртуальной реальности;
3)
методы создания реалистических изображений фотографического качества в программах
трёхмерного моделирования;
4)
методы создания виртуальных миров, а также способы
взаимодействия и навигации в системах виртуальной реальности.
В результате освоения курса
студенты получают навыки создания
трёхмерных изображений фотографического качества, а также анимаИнформатизация образования и науки № 3(15)/2012
ции различного уровня сложности.
Кроме этого, каждый студент создаёт
свой собственный виртуальный мир,
предоставляя возможность путешествия и взаимодействия с объектами
этого мира. Некоторые примеры таких миров: кинотеатр, картинная галерея, квартира, офис и др.
3.2. Алгоритмический подход
Необходимым условием успешного освоения алгоритмического
подхода к изучению 3D-графики является:
- владение языком программирования высокого уровня (например, С++);
- умение применять знания из
таких областей, как численные методы, линейная алгебра, аналитическая
геометрия и математический анализ;
В число вопросов, рассматриваемых в курсе, входят: создание
геометрических моделей объектов,
особенности построения параллельных и перспективных проекций, методы исследования видимых поверхностей, реализация методов закраски
и моделей освещения, а также методы наложения стандартных материалов и текстур. Кроме того, уделяется
внимание проблемам анимации реального времени.
Для программирования задач
курса
используется
библиотека
OpenGL - стандарт в мире графических рабочих станций [5,6]. Эта библиотека представляет собой программно-независимый интерфейс к
графическому оборудованию, т.е.
может использоваться на различных
аппаратных платформах. Команды
OpenGL позволяют:
- создавать объекты из геометрических примитивов (точек, линий, многоугольников);
- размещать объекты в трёхмерном пространстве и выбирать
способ их проецирования;
- устанавливать параметры
источников света и камер;
51
Информационные технологии
- накладывать различные материалы на объекты (в том числе
текстуры);
- выполнять визуализацию
сцены и создавать анимацию.
Команды OpenGL реализуют
все этапы создания трёхмерного мира. Однако библиотека OpenGL предоставляет пользователю мощный,
но низкоуровневый набор команд,
владение которым требует определённой программистской квалификации.
Использование языков программирования высокого уровня и
библиотеки OpenGL позволяет создавать высококачественные изображения и анимацию любой сложности
в различных предметных областях.
Хотя для создания трёхмерных миров
можно воспользоваться программами
трёхмерного моделирования или системами виртуальной реальности,
вряд ли появится прикладное программное обеспечение для всех конкретных случаев. Кроме того, необходимо проводить исследования по
оптимизации существующих и разработке новых алгоритмов, лежащих
в основе различных графических
систем. Таким образом, необходимость программирования графики
сохранится ещё долгое время. Этим
объясняется актуальность изучения
алгоритмического подхода.
В результате освоения технологии программирования с использованием библиотеки OpenGL практически каждый студент может написать программу построения и анимации трёхмерных объектов различной
сложности с учётом освещённости и
наложения материалов.
Разработка компьютерных игр
и мультфильмов – важнейшие области компьютерной графики. Использование прикладного программного
обеспечения предоставляет возможность даже неквалифицированному
(с точки зрения программирования)
пользователю получать анимацию
52
хорошего качества. Однако
программирование на языках высокого
уровня и использование графических
библиотек позволяют более точно
настроить приложение и получить
качественную анимацию реального
времени. Современные технологии
создания игр и мультфильмов достаточно сложны и требуют много усилий и кропотливой работы. Разработка таких проектов – темы курсовых,
выпускных и дипломных работ. Кроме этого, важные направления научных исследований - построение
сложных трёхмерных сцен с фотореалистическим качеством и нефотореалистическая визуализация (моделирование живописи, рисования карандашом и др.).
При разработке игр и мультфильмов большую роль играет тщательное проектирование и повторное
использование программного кода.
Поэтому важно выбрать наиболее
подходящий стиль программирования. В настоящее время широко используются алгоритмическая и объектно-ориентированная декомпозиции. Алгоритмическая декомпозиция
(процедурный стиль), предполагает
использование структурного проектирования по методу сверху вниз.
Как правило, такой подход неэффективен для создания больших программных систем, так как приводит к
программам со сложной структурой.
Кроме того, процедурное программирование ограничивает повторное
использование кода, не позволяет
выделять абстракции, а также обеспечивать защиту доступа к данным.
Как показывает опыт, наиболее успешными программными системами являются те, в которых заложены хорошо продуманные структуры классов и объектов [9]. Для создания игр и мультфильмов намного
эффективнее использовать объектноориентированное программирование,
которое основано на представлении
программы в виде совокупности объИнформатизация образования и науки № 3(15)/2012
Информационные технологии
ектов, каждый из которых является
реализацией определённого класса, а
классы образуют иерархию на принципах наследования. Объектная декомпозиция позволяет создавать достаточно надёжные программы с прозрачной структурой, возможностью
повторного использования кода; при
этом значительно упрощается процесс внесения необходимых дополнений или изменений за счёт использования наследования и полиморфизма.
Основные этапы создания
трёхмерного мира содержат характерные
черты
объектноориентированного подхода. Объекты
- геометрические модели, материалы,
камеры, источники света. С каждым
объектом связано поведение (набор
методов), например, каждый объект
должен уметь, как минимум, вывести
себя на экран. Наследование обеспечивает создание более сложных классов на основе существующих классов-предков. К примеру, родительский класс источников света должен
содержать набор основных свойств
освещения, характерных для всех источников (местоположение, цвет, интенсивность). Производные же классы описывают специфические особенности источников света. Для
прожектора это – точка нацеливания,
размер яркого пятна и размер края
пятна; для направленного источника
– ориентация в пространстве.
Именно в процессе решения
задач трёхмерной визуализации студенты получают навыки применения
объектно-ориентированного
программирования для создания больших программных систем.
Современные
графические
процессоры
(GPU
–
Graphics
Processing Unit) намного эффективнее обрабатывают графическую информацию по сравнению с центральными процессорами. Поэтому следующий шаг в освоении технологий
трёхмерной графики – программироИнформатизация образования и науки № 3(15)/2012
вание с использованием шейдеров –
программ, выполняемых на GPU [7].
Применение шейдеров позволяет
создавать сложные визуальные эффекты в реальном времени, которые
не могут быть реализованы при использовании традиционных средств
OpenGL: имитировать реалистичную
рябь и волны на воде; моделировать
такие материалы, как мех, дерево,
полированный металл; создавать нефотореалистические изображения и
др.
Освоение шейдерной технологии требует глубокого понимания
процесса визуализации (см. рисунок).
Объекты трехмерной сцены задаются
набором полигонов, которые, в свою
очередь, определяются набором вершин. У вершины может быть много
различных атрибутов (местоположение, цвет, нормаль, координаты текстуры). В начале процесса визуализации вершины передаются в конвейер визуализации, где проходят
через стадии 1) обработки вершин, 2)
сборки полигонов, 3) растеризации
полигонов, 4) закраски, 5) записи в
буфер кадра. При использовании базовой функциональности все этапы
конвейера фиксированы. Это означает, что ко всем передаваемым на
обработку данным применяются
одинаковые алгоритмы, у которых
можно менять только фиксированные
параметры.
В этом случае невозможно
реализовать различные модели освещения, нестандартные материалы, а
также разнообразные спецэффекты.
С появлением графических процессоров стало возможным программировать некоторые этапы конвейера
визуализации. Это предполагает замену стандартных этапов 1 и 4 пользовательскими программами – вершинным и фрагментным шейдерами.
В этом случае значительно улучшается качество и скорость визуализации графики.
53
Информационные технологии
В последних версиях OpenGL
возможна замена третьего этапа геометрическим шейдером.
Программирование графики с
использованием шейдеров - достаточно сложная задача. GLSL – высокоуровневый
шейдерный
язык
54
OpenGL [7,8]. Этот язык очень близок к языкам C/C++, что облегчает
его использование большинству программистов. Тем не менее, GLSL
требует дополнительного изучения,
так как написание шейдеров существенно отличается от программирования для традиционных процессоров.
Кроме того, создание приложений с
применением шейдеров является
трудоёмкой задачей. Поэтому для
написания, редактирования и отладки
шейдерных программ используется,
как правило, специализированная инструментальная
среда
RenderMonkey.
Таким образом, в рамках изучения
алгоритмического
уровня
трёхмерной графики рассматриваются следующие вопросы:
1)
математические основы
компьютерной графики;
программирование ал2)
горитмов с использованием графической библиотеки OpenGL;
3)
использование объектно-ориентированного подхода для
создания программных систем трёхмерной графики;
4)
программирование специальных эффектов с использованием шейдеров.
Результаты выполнения курсовых и выпускных работ – анимационные приложения, моделирующие
сложные специальные эффекты.
В дальнейшем навыки работы
с OpenGL и шейдерами могут быть
использованы при создании графических приложений для мобильных
устройств. Для этого необходимо
предварительно освоить особенности
платформы Android, язык Java, графическую библиотеку OpenGL ES, а
также среду разработки Eclipse.
Информатизация образования и науки № 3(15)/2012
Информационные технологии
Литература
1.
Келли Л. Мэрдок. 3ds Max 10. Библия пользователя. – Киев: Диалектика,
2010. – 1296с.
2. Аврамова О.Д. Язык VRML. Практическое руководство. – М.: ДИАЛОГМИФИ, 2000. – 288с.
3. Don Brutzman & Leonard Daly. X3D:Extensible 3D Graphics for Web Authors. –
Elsevier Inc.,2007. – 441c.
4. VRML
Extensions.
[Электронный ресурс]
[Режим
доступа:
http://www.parallelgraphics.com/developer/products/cortona/extensions/]
5. Рост, Р. Дж. Трехмерная графика и язык программирования шейдеров
OpenGL. -СПб.: Питер, 2005. – 428 с.
6. OpenGL 4.0 Specification [Электронный ресурс] [Режим доступа:
http://www.opengl.org/registry/doc/glspec40.core.20100311.pdf].
Информатизация образования и науки № 3(15)/2012
55
Download