git-svn-id: svn://db.shs.com.ru/libs@703 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -115,13 +115,17 @@ void RendererBase::setUniformViewCorners(QOpenGLShaderProgram * prog, Camera * c
|
||||
h = viewport.height();
|
||||
}
|
||||
QMatrix4x4 mproji = cam->projectionMatrix(w / h).inverted();
|
||||
QVector4D corner_dirs[4];
|
||||
QMatrix4x4 mviewi = cam->viewMatrix().inverted();
|
||||
QVector4D corner_dirs[4], world_dirs[4];
|
||||
corner_dirs[0] = (mproji * QVector4D(-1, -1, 0, 1));
|
||||
corner_dirs[1] = (mproji * QVector4D(-1, 1, 0, 1));
|
||||
corner_dirs[2] = (mproji * QVector4D( 1, 1, 0, 1));
|
||||
corner_dirs[3] = (mproji * QVector4D( 1, -1, 0, 1));
|
||||
for (int i = 0; i < 4; ++i)
|
||||
for (int i = 0; i < 4; ++i) {
|
||||
world_dirs[i] = mviewi.mapVector(corner_dirs[i].toVector3D());
|
||||
prog->setUniformValue(QString("view_corners[%1]").arg(i).toLatin1().constData(), corner_dirs[i]);
|
||||
prog->setUniformValue(QString("world_corners[%1]").arg(i).toLatin1().constData(), world_dirs[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user