如何在Pixel Shader中访问先前着色的纹理?

时间:2010-05-17 16:10:14

标签: wpf shader pixel-shader

在WPF中,我想使用像素着色器来修改合成图像,即覆盖在先前阴影图像之上的新图像。除了有数据(想想数学函数 - 正弦波等)之外,新图像作为一个很大程度上透明的图像出现。无论如何,这个过程需要非常快速地重复 - 用新图像组合当前着色的纹理,然后对合成图像进行着色。问题是我不知道如何从我的着色器中访问以前着色的纹理。

1 个答案:

答案 0 :(得分:2)

基本上,您需要在着色器中添加Texture2D变量,然后将该参数设置为您在绘制新参数之前需要访问的纹理(我不确定WPF中的该过程)。你做这样的事情:

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

然后您可以通过tex2D调用对纹理进行采样。