【发布时间】:2019-06-30 01:04:06
【问题描述】:
在 Vulkan 中,通过“视图”中包含的“指针式”元数据访问内存资源,该元数据描述了应如何解释内存资源。描述符是向着色器指定此内存将位于“位置”的数据。
在 DirectX 12 中,资源是“内存资源”的缩写(请参阅:https://www.3dgep.com/learning-directx12-1/)。资源视图是允许特定用途的资源的包装。例如,“着色器资源视图”(SRV)允许着色器访问资源,而“无序访问视图”类似于 SRV,除了它允许以任何顺序访问数据。
“恒定缓冲区视图”(CBV) 允许着色器访问比平常更持久/恒定的数据。 DirectX 12 文档似乎没有区分 CBV 和常量缓冲区。比如标题为"Constant Buffer View"的文章说:
常量缓冲区包含着色器常量数据。它们的价值在于数据是持久的,并且可以被任何 GPU 着色器访问,直到需要更改数据。
在任何地方都没有提到“视图”这个词,几乎就好像资源和资源视图之间没有区别。文档中发生这种情况的另一个地方是resource bindings 上的文章:
最常见的资源是:
- 恒定缓冲区视图 (CBV)
- 无序访问视图 (UAV)
- 着色器资源视图 (SRV)
- 采样器
在列出常见资源时,文章提到了资源视图,就好像它们是同一个东西一样。
资源和 DirectX 12 中的资源视图有什么区别?
【问题讨论】:
标签: directx-12