谁能帮助我找到资源来研究如何使用Windows平台上的Vulkan API来实现转换功能(转换,旋转&缩放(?据我所知,Vulkan的来源非常有限,我找不到有关Vulkan转型的单一材料。
如果您正在寻找源代码,则Vulkan食谱的代码样本实现了这些转换中的每一个(转换,旋转和缩放(。
如果您正在寻找一种解释为什么以这样的方式实现它们,则可以寻找描述这些转换的任何资源。不管您使用的是什么API,翻译,旋转和缩放的表现都完全相同。这是纯线性代数。由于使用了不同的坐标系而导致的投影矩阵存在差异(Vulkan在[0; 1]范围内具有深度,而在[-1; 1]范围内的OpenGL;沿Y轴倒置框架空间(。但是,当您独自构造它们时,相同的方法适用,您只需要考虑这些不同的协调系统。
我遇到的最佳资源描述了为什么以这种方式创建矩阵的是Frank D. Luna对3D游戏编程的介绍。
如果您正在寻找类似于 glTranslatef
, glScalef
和 glRotatef
等等的东西,那么您不幸。在Vulkan(或现代OpenGL中(,没有类似的东西。借助现代渲染API,您可以使用自己首选的库在CPU侧管理转换(视图,模型,投影((我使用并推荐GLM(。转换使用统一块传递给着色器,通常为MAT4值,然后可以将它们用于转换输入顶点。
如果您要问我们如何自己实施它们,则必须研究一些线性代数来执行此操作。以前的答案回答了这个。
如果不是,我建议使用GLM。它是最初为OpenGL编写的库,因此使用时必须小心。轴翻转,请记住。