2008-10-19 4 views
2

Я рассматриваю интеграцию некоторых D коды я с WPF с помощью нового D3DImage, как описано here:Можно ли использовать пиксельные шейдеры при рендеринге на внешнюю поверхность?

Моего вопроса заключается в следующем: Есть ли работу пиксельного шейдера на закадровых поверхностях?

ответ

6

Оказание на внеочередной поверхности, как правило, менее ограничено, чем визуализация непосредственно в задний буфер. Единственными ограничениями, которые приходят с использованием экранной поверхности с D3DImage, является то, что он должен быть в 32-битном формате RGB/ARGB (в зависимости от вашей платформы). Помимо этого, все, что может предложить оборудование, находится в вашем распоряжении.

На самом деле, тонны эффектов шейдера используют преимущества внеэкранных поверхностей для многопроходных или полноэкранных пост-обработки.

1

Я не знаю, есть ли что-то особенное в WPF, но в целом да, пиксельные шейдеры работают на зазеркальных поверхностях.

0

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