如何制作目标相机?

时间:2016-02-25 13:14:00

标签: c++ qt opengl graphics

我想制作像DCC工具一样的目标相机(maya,houdini等......)。事情没有按计划进行。我试过了,但是徒劳无功。 请告诉我该怎么做。

void GLWidget::mouseMoveEvent(QMouseEvent *event)
{
    const int dx = event->x() - _lastPosition.x();
    const int dy = event->y() - _lastPosition.y();

    if (event->buttons() & Qt::LeftButton)
    {
        QQuaternion q1(QQuaternion::fromAxisAndAngle(_viewCamera->getUpVector(), dx));
        _viewCamera->setQuat((_viewCamera->getQuat() * q1));
        _viewCamera->setTranslation(q1 * _viewCamera->getTranslation());
        QQuaternion q2(QQuaternion::fromAxisAndAngle(_viewCamera->getRightVector(), dy));
        _viewCamera->setQuat((_viewCamera->getQuat() * q2));
        _viewCamera->setTranslation(q2 * _viewCamera->getTranslation());
    }
}

相机有变换。

struct Transform
{
protected:
    QVector3        _translation;
    QQuaternion     _rotation;
    QVector3        _scale;
}

0 个答案:

没有答案