# QMatrix4x4::lookAt() resulting in upside down camera

• I have a got a simple OpenGL program which sets up the camera as follows :
@
void
SimRenderer::render() {

``````glClearColor(0.5f, 0.5f, 0.7f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

glFrontFace(GL_CW);
glCullFace(GL_FRONT);
glEnable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);

QMatrix4x4 mMatrix;
QMatrix4x4 vMatrix;

QMatrix4x4 cameraTransformation;
cameraTransformation.rotate(mAlpha, 0, 1, 0); // mAlpha = 25
cameraTransformation.rotate(mBeta, 1, 0, 0);  // mBeta = 25

QVector3D cameraPosition = cameraTransformation * QVector3D(0, 0, mDistance);
QVector3D cameraUpDirection = cameraTransformation * QVector3D(0, 1, 0);

vMatrix.lookAt(cameraPosition, QVector3D(0, 0, 0), cameraUpDirection);

mProgram.bind();
mProgram.setUniformValue(mMatrixUniformLoc, mProjMatrix *  vMatrix * mMatrix );
``````

// render a grid....
}
@

But the result is an upside down camera !!

When I change the view matrix to be set up as:
QVector3D cameraUpDirection = cameraTransformation * QVector3D(0, -1, 0);

It works ! But why should I need to set my up direction as negative Y when my real up direction is positive Y ?

http://doc.qt.digia.com/qt-maemo/qmatrix4x4.html#lookAt