Главная » Статьи » » -=Програмирование=-

Уроки по програмированию в С+ OpenGL_GLSL часть четвёртая.
\-Базовые знания
    \- Шейдеры
        \-Урок4: Аппаратные uniform-переменные и мат.функции

Урок4: Аппаратные uniform-переменные и мат.функции

Подробно можно прочитать здесь http://opengl.org/documentation/glsl/
скачав .pdf спецификацию

Я приведу лишь самый основной список (наиболее часто используемые):

функции тригонометрии (типа float, с одним аргументом типа float):
radians(),degrees(),sin(),cos(),tan(),asin(),acos(),atan()

Степенные функции:
float pow(float a,float b); //возводит a в степень b
float exp(float); //экспонента
float log(float); //логарифм
float sqrt(float);//корень
float inversesqrt(float); //единица деленная на корень

функция обрезания переменной a от значения from до to:
float clamp(float a, float from float to)

функции min/max выбирают из двух float-переменных меньшее/большее
float minimum=min(0.5,a);

Абсолютное значение числа:
float abs(float)

uniform-переменные, заранее заданные в GLSL(сильно сокращенный список):

Вершинный шейдер:

gl_Color        цвет (атрибут вершины)
gl_Normal        нормаль (атрибут вершины)
gl_Vertex        позиция (атрибут вершины)
gl_MultiTexCoord{ 0..7 } координата текстуры  (атрибут вершины)
gl_ModelViewMatrix     Матрица объектов
gl_ProjectionMatrix    Матрица проекции
gl_ModelViewProjectionMatrix    Произведение этих матриц
gl_NormalMatrix        Матрица нормалей
gl_TextureMatrix{ 0..8 }    Матрица трансформации текстуры
gl_Fog            Значение тумана
gl_FogCoord        Координата тумана
gl_FrontColor    Цвета лицевых и задних граней, ShaderModel 3
gl_BackColor
gl_FrontSecondaryColor
gl_BackSecondaryColor
gl_FrontFacing        Лицевая(true) или задняя(false) грань, ShaderModel 3

gl_Position    В эту переменную записывается координата после обработки вершинным шейдером
        которая затем передается на отрисовку вершины

gl_TexCoord    В эту переменную записывается координата текстуры после обработки вершинным
        шейдером которая затем передается в пиксельный шейдер

Пиксельный шейдер:

gl_TexCoord        координата текстуры (после обработки вершинным шейдером)

gl_FragColor    В эту переменную записывается цвет фрагмента после обработки шейдера,
        собственно это конечный цвет пикселя


и некоторые константы:
gl_MaxLights    максимальное количество источников освещения
gl_MaxTextureUnits максимальное количество текстур
gl_MaxVertexTextureUnitsGL2 максимальное количество текстур в вершинном шейдере
gl_MaxFragmentTextureUnitsGL2 максимальное количество текстур во фрагментном шейдере

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



Источник:
Категория: -=Програмирование=- | Добавил: spirit (15.08.2008) | Автор:
Просмотров: 886 | Комментарии: 0 | Рейтинг: 0.0/0 |

Всего комментариев: 0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Форма входа

Категории каталога
-=SEO=- [8]
Раскрутка сайта в поисковиках
-=Дизайн=- [3]
Статьи по дизайну
-=CMS=- [3]
Статьи по работе с CMS
-=Програмирование=- [7]
Статьи по WEB и OS програмированию

Поиск