nrm — vs
Нормализация трехмерного вектора.
Синтаксис
nrm dst, src |
---|
where
- dst — это регистр назначения.
- src — это регистр источника.
Комментарии
Версии вершинного шейдера | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
nrm | x | x | x | x | x |
Эта инструкция работает концептуально, как показано здесь.
squareRootOfTheSum = (src0.x*src0.x + src0.y*src0.y + src0.z*src0.z)1/2;
dest.x = src0.x * (1 / squareRootOfTheSum);
dest.y = src0.y * (1 / squareRootOfTheSum);
dest.z = src0.z * (1 / squareRootOfTheSum);
dest.w = src0.w * (1 / squareRootOfTheSum);
Регистры dest и src не могут быть одинаковыми. Регистр dest должен быть временным регистром.
Эта инструкция выполняет линейную интерполяцию на основе следующей формулы.
float f = src0.x*src0.x + src0.y*src0.y + src0.z*src0.z;
if (f != 0)
f = (float)(1/sqrt(f));
else
f = FLT_MAX;
dest.x = src0.x*f;
dest.y = src0.y*f;
dest.z = src0.z*f;
dest.w = src0.w*f;
Связанные темы