我正在考虑通过新的 D3DImage 将我拥有的一些 D3D 代码与 WPF 集成,如下所述 :
我的问题是:像素着色器在屏幕外表面上工作吗?
与直接渲染到后台缓冲区相比,渲染到屏幕外表面通常不受限制。将屏幕外表面与 D3DImage 一起使用的唯一限制是它必须是 32 位 RGB/ARGB 格式(取决于您的平台)。除此之外,硬件所提供的一切都由您随意支配。
事实上,大量着色器效果利用屏幕外表面进行多通道或全屏后期处理。
我不知道 WPF 是否有什么特别之处,但总的来说是的,像素着色器可以在屏幕外的表面上工作。
对于某些效果,需要渲染到不同的表面——例如,在着色器渲染的场景前进行玻璃折射。像素着色器无法访问当前屏幕内容,因此必须首先将视图渲染到缓冲区,然后将其用作折射着色器通道中的纹理,以便它可以从正在计算的像素之外的像素获取背景颜色。