同一 Vulkan 子通道的多个实例
Multiple instances of same Vulkan subpass
我已经阅读了许多关于创建 Vulkan 渲染器的在线教程,但是,子通道的概念对我来说仍然很不清楚。
假设我有以下场景:我需要为设置做第一个子通道(填充深度缓冲区以进行测试等),然后为场景中的每个光都有一个子通道(其数量随时可能变化) ).因为每个照明子通道完全相同,是否可以声明 2 个子通道并具有相同子通道的多个实例?
这里的"pass"不是指"full-screen pass"之类的意思。子通道仅在您要渲染的内容(以及从以前的子通道渲染中读取作为输入附件)方面才重要。你的数据从哪里来(descriptors/push 常量),他们得到什么顶点数据,他们使用什么着色器,none 这些对子通道很重要。子通道控件唯一的东西是渲染目标。
因此,除非不同的灯光渲染不同的图像,否则没有理由为每个灯光提供一个子通道。您只需为同一个子通道内的所有灯光发出渲染命令。
我已经阅读了许多关于创建 Vulkan 渲染器的在线教程,但是,子通道的概念对我来说仍然很不清楚。
假设我有以下场景:我需要为设置做第一个子通道(填充深度缓冲区以进行测试等),然后为场景中的每个光都有一个子通道(其数量随时可能变化) ).因为每个照明子通道完全相同,是否可以声明 2 个子通道并具有相同子通道的多个实例?
这里的"pass"不是指"full-screen pass"之类的意思。子通道仅在您要渲染的内容(以及从以前的子通道渲染中读取作为输入附件)方面才重要。你的数据从哪里来(descriptors/push 常量),他们得到什么顶点数据,他们使用什么着色器,none 这些对子通道很重要。子通道控件唯一的东西是渲染目标。
因此,除非不同的灯光渲染不同的图像,否则没有理由为每个灯光提供一个子通道。您只需为同一个子通道内的所有灯光发出渲染命令。