【问题标题】:Most performant way to clear RWTexture2D清除 RWTexture2D 的最高效方法
【发布时间】:2014-02-13 03:18:58
【问题描述】:

我想知道使用 DirectX 11 清除 2D 纹理的最快/最高效的方法是什么?

上下文:我使用 RWTexture 对象作为头指针来在 GPU 上实现链表(本质上是为了实现从 AMD Tech Demo 得知的与顺序无关的透明度),我需要将此缓冲区重置为固定值每一帧。

我想到了以下想法:

  • 将其声明为渲染目标并使用 ClearRenderTargetView 进行设置。对我来说似乎不自然,因为我实际上并没有直接渲染它,我也不确定它是否真的适用于 uint 数据类型
  • 实际上将其映射为渲染目标并渲染全屏四边形,使用像素着色器设置值
  • 使用计算着色器设置固定值

是否有一些我遗漏的明显方式或我不知道的 API?

【问题讨论】:

  • ClearUnorderedAccessViewUintClearUnorderedAccessViewFloat 如果您需要清除更好更简单,最好的解决方案是不必清除。
  • 哦,这正是我想要的。应该是我自己发现的,这有点尴尬。无论如何,非常感谢!

标签: c++ gpu directx-11


【解决方案1】:

正如用户 galop1n 所指出的,ClearUnorderedAccessViewUintClearUnorderedAccessViewFloat 是这里的路。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-21
    • 2014-02-22
    • 2015-11-08
    • 2011-09-06
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多