Как получить доступ к ранее затененной текстуре в пиксельном шейдере? - PullRequest
4 голосов
/ 17 мая 2010

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

1 Ответ

2 голосов
/ 21 июля 2010

По сути, вам нужно добавить переменную Texture2D в свой шейдер, а затем установить этот параметр в качестве текстуры, к которой вы хотите получить доступ, прежде чем рисовать новую (я не уверен в этом процессе в WPF). Вы делаете что-то вроде этого:

//blahblahblah variables here
Texture2D PreviousTexture;
Sampler PreviousTextureSampler = Sampler2D { Texture = PreviousTexture; };
//blahblahblah code here

тогда вы можете сэмплировать текстуру с помощью вызова tex2D.

...