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

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

Урок3: Условные конструкции, циклы

Поддержка условных конструкций присутствует на всех видеокартах, поддерживающих шейдеры,
но реализована она разными способами. Ветвление (branching) доступно только начиная с
GF6xxx, до этого считались все ветви и затем результат отсекался с использованием
математических функций (например clamp). Разумеется, это снижало производительность.

Помимо стандартных операций сравнения ( <, <=, >=, >, ==, != ) в GLSL присутствуют
также операции сравнения векторов (lessThan, lessThanEqual, notEqual, ...), причем
они сравнивают покомпонентно и возвращают boolean-вектор с размерностью, равной
размерности сравниваемых векторов.

vec4 vec1 = vec4(1.0, 2.0, 2.0, 4.0);   
vec4 vec2 = vec4(4.0, 3.0, 2.0, 1.0);   
bvec4 vec3 = lessThanEqual(vec1, vec2);

Значение vec3 в приведенном примере стало равным {false, false, true, true}

Общий синтаксис условных конструкций и циклов реализован как в си.
Пример:

if(alpha>=0.2)
    alpha=dot(normal1,lightVec);
else if(alpha >0.1)
{
    alpha=0.05;
    b=true;
}
else
    alpha=0.0;

while (k>0.3)
{
    k-=delta;
    b+=0.7*dot(vec_a,vec3(vec_b,k));
}



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

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

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

Форма входа

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

Поиск