rsq — vs
Вычисляет обратный квадратный корень (только положительный) скалярного источника.
Синтаксис
rsq dst, src |
---|
where
- dst — это регистр назначения.
- src — это регистр источника. Регистр источника требует явного использования swizzle репликации, то есть должен быть указан только один из эквивалентов .x, .y, .z, .w (или .r, .g, .b, .a эквивалентов).
Комментарии
Версии вершинного шейдера | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
rsq | x | x | x | x | x | x |
В следующем фрагменте кода показаны выполненные операции.
float f = abs(src0);
if (f == 0)
f = FLT_MAX
else
{
if (f != 1.0)
f = 1.0/(float)sqrt(f);
}
dest.z = dest.y = dest.z = dest.w = f;
Абсолютное значение принимается перед обработкой.
Точность должна быть не менее 1,0/(2²²) абсолютной погрешности в диапазоне (1,0, 4,0), так как общие реализации разделяют мантиссу и экспоненту.
Если в источнике нет индексов, используется компонент x. Выходные данные должны быть ровно 1,0, если входные данные точно равно 1,0. Источник 0,0 дает бесконечность.
Связанные темы