所以我开始学习OpenGL,并开始尝试用2D做一些事情。不幸的是,我似乎无法让转换正常工作。
这里有一些代码:
glm::mat4 Transform;
Transform = glm::scale(Transform, glm::vec3(2*(image.Size.x/renderTarget.Size.x),2 * (image.Size.y/renderTarget.Size.y), 1));
Transform = glm::translate(
Transform,
glm::vec3(2 * (Position.x / renderTarget.Size.x) - 1.0f,2 * (-Position.y / renderTarget.Size.y) + 1.0f,1)
);
glUniformMatrix4fv(uniTrans, 1, GL_FALSE, glm::value_ptr(Transform));
和我试图绘制的形状:
float verts[] = {
0.0f,0.0f,
1.0f,0.0f,,
1.0f,-1.0f,
0.0f,-1.0f
};
这一点是我将常规OpenGL坐标(中间为(0,0))转换为左上角的原点。不幸的是,缩放真的与位置混淆,移动它如果我关闭它然后位置工作正常,但我不知道为什么。