Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика»





НазваниеРеферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика»
страница2/9
Дата публикации17.02.2015
Размер0.59 Mb.
ТипРеферат
100-bal.ru > Информатика > Реферат
1   2   3   4   5   6   7   8   9

x = x + y

y = y

Векторы, параллельные оси x (у которых координата y нулевая) не меняются после такого преобразования. На рис. 51 показан случай, когда вектор отражения рассчитывается в системе координат S1, после чего применяется указанное выше преобразование.



рис. 51

Если сначала перейти в систему координат S2, и уже в ней вычислить вектор отражения, то результат будет другим (рис. 52).



рис. 52

Существует еще одна деталь в вопросе вычисления вектора отражения. Можно рассчитывать его для каждого пикселя, а можно для каждой вершины. Во втором варианте для значений в пикселях используется линейная интерполяция (на практике линейная интерполяция в пространстве наблюдателя (или любом другом до проецирования) заменяется на гиперболическую в пространстве после деления на w (например, в пространстве изображения) [7], которая осуществляется аппаратно во время растеризации).

Формула для вычисления вектора отражения имеет вид R = 2 * (V, N) * N – V [2, 7, 9] (предполагается, что длина вектора N равна 1). Несложно заметить, что R зависит линейно от V. Но N входит нелинейно. Это может привести к неправильным результатам при использовании линейной интерполяции. Пример возникновения такой ситуации приводится ниже.

Пусть для двух вершин вектор направления взгляда V один и тот же (это случается в случае использования ортогональной проекции), а векторы нормали – разные (рис. 53).



рис. 53

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

