vec3 V. и; float f: v = u + f : будет эквивалентна операции

v,x = u.x + f: v.y - u.y + f: v.z = u.z + f:

A операция

vec3 v. u, w; W - v + u:

будет эквивалентна операции

w.x = V.x + U.x; w.y = v.y + u.y; W.z - v.z + u.z;

Если над вектором и скалярным числом производится бинарная операция, число используется для каждого компонента вектора. Если операция выполняется, над двумя векторами, их размеры должны совпадать. Исключение - умножение вектора на матрицу или матрицы на вектор, где выполняется математическое, а не покомпонентное умножение.

Операторы приращения, уменьшения и унарного отрицания в языке тендеров OpenGL такие же, как в С. Примененные к вектору или матрице, они выполняются над каждым компонентом по отдельности. Эти операторы выполняются над целыми или числами с плавающей запятой.

Арифметические операторы сложения (+), вычитания (-), умножения (*) и деления (/) здесь такие же, как в С, или покомпонентные, за исключением случаев математического умножения векторов и матриц:

vec4 v. u: mat4 m;

v * u: // Покомпонентное умножение

v * m; // Математическое умножение строки-вектора на матрицу

m * v; // Математическое умножение матрицы на столбец-вектор

m * m; // Математическое умножение матрицы на матрицу

Все остальные операции выполняются покомпонентно.

Логическое «НЕТ» (!), логическое «И» (&&), логическое «ИЛИ» (| |) и логическое «исключающее ИЛИ» (лл) применяются только для операндов логического типа, результат их выполнения - тоже логического типа. Эти операции не могут выполняться над векторами. Существует встроенная функция not для выполнения операции покомпонентного логического «НЕТ» над векторами из булевых значений.

Операции отношений (<, >, <- и >=) выполняются только над целыми числами и числами с плавающей запятой, результатом их выполнения являются значения

4 Зак. 218

Определение языка

логического типа. Существуют встроенные функции, например lessThanEqual, которые возвращают вектор логических значений как результат покомпонентного сравнения двух векторов.


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