Можно ли использовать пиксельные шейдеры при рендеринге на поверхность вне экрана?

StackOverflow https://stackoverflow.com/questions/216899

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top