ИСПОЛЬЗОВАНИЕ АДАПТИВНОГО РАЗМЕРА КУБИЧЕСКОЙ КАРТЫ ДЛЯ ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ ГРАФИЧЕСКОГО ПРИЛОЖЕНИЯ - Студенческий научный форум

V Международная студенческая научная конференция Студенческий научный форум - 2013

ИСПОЛЬЗОВАНИЕ АДАПТИВНОГО РАЗМЕРА КУБИЧЕСКОЙ КАРТЫ ДЛЯ ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ ГРАФИЧЕСКОГО ПРИЛОЖЕНИЯ

Чудинов Е.А. 1
1Пермский государственный национальный исследовательский университет
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Введение

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

Содержание работы

Кубическая карта — это текстура определённого разрешения, в которую производится рендеринг сцены. Затем эта текстура накладывается на поверхность некоторого объекта, имитируя тем самым отражение окружающей обстановки. Время подготовки кубической карты прямо пропорционально её разрешению [3]. При этом большое разрешение требуется только в том случае, если велик размер отражающего объекта в кадре (в этом случае отражение в его поверхности будет должно казаться пользователю более детализированным). Если же объект занимает в кадре немного места, кубическая карта для него может иметь меньшее разрешение без потери общего визуального качества картинки.

Для адекватного измерения размера объекта на экране необходимо знать размер модели в координатах трёхмерного пространства и преобразования, которые совершаются над моделью.

Для определения фактического размера модели в трёхмерном пространстве вводится специальный объект, называемый ограничивающим параллелепипедом [2]. Этот параллелепипед описывается около модели и заменяет её во всех дальнейших расчётах. Использование объекта простой формы, аппроксимирующего исходную модель, позволяет снизить сложность дальнейших вычислений занимаемого пространства. Параллелепипед позволяет с достаточной точностью аппроксимировать широкий класс трёхмерных объектов. Для поиска ограничивающего параллелепипеда при загрузке модели выделяются максимальные и минимальные координаты её вершин, а затем параллелепипед строится таким образом, чтобы его грани содержали в себе найденные координаты.

Над найденным объектом следует провести такую последовательность преобразований, которая была бы эквивалентна стандартным преобразованиям конвейера OpenGL [4], сводящихся к последовательному применению матриц.

  1. Каждая вершина параллелепипеда преобразуется в тот вид, который соответствует сцене и положению камеры. Преобразование описывается формулой, , (1)где обозначение obj показывает исходные координаты объекта, а обозначение eye показывает преобразованные с учетом видовых трансформаций.

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

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

  4. И, наконец, необходимо спроецировать полученный объект в окно просмотра, для этого используется следующее преобразование:, (4)где x, y, w, h, n, f это параметры вызовов процедур glViewport(x, y, w, h), glDepthRange(n, f), то есть размер порта просмотра и диапазон глубин сцены [1].

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

При каждой отрисовке объекта менять размер кубической карты не оптимально, так как само по себе выделение видеопамяти под карту нового размера имеет ощутимые накладные расходы, поэтому для повышения эффективности введена шкала (диапазон значений), которая описывает возможные значения размера карты. Если размер объекта вышел за допустимые границы, необходимо изменить размер карты, иначе оставить старым. В данной работе для генерации шкалы используется заданный максимальный размер кубической карты. Каждый отрезок шкалы соответствует 10% максимального размера. Т. е. первый отрезок 10-20%, второй 20-30%, третий 30-40% и т. д.

Необходимо убедиться, что адаптивная карта увеличивает производительность системы. Для этого было проведено тестирование на эквивалентных сценах, но, в первом случае, с фиксированным размером карты, а во втором с адаптируемым. Изменяемая величина – количество кадров в секунду.

Для этого был произведен ряд тестов, результаты которого сведены в таблицу 1.

Таблица 1. Тестирование

Тип сцены

Количество кадров в секунду

Фиксированный размер карты

Адаптивный размер карты

Сцена без отражения

1116

1132

Сцена с преломлением

1101

1116

Сцена с простым отражением

1061

1064

Сцена с физически точным отражением

986

1014

Сцена с отражением с использованием модели Кука-Торренса

771

779

Сцена с совмещением отражения и преломления

974

995

Сцена с совмещением отражения и преломления при использовании модели Кука-Торренса

709

713

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

Технические характеристики компьютера, на котором производилось тестирование: Intel Core i7-3770 3.4GHz / PCI-E Sapphire AMD Radeon HD7770 1024MB 128bit / DIMM DDR3 4096MB PC10666 1333Mhz / Microsoft Windows 7.

Библиографический список

  1. Рост Р. Дж. OpenGL. Трехмерная графика и язык программирования шейдеров. Для профессионалов. СПб.: Питер, 2005. – 428 с.: ил.

  2. Боресков А. В. Графика трёхмерной компьютерной игры на основе OpenGL. М.: Диалог-Мифи, 2004. 383 с.

  3. Горнаков С.Г. Инструментальные средства программирования и отладки шейдеров в DirectX и OpenGL. СПб.: БХВ-Петербург, 2005. 266 с.: ил.

  4. Райт, Ричард С.-мл., Липчак, Бенжамин. OpenGL. Суперкнига, 3-е издание. : Пер. с англ – Издательский дом «Вильямс», 2006. – 1040с.: ил.

Научный руководитель: аспирант кафедры МОВС ПГНИУ, К.В. Рябинин.

Просмотров работы: 1002