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

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

Все перечисленные далее функции выполняются покомпонентно (табл. 5.1).

Таблица 5.1. Угловые и тригонометрические функции

Синтаксис

Описание

float radians (float degrees)

Переводит градусы в радианы и возвращает результат,

vec2 radians (vec2 degrees)

а именно: result = тс/180 degrees

vec3 radians (vec3 degrees)
vec4 radians (vec4 degrees)
float degrees (float radians)

Переводит радианы в градусы и возвращает результат,

vec2 degrees (vec2 radians)

а именно: result = 180/ti radians

vec3 degrees (vec3 radians)
vec4 degrees (vec4 radians)
float sin (float radians)

Стандартная тригонометрическая функция синуса.

vec2 sin (vec2 radians)

Значение, которое возвращает эта функция,

vec3 sin (vec3 radians)

находится в диапазоне [-1,1]

vec4 sin (vec4 radians)
float cos (float radians)

Стандартная тригонометрическая функция косинуса.

vec2 cos (vec2 radians)

Значение, которое возвращает эта функция,

vec3 cos (vec3 radians)

находится в диапазоне [-1,1]

vec4 cos (vec4 radians)
float tan (float radians)

Стандартная тригонометрическая функция тангенса

vec2 tan (vec2 radians)
vec3 tan (vec3 radians)
vec4 tan (vec4 radians)
float asin (float x)

Арксинус. Возвращает угол, синус которого равен х.

vec2 asin (vec2 x)

Диапазон возвращаемых значений [-л/2, л/2].

vec3 asin (vec3 x)

При | х | > 1 результаты не определены

vec4 asin (vec4 x)
float acos (float x)

Арккосинус. Возвращает угол, косинус которого равен х.

vec2 acos (vec2 x)

Диапазон возвращаемых значений [0, я]. При | х \ > 1

vec3 acos (vec3 x)

результаты не определены

yec4 acos (vec4 x)

5(2; Экспоненциальные функции


⇐ Предыдущая| |Следующая ⇒