texm3x2depth — ps
Вычислите значение глубины, которое будет использоваться при тестировании глубины для этого пикселя.
Синтаксис
texm3x2depth dst, src |
---|
where
- dst — регистр назначения.
- src — это регистр источника.
Комментарии
Версии шейдера пикселей | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
texm3x2depth | x |
Эту инструкцию необходимо использовать с инструкцией texm3x2pad - ps .
При использовании этих двух инструкций регистры текстур должны использовать следующую последовательность.
tex t(n) // Define tn as a standard 3-vector.(tn must be
// defined in some way before it is used
texm3x2pad t(m), t(n) // Where m > n
// Calculate z value
texm3x2depth t(m+1), t(n) // Calculate w value; use both z and w to
// find depth
Вычисление глубины выполняется после использования операции точечных изделий для поиска z и w. Ниже приведены более подробные сведения о том, как выполняется вычисление глубины.
Инструкция texm3x2pad вычисляет z.
z = TextureCoordinates(stage m)UVW * t(n)RGB
Инструкция texm3x2depth вычисляет w.
w = TextureCoordinates(stage m+1)UVW * t(n)RGB
Вычислите глубину и сохраните результат в t(m+1).
if (w == 0)
t(m+1) = 1.0
else
t(m+1) = z/w
Вычисляемая глубина помечается для использования в тесте глубины для пикселя, заменяя существующее значение теста глубины для пикселя.
Обязательно зажимите z/w, чтобы находиться в диапазоне (0–1). Если z/w находится за пределами этого диапазона, результат, хранящийся в буфере глубины, будет неопределенным.
После выполнения texm3x2depth регистрация t(m+1) больше не доступна для использования в шейдере.
При использовании нескольких выборок использование этой инструкции исключает большую часть преимуществ буфера глубины с более высоким разрешением. Так как пиксельный шейдер выполняется один раз на пиксель, для каждого из тестов сравнения глубины будет использоваться одно значение глубины texm3x2depth или texdepth - ps .
Связанные темы