【问题标题】:What is the meaning of 'attachment' when speaking about the Vulkan API?谈到 Vulkan API 时,“附件”是什么意思?
【发布时间】:2018-03-05 04:07:24
【问题描述】:

关于 Vulkan API,“附件”是什么意思?我看到与渲染通道有关的词(即:颜色附件)。我对我认为它们是什么有一个模糊的概念,但想听听专家的定义。

我是第一次做图形编程,并决定从 Vulkan 开始直接跳入深渊。

【问题讨论】:

  • 我不是专家,但根据我对 OpenGL 的了解,您拥有称为 Framebuffers 的对象,其中可以包含您可以添加到其中的附件。例如,通常您在颜色附件上进行绘图,这通常是您的图像。其他附件通常是模板缓冲区和深度缓冲区。
  • 想听听专家的定义” Vulkan 规范有一个实际的词汇表,其中定义了这个特定的术语(以及其他术语)。
  • @Nicol Bolas:啊,好的 ole RTFM。我确实读过它,但描述不太清楚。它是这样说的:一个从零开始的整数索引名称,用于创建渲染通道,以引用一个或多个子通道访问的帧缓冲区附件。该索引还引用了附件描述,其中包含有关稍后将附加的图像视图属性的信息。

标签: vulkan


【解决方案1】:

要了解 Vulkan 中的附件,您首先需要了解渲染通道和子通道。

Render-pass 是对步骤的一般描述,您的绘图命令被划分为渲染期间使用的资源。如果没有渲染通道,我们无法在 Vulkan 中渲染任何东西。并且每个渲染通道必须有一个或多个步骤。这些步骤被称为,

子通道,每个子通道使用为渲染通道定义的(子)资源集合。渲染通道的资源可能包括渲染目标(颜色、深度/模板、解析)和输入数据(可能是相同渲染通道的先前子通道中的渲染目标的资源)。而这些资源被调用,

附件(它们不包括描述符/纹理/采样器和缓冲区)。

为什么我们不将它们称为渲染目标或图像? 因为我们不仅渲染到它们(输入附件),而且因为它们只是描述(元数据)。应该在渲染过程中用作附件的图像是通过帧缓冲区提供的。

所以,一般来说,我们可以称它们为图像,因为(据我所知)只有图像可以用于附件。但如果我们想完全正确:图像是特定的 Vulkan 资源,可用于多种用途(描述符/纹理、附件、暂存资源);附件是渲染过程中使用的资源的描述。

【讨论】:

  • 谢谢!我非常感谢您还解释了附件周围的概念。这不仅有助于解释执着本身,而且对其他概念也有一点提示。我一直在阅读 Vulkan 规范。这是一个写得很好的文档,但它有点假设读者已经熟悉 OpenGL。我们中的一些人完全是菜鸟!
  • 我一直在阅读 /r/vulkan,我看到你也在那里发帖。我希望你能坚持下去,因为你的文字很清晰,读起来很享受。你就像一个天生的老师,对我们这些图形新手来说是一个真正的资产。
  • @Dess 感谢您的客气话! :-) 我不能说我了解 Vulkan API 的每一个特性或方面。但是,如果其中有一些我很了解,并且如果有人需要帮助来理解它们,我会尽力解释它们。我是否做得好,我无法判断。但是,如果您这么认为 - 很高兴听到这个消息:-)。我必须说我喜欢帮助别人和向别人解释事情。可能这就是为什么当 PacktPub 询问我是否可以写一本“Vulkan Cookbook”时我同意的原因;-)。不过 - 祝您学习和理解 Vulkan API 好运!
【解决方案2】:

实际上有几种类型的附件。我将解释两个最常见的。

颜色/深度附件

您将图像写入其中。正如 Zebrafish 所说,它们允许您在其中绘制一些东西(通过 vkCmdDraw*)。您可以稍后阅读它们。它们是输出

输入附件:

顾名思义,这些被用作输入而不是输出。例如,假设您正在构建一个延迟渲染器,您将有多个子通道(简单来说是 2 个)。

您的第一个子通道将绘制到多个图像(您的 G_BUFFER):反照率/正常/深度。

完成此子通道后,您可以开始另一个子通道(照明通道)并进行照明计算,您需要为此通道提供一些输入(您的 G 缓冲区)。您将 G-Buffer 图像设置为输入附件。

输入附件和“采样器”有什么区别?输入附件是不可寻址的,你只能得到你正在处理的像素。它可能允许驱动程序进行一些优化,并且可以用作使用 Tiled GPU 优化渲染的临时附件(但这是另一个问题)。

【讨论】:

    猜你喜欢
    • 2019-04-12
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 2011-06-23
    • 2010-12-17
    • 2015-10-24
    • 1970-01-01
    • 2011-09-21
    相关资源
    最近更新 更多