结束左手坐标系OpenGL,但我需要右手

时间:2016-08-29 18:45:34

标签: c++ opengl 3d coordinate-systems perspectivecamera

所以我开始制作自己的引擎,让我的Z轴指向远离我的相机。我不知道为什么会这样,我几乎跟着you can see from the code it has a getData() public method

我会发布我的相机的 persprojection 查看计算,请评论我应该发布的其他代码,我会更新我的帖子。

PersProjection

Matrix4x4f Camera::getViewProjection() {
Matrix4x4f cameraRotationTrans(MatrixType::IDENTITY);

Vector3f N = target;
N.normalize();
Vector3f U = up;
U.normalize();
U = U.cross(target);
Vector3f V = N.cross(U);

cameraRotationTrans.setRow(0, Vector4f(U, 0));
cameraRotationTrans.setRow(1, Vector4f(V, 0));
cameraRotationTrans.setRow(2, Vector4f(N, 1));

Matrix4x4f cameraTranslationTrans(MatrixType::IDENTITY);
cameraTranslationTrans.setCol(3, Vector4f(-position, 1));

return perspectiveTrans * cameraRotationTrans * cameraTranslationTrans;
}

查看投影计算

scrapy crawl <spider_name> -o filename.csv

1 个答案:

答案 0 :(得分:0)

您在此表达式中错过了减号:

perspectiveTrans(2, 3) = (2.0f * nearZ * farZ) / -(nearZ - farZ);

如果在glFrustum的文档中查找相应的矩阵元素,则此矩阵元素为:

- (2 * far * near / (far - near)

在你的表示法中,即:

perspectiveTrans(2, 3) = (-2.0f * nearZ * farZ) / -(nearZ - farZ);