【发布时间】:2021-10-11 23:51:25
【问题描述】:
所以我使用着色器在 OpenGL 中绘制一个到目前为止看起来像这样的 2D 场景
为了得到这个图像,我有一个相机,我在着色器中使用它来乘以顶点的坐标。
相机代码:
glm::mat4 projection =
glm::perspective(glm::radians(45.0f), app.aspectRatio, 0.0f, 100.0f);
glm::vec3 camera = glm::vec3(0.0f, 0.0f, -2.0f);
glm::mat4 uCameraView = glm::translate(world.projection, world.camera);
着色器代码:
#version 330 core
layout(location = 0) in vec2 vPosition;
layout(std140) uniform ubo
{
mat4 uCameraView;
};
void main()
{
gl_Position = uCameraView * vec4(vPosition.x, vPosition.y, 0.0f, 1.0f);
}
如果我在着色器中乘以 -1 vPosition.y,我会得到以下图像,这就是我想要的结果
能否以某种方式将此“镜像翻转转换”应用于glm::mat4 uCameraView,以避免在每个着色器上都执行此操作?
【问题讨论】: