У меня был старый проект OpenGL, который не включал GLSL, а теперь Я переписываю его так, чтобы он использовал GLSL. У меня есть функция, которая вращает камеру вокруг неподвижной точки при перемещении мыши. Я не уверен как использовать эту функцию в моем новом проекте, теперь, когда я использую GLSL и , не является стандартным конвейером OpenGL.Можно ли использовать код преобразования, связанный с GLSL?
Это функция, и я не уверен, могу ли я использовать тот же код или мне придется переписать преобразования так, чтобы он работал для 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;
}
}
Интересной функцией будет 'rotateCamera' не ваш обработчик событий ввода. Отправьте исходный код этого. Сейчас мы не можем вам помочь, из-за отсутствия информации. – datenwolf
Здесь недостаточно информации, чтобы иметь возможность ответить на этот вопрос. Мы можем только догадываться о том, что на самом деле выполняют эти функции. –
Привет, ребята. Кодекс выглядит глубже, слишком много, чтобы вас беспокоить, но, в конце концов, он переходит к вызову gluLookAt. Итак, я думаю, теперь мой реальный вопрос: что мне делать с этим вызовом gluLookAt, как мне переписать такой вызов в GLSL. Можно ли его повторно использовать? – user2225930