我有一个不涉及 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;
}
}