Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Регистр глубины вывода шейдера пикселей (oDepth) — это скалярный регистр только для записи с диапазоном [0..1], который возвращает новое значение глубины для теста глубины в буфере элементов глубины.
Синтаксис
oDepth |
---|
Где:
Имя | Описание |
---|---|
oDepth | Новое значение глубины для теста глубины в буфере элементов глубины |
Важно знать, что запись в oDepth приводит к потере любых алгоритмов оптимизации буфера глубины (т. е. иерархической Z), которые ускоряют производительность теста глубины.
Репликация исходного swizzle (.x | .y | .z | .w) требуется при записи в oDepth. Явные маски записи не допускаются.
Запись в регистр oDepth заменяет интерполированное значение глубины (и игнорирует любые данные предвзятости глубины или отрисовки шкалы наклона). Если буфер глубины не был создан или подключен к устройству, запись в oDepth игнорируется.
Если вы используете многосамплинг и записываете данные в oDepth, так как шейдер пикселей выполняется только один раз на пиксель, значение глубины реплицируется для всех вложенных расположений. Тест глубины по-прежнему происходит на выборку, но у вас нет значения глубины на выборку, которое будет сравниваться с шейдером пикселей, как если бы вы не написали oDepth.
Если приложение имеет w-buffer set в качестве буфера глубины, необходимо учитывать это при записи в oDepth. Возможно, он должен отправлять сведения о диапазоне w-range в шейдер пикселей и вычислять диапазон w-range, чтобы масштабировать значения w-, записанные в oDepth.
ограничения ps_2_0 и ps_2_x
- oDepth можно записать только с помощью инструкции mov - ps инструкции и можно выполнить только один раз.
- При записи в oDepth не допускается модификатор источника.
- Модификатор инструкций не допускается при записи в oDepth.
- Запись в oDepth из конструкции элемента управления потоком или при использовании предиката не выполняется.
Ограничения ps_3_0
- Для ps_3_0 выходные регистры oC# и oD# можно записывать любое количество раз. Выходные данные шейдера пикселей поступают из содержимого выходных регистров в конце выполнения шейдера. Если запись в выходной регистр не происходит, возможно, из-за управления потоком или если шейдер просто не написал его, соответствующий целевой объект отрисовки также не обновляется. Если подмножество каналов в выходном регистре записывается, то неопределенные значения записываются в оставшиеся каналы.
- Вы можете записать в oDepth в элементе управления потоками или предикатах до тех пор, пока все возможные пути в конечном итоге записываются в регистр.
- Вы не можете выполнять никаких вычислений градиента (или операций, которые неявно вызывают вычисления градиента, такие как texld - ps_2_0 и вверх, texldb - ps, texldp - ps) внутри операторов управления потоками, условия ветвления которых зависят от каждой примитивной основы (т. е. инструкции динамического управления потоком). Предикация инструкций не считается динамическим элементом управления потоком.
Связанные разделы