Лабораторная работа 4 Программируемый графический конвейер. Шейдеры.
Цель лабораторной работы
Графический конвейер
Графический конвейер
Реализация шейдеров в OpenGL
Пример вершинного шейдера
Пример вершинного шейдера
Работа шейдера
Кастомный высотный шейдер
602.18K

Лр4 Презентация Дудник И

1. Лабораторная работа 4 Программируемый графический конвейер. Шейдеры.

2. Цель лабораторной работы


Узнать что такое графический конвейер в OpenGL
Познакомится с понятием шейдеров
Понять как их реализовать программно

3. Графический конвейер

В
стандартном
OpenGL
во
время
визуализации треугольник (Рис.1 а) проходит
несколько стадий:
Рис.1. б - проекция вершин координат треугольника на
плоскость
Рис.1, в - определение фрагментов (пикселей)
Рис.1, г - вычисление конечного цвета фрагментов(пикселей)

4. Графический конвейер

Программируемый графический конвейер позволяет обойти фиксированную
функциональность стандартного графического конвейера OpenGL.
Для вершин – задать необычное преобразование вершин
Для геометрических примитивов – сформировать иную геометрию
Для фрагментов – позволяет определить цвет фрагмента (пикселя) в обход
стандартных моделей освещения.
Программа, используемая для расширения фиксированной функциональности
OpenGL называется шейдер, соответственно различают 3 типа шейдеров.
В рамках лабораторной рассмотрим только вершинный и фрагментный.

5. Реализация шейдеров в OpenGL

Создаём шейдеры командой glCreateShader(GL_ТИП_ШЕЙДЕРА)
Командой ниже, можно переписать «код» шейдера, на тот который хотим:
Компилируем переписанный шейдер:
Подключаем наш шейдер:

6. Пример вершинного шейдера

7. Пример вершинного шейдера

8. Работа шейдера

Без нашего шейдера
С нашим шейдером

9. Кастомный высотный шейдер

10.

Задание и баллы
25-35 баллов
Задание 1:
Реализовать свой шейдер (усиление блика)
Реализовать свой шейдер (с использованием цветов)
(25 баллов);
(35 баллов);
36-45 баллов
Задание 1 +
Задание 2:
Реализовать чёрно-белый шейдер (фильтр)
(45 баллов);
45-54 балла
Задание 1 + Задание 2 +
Задание 3:
Реализовать эффект тумана
(54 балла);
ИЛИ
Придумать свой интересный (!!!) шейдер/эффект
English     Русский Правила