gpt4 book ai didi

shader - HLSL : multi pass shader?

转载 作者:行者123 更新时间:2023-12-01 10:10:29 25 4
gpt4 key购买 nike

我正在编写一个着色器,对场景渲染的纹理产生模糊效果。
我需要在 2 遍中做到这一点,所以通过 P0 进行水平模糊,并在 P1 中进行垂直模糊。

问题是:

  • 我如何在 P0 channel 上获取 PS 的输出并在 P1 channel 上作为 PS 的输入发送?

  • 如果我在单遍中编写它,我会获得预期的结果,但我真的需要在 2 遍中完成。

    任何人都可以帮助我吗?

    是我第一次接触 HLSL。

    感谢大家!

    FOX_ITA

    最佳答案

    您通常在应用程序逻辑中的着色器代码之外执行此操作。

  • 获得足够大的渲染目标/可渲染纹理以保存 P0
  • 的结果
  • 启用目标,启用P0,运行第一遍
  • 获取另一个渲染目标来保存 P1 的结果。如果您正在进行全屏模糊并且不需要进一步的后处理,则这通常是后缓冲区。
  • 启用新的渲染目标
  • 将第一个渲染目标绑定(bind)到 P1
  • 可访问的纹理索引/插槽
  • 做第二遍

  • (当然,您不会每帧重新创建一次渲染目标。我宁愿使用渲染目标的中央池来满足所有后处理需求)。

    关于shader - HLSL : multi pass shader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5714438/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com