Содержание
- 2. Обзор Материала Введение в GLSL Обзор структуры языка Примеры шейдеров в GLSL
- 3. GLSL – Новый Стандарт для Программирования Шейдеров в OpenGL Поддерживается драйверами с выпуском OpenGL 1.5 Позволяет
- 4. Обзор Языка GLSL Базируется на основе ANSI C Сохранено большинство возможностей языка, за исключением тех случаев,
- 5. Обзор Языка GLSL (продолж.) GLSL является набором двух схожих языков для программирования VPU Программирование вершинного процессора
- 6. Обзор Вершинного Процессора Конвейер, оперирующий вершинными данными Используется для: Трансформации вершин Трансформации нормалей и их нормализации
- 7. Обзор Фрагментного Процессора Конвейер, обрабатывающий интерполируемые данные для: Наложения текстур По-фрагментного рассчета цвета материала Фрагментный шейдер
- 8. Функциональные Возможности Языка GLSL Директивы препроцессора Типы данных Операторы и выражения Структура языка Встроенные переменные и
- 9. Директивы Препроцессора #define #undef #if #ifdef #ifndef #else #elif #endif #error: Вывод диагностического сообщения #pragma: Зависит
- 10. Зарезервированные Слова в GLSL attribute const uniform varying break continue do for while if else in
- 11. Зарезервированные Слова в GLSL для Будущего Использования Использование на данный момент вызывает ошибку: asm class union
- 12. Типы Данных в GLSL void для функций без возвращаемого значения bool булевское значение, true или false
- 13. Матрицы и Чтение Текстур Матрицы: только NxN матрицы с плавающей точкой (2x2: mat2, 3x3: mat3, 4x4:
- 14. Целочисленные Типы Данных Поддержка в железе не обязательна: на данный момент не поддерживается существующим железом Может
- 15. Вектора и Матричные Данные 2-, 3-, и 4-компонентные вектора Матрицы могут быть только с плавающей точкой:
- 16. Структуры Данных и Массивы struct может быть использован для создания новых типов данных: struct light {
- 17. Обозначение Использования Переменных Просто переменная Const Константа, либо параметр для фукции с неизменяемым значением Attribute Обозначает
- 18. Обозначение Использования attribute Для декларации переменной, как вершинных данных Разрешено только в вершинном шейдере для чтения
- 19. Стандартные Вершинные Атрибуты в OpenGL attribute vec4 gl_Color; attribute vec4 gl_SecondaryColor; attribute vec3 gl_Normal; attribute vec4
- 20. Обозначение Использования uniform Неизменяемые внутри шейдера значения для чтения Заданные непосредственно программой через команды API либо
- 21. Обозначение Использования varying Интерполируемые данные между вершинным и фрагментным шейдером Вершинный шейдер просчитывает значение этих переменных
- 22. Переменные Вывода из Вершинного Шейдера vec4 gl_Position: homogenous позиция вершины – вывод обязателен float gl_PointSize: вершинный
- 23. Переменные Вывода из Фрагментного Шейдера vec4 gl_FragColor Цвет фрагмента, вывод обязателен float gl_FragDepth Значение глубины сцены
- 24. Конструкторы int(bool) – из Boolean в int int(float) – из float в int float(bool) - из
- 25. Доступ к Компонентам Поддерживаемые компоненты векторов: {x, y, z, w} - изпользуются при считывании позиций или
- 26. Вход в Шейдер Изпользуется функция main Она должна быть объявлена таким образом: void main(void) { ...
- 27. Flow Control Semantics If / else поддерживается if ( bool_expression) True expression else False expression Также
- 28. Jump Statements continue; break; return и return expression discard Только используется, когда нужно прекратить подсчет данных
- 29. Встроенные OpenGL Константы Можно использовать в вершинном и фрагментном шейдере const int gl_MaxLights = 8; -
- 30. Встроенное Состояние OpenGL Программа может задать OpenGL state, который может быть считан внутри шейдеров используя встроенные
- 32. Скачать презентацию