Array ( )
Вход:




Главная | OpenGL | GLSL | AI | Сеть | Примеры | Библиотека

GLSL: Коммуникация OGL-GLSL: Вступление






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

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

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

К счастью GLSL допускает обьявление пользовательских переменных, используемых для сообщения OpenGL с шейдером.
Благодаря этой простой возможности вы можете использовать для того же отсчета времени переменную,
названную "timeElapsed" или другим подходящим именем.

В этом контексте в GLSL имеется два определения переменных:
  • Uniform
  • Attribute

    Переменные, определённые в шейдере с использованием этих переменных, являются для шейдера read-only.
    В следующих разделах мы рассмотрим, когда и как используются эти типы переменных.







    Есть ещё один способ передавать данные шейдеру - текстуры. Текстуры не обязательно должны рассматриватся
    как изображения, они могут быть интерпретированы как массивы данных. Фактически, при использовании
    шейдеров вы и только вы решаете, как интерпретировать данные текстур, даже если это действительно
    изображение. В этих уроках мы не будем рассматривать передачу данных текстурами.









    Комментарии:

    Войдите, чтобы оставить комментарий:












  • Яндекс.Метрика
     Яндекс цитирования.