我一直在关注(非常棒的)nvpro 光线追踪教程,并且对使用 CameraProperties 统一缓冲区的绑定方式有疑问layout(binding = 0, set = 1)
- 我理解绑定 = 0,但为什么设置 = 1?
教程中说“set = 1
来自以下事实:它是传递给的第二个描述符集pipelineLayoutCreateInfo.setPSetLayouts
“,但是当我看到HelloVulkan::createGraphicsPipeline()
我看到布局计数为一,这就是m_descSetLayout
使用(绑定相机统一缓冲区的内容)。我缺少什么?
本教程的相关部分是here https://nvpro-samples.github.io/vk_raytracing_tutorial_KHR/#camerasetup/raygeneration(raytrace.rgen).
Thanks!
参见第 7.1 章:
std::vector<vk::DescriptorSetLayout> rtDescSetLayouts = {m_rtDescSetLayout, m_descSetLayout};
pipelineLayoutCreateInfo.setSetLayoutCount(static_cast<uint32_t>(rtDescSetLayouts.size()));
pipelineLayoutCreateInfo.setPSetLayouts(rtDescSetLayouts.data());
管道布局包含两个描述符集布局,m_rtDescSetLayout
对于索引 0(设置 0)处的加速结构和m_descSetLayout
对于索引 1(集合 1)中的屏幕描述符。在 Vulkan 中,该集合是从管道布局创建信息中的描述符集布局索引自动派生的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)