Содержание
- 2. Использование программируемости Рендеринг намного более реалистичных материалов: металлы, природные камни, дерево… Рендеринг различных природных явлений: огонь,
- 3. GLSL (OpenGL Shading Language) Язык высокого уровня для программирования шейдеров. Номер версии GLSL соответствует версии OpenGL.
- 4. Модель выполнения OpenGL шейдеров 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского
- 5. Графический конвейер На функционирование OpenGL можно смотреть как на стандартную последовательность операций, применяемую к геометрическим данным
- 6. Графический конвейер 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского
- 7. Стандартный конвейер операций OpenGL 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского
- 8. Стандартный конвейер операций OpenGL с программируемыми стадиями 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского
- 9. Графический конвейер 4.3 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского
- 10. Вершинный процессор 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского это программируемый модуль, который выполняет операции над
- 11. Вершинный процессор 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского Вершинные шейдеры, выполняющие часть операций из списка,
- 12. Фрагментный процессор программируемый модуль, который выполняет операции над фрагментами (или пикселями) и связанными с ними данными
- 13. Фрагментный процессор Шейдеры, предназначенные для выполнения на этом процессоре, называются фрагментными Фрагментные шейдеры, которым нужно выполнять
- 14. Фрагментный процессор Фрагментный шейдер обрабатывает входной поток данных и производит выходной поток данных – пикселов изображения
- 15. Квалификаторы типов 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского Для управления входными и выходными данными шейдеров
- 16. Типы данных Скалярные типы данных. В OpenGL предусмотрены следующие скалярные типы данных: float – одиночное вещественное
- 17. Векторные типы данных Векторные типы данных. В OpenGL предусмотрены базовые векторные типы данных: vec2 – вектор
- 18. Векторные типы данных Их можно использовать для задания цвета, координат вершины или текстуры и т.д. Аппаратное
- 19. Векторные типы данных В языке шейдеров OpenGL не существует способа указать, какая именно информация содержится в
- 20. Матричные типы данных В GLSL предусмотрены матричные типы данных: mat2 – 2 x 2 матрица вещественных
- 21. Дискретизаторы OpenGL предоставляет некоторый абстрактный “черный ящик” для доступа к текстуре – дискретизатор или сэмплер sampler1D
- 22. Структуры Структуры на языке шейдеров OpenGL похожи на структуры языка C/C++: Все прочие особенности работы со
- 23. Массивы Массивы. В языке шейдеров OpenGL можно создавать массивы любых типов: Принципы работы с массивами те
- 24. Тип данных void Тип данных void традиционно используется для объявления того, что функция не возвращает никакого
- 25. Объявление переменных Переменные GLSL такие же, как в C++ : могут быть объявлены по необходимости и
- 26. Инициализаторы и конструкторы При объявлении переменных их можно инициализировать начальными значениями, подобно языкам C/C++: При объявлении
- 27. Спецификаторы и интерфейс шейдера При объявлении переменных или параметров функции можно указывать спецификаторы. Существует два вида
- 28. Спецификаторы и интерфейс шейдера Пример: 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского uniform vec3 LightPosition; uniform
- 29. Спецификаторы и интерфейс шейдера attribute: для часто меняющейся информации, которую необходимо передавать для каждой вершины отдельно
- 30. Спецификаторы и интерфейс шейдера Схема передачи данных 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского
- 31. Спецификатор attribute Вершинному шейдеру передаются стандартные attribute-переменные (gl_Vertex, gl_Normal) для получения состояний OpenGL Разработчик может задавать
- 32. Спецификатор uniform В качестве uniform-переменных можно использовать любые типы данных и массивы Шейдерам передаются стандартные uniform-переменные,
- 33. Спецификатор varying Из таких переменных во время выполнения формируется интерфейс между вершинным и фрагментным шейдером Вершинный
- 34. Спецификатор const Переменные, объявленные с ключевым словом const, являются константами времени компиляции Данные переменные не видимы
- 35. Последовательность выполнения Последовательность выполнения программы на языке шейдеров OpenGL похожа на последовательность выполнения программы на C/C++:
- 36. Функции Работа функций построена в языке шейдеров почти так же, как и в C/C++ Функции можно
- 37. Функции В языке шейдеров OpenGL параметры передаются в функцию по значению. Так как в языке нет
- 38. Функции Пример 06.11.2015 Нижегородский государственный университет им. Н.И. Лобачевского bool IntersectPlane(in Ray ray, Plane plane, out
- 39. Встроенные функции В GLSL доступен большой набор встроенных функций: Угловые и тригонометрические функции (sin, cos, asin,
- 40. Вершинный шейдер… В вершинном шейдере должны выполняться операции над каждой вершиной. Чтобы создать вершинный шейдер для
- 41. Вершинный шейдер… Какие данные необходимо передавать вершинному шейдеру для каждой вершины? Если не задать координаты вершины,
- 42. Вершинный шейдер… Какие глобальные переменные состояния потребуются вершинному шейдеру? Необходим доступ к параметрам состояния OpenGL, таким
- 43. Вершинный шейдер… Что является результатом вычислений в вершинном шейдере? Любой вершинный шейдер должен вычислить координаты вершины
- 44. Использование шейдеров… В первую очередь, необходимо объявить глобальные переменные – идентификаторы вершинного шейдера, фрагментного шейдера и
- 45. Использование шейдеров… Для загрузки исходного кода из файла необходимо выполнить следующие шаги: Нижний Новгород, 2008 г.
- 46. Использование шейдеров… После загрузки исходного кода в шейдерный объект этот исходный код необходимо скомпилировать: Нижний Новгород,
- 47. Использование шейдеров… В процессе компиляции могут возникнуть ошибки, описание которых будет занесено в информационный журнал шейдерного
- 48. Использование шейдеров… Чтобы использовать скомпилированные шейдеры их необходимо скомпоновать в одну программу: Нижний Новгород, 2008 г.
- 49. Использование шейдеров… При компоновке программы могут возникнуть ошибки (даже если все шейдеры по отдельности скомпилировались удачно).
- 50. Использование шейдеров… Скомпонованную программу можно установить в качестве состояния OpenGL. Сделать это необходимо перед отрисовкой геометрических
- 51. Использование шейдеров… Для получения адреса какой-либо uniform-переменной служит следующая команда: Данная функция должна вызываться только после
- 52. Использование шейдеров… Для получения адреса какой-либо attribute-переменной служит следующая команда: Назначить адрес атрибута можно только перед
- 54. Скачать презентацию