【发布时间】:2014-02-13 03:18:58
【问题描述】:
我想知道使用 DirectX 11 清除 2D 纹理的最快/最高效的方法是什么?
上下文:我使用 RWTexture 对象作为头指针来在 GPU 上实现链表(本质上是为了实现从 AMD Tech Demo 得知的与顺序无关的透明度),我需要将此缓冲区重置为固定值每一帧。
我想到了以下想法:
- 将其声明为渲染目标并使用 ClearRenderTargetView 进行设置。对我来说似乎不自然,因为我实际上并没有直接渲染它,我也不确定它是否真的适用于 uint 数据类型
- 实际上将其映射为渲染目标并渲染全屏四边形,使用像素着色器设置值
- 使用计算着色器设置固定值
是否有一些我遗漏的明显方式或我不知道的 API?
【问题讨论】:
-
ClearUnorderedAccessViewUint和ClearUnorderedAccessViewFloat如果您需要清除更好更简单,最好的解决方案是不必清除。 -
哦,这正是我想要的。应该是我自己发现的,这有点尴尬。无论如何,非常感谢!
标签: c++ gpu directx-11