BC/NW 2007, №1, (10) :16.16
ИСПОЛЬЗОВАНИЕ АППАРАТНОГО УСКОРЕНИЯ ТРЕХМЕРНОЙ КОМПЬЮТЕРНОЙ
ГРАФИКИ
А. А. Цыганов, А. И.
Пугачев, Б. В. Мартемьянов
(СамГТУ, Самара)
Данная
работа представляет собой исследование современных методов, применяемых при
работе с графическими ускорителями. В работе изложена реализация приложения,
использующего эти методы. Программирование подобных приложений затрагивает
обширный круг проблем, таких как математические алгоритмы построения трёхмерных
изображений, способы оптимизации и подходы к созданию эффективной программной
архитектуры.
Графические
ускорители представляют собой конвейер, выполняющий набор стандартных операций
по обработке трехмерных объектов. Они включают в себя трансформацию вершин,
обработку примитивов, текстурирование, растеризацию, осуществление теста
глубины и другие операции. Хотя процесс обработки стандартен, программист имеет
широкие возможности по управлению его отдельными частями. Наиболее значимой
возможностью является наличие в современных ускорителях программируемого
графического процессора. Его использование осуществляется путем создания
специальных программ, называемых шейдерами. Благодаря оптимизации выполнения
сложных математических операций с числами в формате с плавающей точкой,
графические процессоры позволяют производить в реальном времени различные
сложные вычисления, например, расчёты освещенности. С помощью механизма
шейдеров можно полностью управлять обработкой отдельных вершин и пикселей в
графическом конвейере.
В
разработанном приложении реализованы модели освещения и эффекты, используемые в
современных программах, использующих трехмерную графику реального времени.
Применение шейдеров позволяет вычислять освещенность индивидуально для каждого
пикселя, реализуя так называемое попиксельное освещение. Это значительно
улучшает внешний вид формируемых изображений. Диффузные и бликовые модели
освщения, широко применяемые в компьютерной графике, дополнены эффектом
микронеровностей, реализуемым с помощью карты нормалей. Этот подход позволил
вместо увеличения сложности геометрии трёхмерных объектов, создать иллюзию
неровности их поверхности, задавая отклонение нормалей с помощью текстуры. Для
придания имитируемой поверхности большей достоверности, используется эффект так
называемого параллакса, то есть смещения текстурных координат в зависимости от
положения наблюдателя, что создаёт видимость объемности таких неровностей.
Тестирование приложения показало его высокую производительность в реальном
времени.
Приложение
создано на языке C++ с использованием программного интерфейса Direct3D,
предоставляющего доступ к аппаратным функциям графического ускорителя.
Шейдерные программы написаны на языке High Level Shader Language.
Литература
Е. В. Шикин, А. В.
Боресков. Компьютерная графика. Полигональные модели. – М.: «ДИАЛОГ-МИФИ»,
2005.
Jeff Plummer. A flexible
and expandable architecture for computer games. Thesis for the Degree of Master
of Science. – Arizona State University, 2005.
developer.nvidia.com – материалы сайта компании
NVIDIA для разработчиков.
msdn.microsoft.com – материалы библиотеки
Microsoft Developer Network, посвященные разработке приложений с использованием
DirectX.
www.gamedev.ru – материалы сайта русского
сообщества разработчиков игр.