Vulkan,多个对象的相同统一缓冲区?
Vulkan, same Uniform Buffer for multiple object?
我正在学习 Vulkan API,我遇到了一些 "problem":
目前我的程序能够使用投影-视图-模型矩阵变换在轴原点处绘制一个立方体:
我正在使用 3 images/imageViews/framebuffers,所以对于每个变换矩阵,我都有一个大小为 3 的向量来保存它们,并且一切正常(没有来自验证层的错误等)...问题是:
我现在想在我的立方体附近绘制另一个物体,所以我想我只需要每帧更新两次模型矩阵,第一次定位立方体,第二次定位另一个物体,但这不能工作是因为立方体在注册命令缓冲区时不会立即绘制,而是在提交时立即绘制,所以最后命令缓冲区将简单地对立方体和其他对象使用模型矩阵的第二次更新:
如何处理这种情况?
谢谢。
使统一缓冲区更大,将第二个矩阵放在第一个矩阵之后,并将第二个绘制指向统一缓冲区中的正确偏移量。
您可以使用单独的描述符或动态偏移量。
我正在学习 Vulkan API,我遇到了一些 "problem":
目前我的程序能够使用投影-视图-模型矩阵变换在轴原点处绘制一个立方体:
我正在使用 3 images/imageViews/framebuffers,所以对于每个变换矩阵,我都有一个大小为 3 的向量来保存它们,并且一切正常(没有来自验证层的错误等)...问题是:
我现在想在我的立方体附近绘制另一个物体,所以我想我只需要每帧更新两次模型矩阵,第一次定位立方体,第二次定位另一个物体,但这不能工作是因为立方体在注册命令缓冲区时不会立即绘制,而是在提交时立即绘制,所以最后命令缓冲区将简单地对立方体和其他对象使用模型矩阵的第二次更新:
如何处理这种情况?
谢谢。
使统一缓冲区更大,将第二个矩阵放在第一个矩阵之后,并将第二个绘制指向统一缓冲区中的正确偏移量。
您可以使用单独的描述符或动态偏移量。