Первым рассмотрим вариант с использованием интерполяции. Сначала надо вычислить векторы отражений в каждой вершине. В первой вершине получим вектор R1, а во второй – R2 (рис. 53). Несложно видеть, что R1 = -R2. После выполнения линейной интерполяции с коэффициентом 0.5 получим, что вектор отражения в промежуточной точке R` = 0. На рис. 54 показан результат для попиксельного вычисления (N` – интерполированная нормаль). Видно, что вектор R` получился ненулевым.



рис. 54

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

2.3. Исследование методов теневых буферов


2.3.1. Устранение ошибок передискретизации

В статье [26] кратко рассматривается метод устранения ошибок передискретизации, которые приводят к ошибочным самозатенениям (рис. 55). Он заключается в применении билинейной интерполяции к значениям из теневого буфера (буфера глубины, сформированного на этапе рисования сцены с позиции источника света). Этот метод основан на том, что если четыре точки лежат на одной плоскости, то в результате билинейной интерполяции получаются точки, которые тоже лежат на этой плоскости [7]. Это позволяет решить проблему передискретизации внутри треугольников, но на их границах выборки из четырех соседних элементов теневого буфера могут принадлежать разным треугольникам и, соответственно, разным плоскостям. Также в статье [26] отмечается, что этот метод не будет работать в случае гиперболического распределения глубины (которое возникает из-за перспективной проекции при использовании точечных источников света).



рис. 55

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



рис. 56

В ходе исследований данного метода было обнаружено, что он несколько скругляет границы теней. На рис. 57 показан результат стандартного варианта, на рис. 58 – исследуемого метода. Конечно, этот метод не может заменить такие алгоритмы смягчения границ теней, как Percentage Closer Filtering (PCF), но все же делает границы более сглаженными.



рис. 57



рис. 58


2.3.2. Устранение проективного алиасинга

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

В данной работе предлагается простой метод устранения проективного алиасинга, который легко реализовать на графических процессорах. Если треугольник расположен почти параллельно направлению света, то он считается затененным. Для того, чтобы избежать резких изменений затененности в граничных положениях, используется кубическая интерполяция. Доступ к целым примитивам (а не отдельным вершинам или пикселям) есть в Direct3D 10 [9, 10, 11]. Но реализация этого метода осуществлялась в Direct3D 9, поэтому проверки параллельности выполнялись для каждого пикселя. Для этого вычисляется градиент значения глубины в пространстве источника света. Если величина градиента оказывается большой (в качестве нормы используется сумма модулей), то глубина меняется быстро, и пиксель считается затененным. Графический процессор позволяет вычислять градиенты в пространстве изображения. Для перевода градиентов из пространства изображения в пространство источника света используется метод, предложенный в статье [20].

При реализации этого метода возникла проблема. Если точка наблюдения находится близко от участка поверхности, расположенного далеко от точечного источника света, то в случае гиперболического распределения глубины значения глубины в соседних пикселях почти одинаковые. Точности представления чисел с плавающей точкой (32 бита) оказывается недостаточно, чтобы различить эти значения, в результате чего градиенты получаются нулевыми. Это приводит к появлению отдельных освещенных пикселей (точнее, групп из четырех пикселей, поскольку из-за особенностей вычисления градиентов на графических процессорах в пределах таких фрагментов градиенты одинаковые), в то время как большая часть поверхности считается затененной (рис. 59). Эту проблему удалось решить, заменив гиперболическое распределение глубины на линейное. Но после этого возникла другая проблема – при приближении источника света снова появляется проективный алиасинг.



рис. 59

Ниже приведены результаты. На рис. 60 иллюстрируется проективный алиасинг. На рис. 61 он устранен описанным методом. При приближении источника света алиасинг возвращается (рис. 62).



рис. 60



рис. 61



рис. 62

Заключение

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

Простые методы улучшения детализации поверхностей, такие как bump mapping и parallax mapping, давно применяются на практике. В последнее время все чаще начинают использоваться гораздо более сложные методы, например parallax occlusion mapping, displacement mapping. У пиксельных методов, основанных на трассировке в карте высот, есть преимущество перед геометрическими методами, применяющими тесселяцию – автоматическая настройка уровня детализации. Чем ближе объект, тем больше пикселей получается при растеризации, и при использовании пиксельных методов для близких объектов автоматически выполняется больше расчетов. Чтобы добиться аналогичного результата для геометрических методов, приходится использовать специальные методы адаптивной тесселяции, которые определяют участки, для которых требуется увеличить детализацию (например, близко расположенные к точке наблюдения), и увеличивают для них геометрическую детализацию.

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

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

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

Метод теневых буферов – самый распространенный алгоритм построения теней в реальном времени. В работе анализируется метод устранения ошибок передискретизации, предложенный в статье [26].

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

Помимо описанных алгоритмов проводились исследования в области рисования символов. Основная идея была предложена сотрудником ИММ УрО РАН Бахтеревым М.О.

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

Также вместо эллипсов исследовался вариант использования кривых Безье второй степени с аппаратным сглаживанием в OpenGL.

Возможно дальнейшее развитие предложенных методов. Для устранения одного из недостатков методов улучшения детализации поверхностей, использующих трассировку в карте высот, перед геометрическими методам – отсутствие деталей на силуэтах объектов, можно использовать подход, который описывается в [9, 10, 12]. Также можно увеличить глубину трассировки и добавить преломления. Это относится и к алгоритму локальной трассировки лучей.

Метод устранения проективного алиасинга, свойственного алгоритму теневых буферов, можно реализовать, проводя вычисления для треугольников, а не для каждого пикселя. Такая возможность появилась в Direct3D 10 [9, 10, 11]. Еще можно рассмотреть другие нормы для градиентов. Также можно попробовать оценить область, которую занимает проекция элементы теневого буфера в текстурном пространстве объекта с равномерной параметризацией, используя методы, которые применяются для вычисления уровня детализации для текстур [5].

Список литературы

  1. Гайдуков С. А. OpenGL. Профессиональное программирование трехмерной графики на C++. – СПб.: БХВ-Петербург, 2004. – 736 с.

  2. Порев В. Н. Компьютерная графика. – СПб.: БХВ-Петербург, 2004. – 432 с.

  3. Тихомиров Ю. В. OpenGL. Программирование трехмерной графики. – 2-е изд. – СПб.: БХВ-Петербург, 2002. – 304 с.

  4. Р. Гонсалес, Р. Вудс. Цифровая обработка изображений. – Москва: Техносфера, 2005 – 1072 с.

  5. Mark Segal, Kurt Akeley. The OpenGL Graphics System: A Specification (Version 1.5) Editor(version 1.1): Chris Frazier. Editor (versions 1.2, 1.21, 1.3, 1.4, 1.5): Jon Leech.

  6. Neider J. Davis T. OpenGL Programming Guide.

  7. Samuel R. Buss. 3-D computer graphics. A mathematical introduction with OpenGL.

  8. Eric Lengyel. Mathematics for 3D Game Programming and Computer Graphics, Second Edition.

  9. DirectX SDK Documentation (March 2008).

  10. David Blythe. Direct3D 10. SIGGRAPH 2006. Microsoft Corporation.

  11. David Blythe. The Direct3D 10 System. Microsoft Corporation.

  12. Xi Wangy, Xin Tong, Stephen Lin, Shimin Hu, Baining Guo, Heung-Yeung Shum. Generalized Displacement Maps. Tsinghua University. Microsoft Research Asia.

  13. Markus Fahlen. Illumination for Real-Time Rendering of Large Architectural Environments.

  14. Lars Peter Gamsbøl Christiansen. Implementing and Combining Light, Shadows and Reflections in 3D Engines. Technical University of Denmark. 2005.

  15. Gregory S. Johnson, Ikrima Elhassan. Irregular Shadow Maps. Department of Computer Sciences. The University of Texas at Austin.

  16. Thomas Annen. Advanced Shadow Map Parameterization.

  17. Michael Wimmer, Daniel Scherzer and Werner Purgathofer. Light Space Perspective Shadow Maps. Eurographics Symposium on Rendering (2004).

  18. Tom Lokovic, Eric Veach. Deep Shadow Maps. Pixar Animation Studios.

  19. Hamilton Yu-Ik Chong. Real-Time Perspective Optimal Shadow Maps.

  20. John R. Isidoro. Shadow Mapping: GPU-based Tips and Techniques. ATI Research. 3D Applications Research Group. Game Developers Conference 2006.

  21. William Donnelly, Andrew Lauritzen. Variance Shadow Maps. Computer Graphics Lab, School of Computer Science, University of Waterloo.
1   2   3   4   5   6   7   8   9

Похожие:

Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconРеферат: Коваленко А. Е. Разработка системы научной визуализации....
Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика....
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconРеферат Флягина Т. А. Проблемы разработки многооконных интерфейсов,...
Флягина Т. А. Проблемы разработки многооконных интерфейсов, квалификационная работа на степень бакалавра наук
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconКвалификационной работы на факультете математики и компьютерных наук
В соответствии с действующими государственными образовательными стандартами выпускная квалификационная работа по специальности «Математика»...
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconДиссертация на степень магистра наук по направлению «Математика, компьютерные науки»
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconДипломная работа по направлению Математика. Прикладная математика студента гр. Мт 505
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconПрограмма дисциплины Современные методы принятия решений  для направления...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 010400....
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconПрограмма дисциплины «Герменевтика» для направления 010400. 68 «Прикладная...
Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки 010400. 68 "Прикладная...
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» icon1 Нормативные документы для разработки ооп впо по направлению подготовки...
Общая характеристика вузовской основной образовательной программы высшего профессионального образования по направлению подготовки...
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconРеферат Тычинин И. А. Разработка приложения для портативных устройств...
Тычинин И. А. Разработка приложения для портативных устройств с использованием qt framework, квалификационная работа на степень бакалавра...
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconОсновная образовательная программа (ооп) бакалавриата, реализуемая...
Нормативные документы для разработки ооп бакалавриата по направлению подготовки «Прикладная математика и информатика»
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconПрограмма дисциплины Архитектура ЭВМ для направления 010400. 68 «Прикладная...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направлений подготовки 010400....
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconОбразовательная программа высшего образования, реализуемая университетом...
...
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconЛитература
Уросов А. П. Разработка методик визуализации для представления работы параллельных программ, квалификационная работа на степень бакалавра...
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconЕН. Ф. 1 Математика и информатика: математика
Учебная дисциплина Математика и информатика: "Математика" введена в процесс обуче­ния для бакалавров по направлению подготовки "Художественное...
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconПрограмма дисциплины «Модели корпусной лингвистики» для направления...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 010400. 68 "Прикладная...
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconПрограмма дисциплины «История» для направления 231300. 62 и 230700....
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 231300....


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск