【问题标题】:Uniform texel buffer for Vulkan GLSLVulkan GLSL 的统一纹素缓冲区
【发布时间】:2018-03-23 21:17:40
【问题描述】:

我有一个浮点 RGBA 缓冲区,我想将它作为统一 Texel 缓冲区传递给我的计算着色器(用于没有采样的只读访问)。 谁能告诉我如何在 GLSL 中做到这一点?

我能找到的所有示例似乎都跳过了该主题,或者充其量只是名称薄弱。

【问题讨论】:

  • 仅供参考,如果您直接查看 vulkan 规范,则有示例。 samplerBuffer 用于统一纹素缓冲区,imageBuffer 用于存储纹素缓冲区。

标签: glsl vulkan


【解决方案1】:

Vulkan 称为“统一纹素缓冲区”的描述符类型代表一个概念,用 OpenGL 的说法,称为“buffer texture”。因此,GLSL 中正确的采样器类型是samplerBuffer

这个采样器的相应描述符当然应该使用VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER 类型。然而,由于 Vulkan 不同意 OpenGL 的概念,即这是某种纹理,描述符的数据是 VkBufferView,而不是 VkImageVkImageView。具体来说,VkWriteDescriptorSet::pTexelBufferView

【讨论】:

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