0

我有一个不涉及 GLSL 的旧 OpenGL 项目,现在我重写它以使其使用 GLSL。我有一个功能,可以在您移动鼠标时围绕固定点旋转相机。我不确定如何在我的新项目中使用此功能,因为我使用的是 GLSL 而不是标准的 OpenGL 固定管道。

这就是函数,我不确定我是否可以使用相同的代码,或者我是否必须重写转换以使其适用于 GLSL?

void mouseMovePassive(int x, int y)
{
    static int oldX=x, oldY=y;

    rotateCamera(y-oldY, x-oldX);

    int centerX = glutGet( GLUT_WINDOW_WIDTH )/2;
    int centerY = glutGet( GLUT_WINDOW_HEIGHT )/2;
    if( abs(centerX-x) > 250 || abs(centerY-y) > 250 )
    {
        glutWarpPointer(centerX, centerY);
        oldX = centerX;
        oldY = centerY;
    }
    else
    {
        oldX = x;
        oldY = y;
    }
}
4

1 回答 1

2

据我所知,gluLookAt 适用于内置矩阵类型。对于 opengl 上的较新版本,您将需要重新编写它或使用第三方库。如果您使用的是 c++,我相信 glm 库已内置

于 2013-04-13T07:10:42.020 回答