ILearnVulkanFromScratch-CN
ILearnVulkanFromScratch-CN copied to clipboard
想对Vulkan Toturial中使用了与SwapChain个数一致的Fence进行提问
在观察教程的过程中发现作者使用了与SwapChain个数一致的Fence,这样的优势是在渲染过程中不必等待上一帧渲染结束就可以开始递交下一帧的数据,但以此为代价需要申请与SwapChain数量为倍数的UBO,并且在部分postprocess中无法使用sub pass的情况下需要额外申请SwapChain数量为倍数的FrameBuffer,内存需求大大扩大,感觉弊端比优势更大?想提问下有没有更优的解决方案呢?
首先关于内存需求大大扩大的观点只是误区,通常我们的UBO在渲染的时候是非常的小的,如果非常大的话,您需要考虑使用其他方式实现,而FrameBuffer在vulkan的规范中有一句比较明确的指名:“The specific image views that will be used for the attachments, and their dimensions, are specified in VkFramebuffer objects.”说明framebuffer其实并不是很占用内存.
在观察教程的过程中发现作者使用了与SwapChain个数一致的Fence,这样的优势是在渲染过程中不必等待上一帧渲染结束就可以开始递交下一帧的数据,但以此为代价需要申请与SwapChain数量为倍数的UBO,并且在部分postprocess中无法使用sub pass的情况下需要额外申请SwapChain数量为倍数的FrameBuffer,内存需求大大扩大,感觉弊端比优势更大?想提问下有没有更优的解决方案呢?