Введение в программирование трехмерных игр с DX9




Встроенные функции


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

ПРИМЕЧАНИЕ

Если в дальнейшем вам понадобится более подробная информация, полный список встроенных функций HLSL вы найдете в документации DirectX, перейдя на вкладку Contents и выбрав пункт DirectX Graphics\Reference\Shader Reference\High Level Shader Language\Intrinsic Functions.

Функция Описание
abs(x) Возвращает |x|.
ceil(x) Возвращает наименьшее целое, которое больше или равно x.
clamp(x, a, b) Ограничивает x в диапазоне [a, b] и возвращает результат. Если x меньше a возвращается a, если x больше b, возвращается b, в остальных случаях возвращается x.
cos(x) Возвращает косинус x, x — в радианах.
cross(u, v) Возвращает u × v.
degrees(x) Преобразует x из радиан в градусы.
determinant(M) Возвращает детерминант матрицы det(M).
distance(u, v) Возвращает расстояние |v – u| между точкам u и v.
dot(u, v) Возвращает u Ч v.
floor(x) Возвращает наибольшее целое, которое меньше или равно x.
length(v) Возвращает |v|.
lerp(u, v, t) Линейная интерполяция между u и v на основании параметра t, находящегося в диапазоне [0, 1].
log(x) Возвращает ln(x).
log10(x) Возвращает log10(x).
log2(x) Возвращает log2(x).
max(x, y) Возвращает x если x ≥ y, иначе возвращает y.
min(x, y) Возвращает x если x ≤ y, иначе возвращает y.
mul(M, N) Возвращает произведение матриц MN. Обратите внимание, что произведение матриц MN должно быть определено. Если M это вектор, он используется как вектор-строка, чтобы было определено произведение вектора на матрицу. Точно так же, если N это вектор, то он используется как вектор-столбец, чтобы было определено произведение матрицы на вектор.
normalize(v) Возвращает v/|v|.
pow(b, n) Возвращает bn.
radians(x) Преобразует x из градусов в радианы.
reflect(v, n) Вычисляет вектор отражения по исходному вектору v и нормали поверхности n.
refract(v, n, eta) Вычисляет вектор преломления по исходному вектору v, нормали поверхности n и отношению коэффициентов преломления двух материалов eta. Чтобы получить дополнительные сведения о преломлении, посмотрите закон Снеллиуса в учебнике физики.
rsqrt(x) Возвращает 1/√x.
saturate(x) Возвращает clamp(x, 0.0, 1.0).
sin(x) Возвращает синус x, x в радианах.
sincos(in x, out s, out c) Возвращает синус и косинус x, x в радианах.
sqrt(x) Возвращает √x.
tan(x) Возвращает тангенс x, x в радианах.
transpose(M) Возвращает транспонированную матрицу MT.
<


Содержание  Назад  Вперед