gpt4 book ai didi

vulkan - 什么是图形编程中的布局转换

转载 作者:行者123 更新时间:2023-12-01 23:05:26 26 4
gpt4 key购买 nike

我正在关注 vulkan-tutorial.com,在教程的图像部分,它提到了布局转换,但没有详细说明它们是什么。我不喜欢在不确切了解代码功能的情况下复制和粘贴代码,而且我在教程或谷歌上找不到足够的解释。

最佳答案

“布局转换”正是这些词的意思。这是当您将图像子资源的布局从一种布局转换为另一种布局时。所以您的问题似乎真的是……什么是布局?

在 Vulkan 抽象中,图像由子资源组成。这些代表图像的不同部分,可以独立于其他部分进行操作。例如,一个 mipmap 图像的每个 mipmap 级别都是一个子资源。

在 GPU 进程使用图像子资源的任何特定时间,该子资源都有一个布局。这是 GPU 操作的 Vulkan 抽象的一部分,因此它对 GPU 的确切含义因芯片而异。

重要的部分是:布局限制了您使用图像子资源的方式。或者更重要的是,为了以特定方式使用图像子资源,它必须位于允许该用法的布局中。

当子资源位于 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL 布局中时,您只能在着色器中执行从子资源读取的操作。着色器不能写入图像,图像也不能用作渲染目标。

现在,总体布局几乎允许在该布局内随时使用。然而,这也可能代表不太理想的性能。任何更受限制的布局都可以使对图像的访问更加性能友好(取决于硬件)。

因此,跟踪您计划使用的任何图像子资源的布局是您的工作。现在对于大多数图像,您将使用目标传输布局上传到它们,然后将它们保留为着色器只读,因为您通常不会更随意地使用大多数图像。所以一般来说,这意味着跟踪您想要读取的渲染目标,以及交换链图像(您必须在呈现它们之前将它们转换为当前布局)和存储图像。

布局转换通常作为两个操作之间显式依赖关系的一部分发生。这是有道理的;如果您要将数据上传到图像,稍后想从中读取数据,则需要在上传和读取之间建立依赖关系。您也可以进行布局转换,因为转换可以修改图像字节的存储方式,因此您需要先完成传输。

关于vulkan - 什么是图形编程中的布局转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70994254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com