【发布时间】:2020-02-22 10:06:18
【问题描述】:
所以我在处理vulkan坐标系的时候遇到了一些奇怪的事情。我习惯了opengl坐标系,所以当我在vulkan中创建视口时,我做到了
VkViewport viewport = {};
viewport.width = 800;
viewport.height = -600;
viewport.x = 0.0f;
viewport.y = 600;
viewport.minDepth = 0.0f;
viewport.maxDepth = 1.0f;
这样,我翻转了 y 轴,因此我假设 X 轴正向位于屏幕右侧,Y 轴正向位于屏幕上方,Z 轴正向指向屏幕。我对么? 但是当我用四个顶点画一个简单的正方形时,
(150, 50, 0.0), (50.0, 50, 0.0), (50.0, -50, 0.0), (150.0, -50, 0.0)
模型转换矩阵为单位,视图矩阵为
glm::lookAt(glm::vec3(0, 0, -500), glm::vec3(0, 0, 0), glm::vec3(0, 1, 0));
和投影矩阵
glm::perspective(glm::radians(45.0f), m_swapchainExtent.width / (float)m_swapchainExtent.height, 0.1f, 1000000.0f);
我得到了一个实际上在图像左侧的正方形。如何解释这一点,或者只是实际指向左侧的正 X 轴?
【问题讨论】: