Можно ли использовать пиксельные шейдеры при рендеринге на поверхность вне экрана? - PullRequest
2 голосов
/ 20 октября 2008

Я рассматриваю интеграцию некоторого кода D3D, который у меня есть, с WPF через новый D3DImage, как описано здесь:

У меня такой вопрос: работает ли пиксельный шейдер на внеэкранных поверхностях?

Ответы [ 3 ]

6 голосов
/ 07 ноября 2008

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

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

1 голос
/ 20 октября 2008

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

0 голосов
/ 06 июня 2009

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

...