【问题标题】:how to get soft particle effect using direct3d 11 api如何使用direct3d 11 api获得柔和的粒子效果
【发布时间】:2022-10-25 19:58:24
【问题描述】:

我尝试了所有计算粒子alpha的方法,并将shaderResource设置为绘制过程,在renderdoc中,screenDepthTexture总是没有Resource。

【问题讨论】:

    标签: game-engine direct3d direct3d11


    【解决方案1】:

    您可能正在尝试在管道的两个阶段同时使用相同的深度缓冲区纹理:读取像素着色器以计算柔度,并在输出合并阶段使用相同的纹理作为深度渲染目标。

    这是行不通的。当您调用OMSetRenderTargets 时,该纹理的资源视图的像素着色器绑定未设置。

    一个简单的解决方法是使用CopyResource 复制您的深度纹理,这样您的像素着色器可以从那里读取,而输出合并使用与深度/模板目标相同的纹理。

    将来,要解决此类问题,请在创建设备时使用D3D11_CREATE_DEVICE_DEBUG 标志,并在 Visual Studio 中读取调试输出。 RenderDoc 对于更高级别的错误非常棒,当您渲染某些东西但它看起来不正确时。您的错误是不正确地使用 D3D API。对于此类事情,Windows SDK 中的调试层比 RenderDoc 更有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      相关资源
      最近更新 更多