我一直在阅读许多关于创建Vulkan渲染器的在线教程,但是,对于我来说,子通道的想法仍然不明确。
假设我有以下情况:我需要为设置做第一个子通道(填充深度缓冲区以进行测试等),然后为场景中的每个灯光都有一个子通道(其数量可以随时改变)。因为每个照明子通道完全相同,是否可以声明2个子通道并具有相同子通道的多个实例?
答案 0 :(得分:1)
术语"传递"这并不意味着"全屏传递"或类似的东西。子视图仅与您要渲染的内容有关(并且从先前的子通道渲染中读取作为输入附件)。您的数据来自(描述符/推送常量),它们获得的顶点数据,它们使用的着色器,对子通道都不重要。子通道控制的唯一内容是渲染目标。
因此,除非不同的灯光渲染到不同的图像,否则没有理由给每个灯光一个子通道。您只需为同一个子通道中的所有灯发出渲染命令。