实时渲染后期处理效果

时间:2011-04-02 16:06:55

标签: opengl directx rendering

我对实时渲染后处理效果有疑问。

他们一般如何运作?即如何访问最终图片以便对其进行更改?

你把它渲染成纹理吗?如果是这样,你如何确保纹理适合你的屏幕尺寸?

谢谢!

1 个答案:

答案 0 :(得分:6)

基本工作流程:

  • 将场景渲染为渲染目标/纹理(屏幕大小,通常为相同格式)
  • 将渲染目标重置为另一个渲染目标/纹理或实际后备缓冲区
  • 设置像素着色器以进行后处理,将场景纹理绑定到采样器
  • 使用虚拟顶点着色器在场景上绘制全屏四边形

在后处理像素着色器中,如果您知道当前纹理元素的标准化x,y位置(由内插到像素着色器阶段的全屏四边形的纹理坐标给出),则对单个场景像素的访问非常简单。 / p>

许多后期处理效果需要多次传递到临时渲染目标。一个例子是臭名昭着的“绽放”效果:你拍摄场景纹理,减去暗部分,模糊并缩小剩余的图像(通常使用乒乓逻辑在多次传递中重复使用渲染目标)。最后的合成步骤只是添加了bloom纹理和原始场景。