#visual-c #opengl #glut
#visual-c #opengl #перенасыщение
Вопрос:
Я новичок в opengl и Visual c . Я создал пример приложения, которое вращает 3D-фигуры в opengl. Я хочу разрешить пользователю поворачивать и масштабировать объект. Пожалуйста, приведите мне пример того, как это сделать.
Я попробовал новое руководство:http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=48
Я не могу понять структуру классов в примере. Есть ли какой-либо простой способ добиться этого?
Я также нашел библиотеку:http://www.nigels.com/glt/gltzpr
Но все еще не могу понять, как это сделать. Пожалуйста, помогите мне.
Ответ №1:
Масштабирование обычно выполняется с помощью gluLookAt. Третий параметр — это расстояние просмотра. Вот некоторый базовый пример выполнения этого :
http://graphics.stanford.edu/courses/cs248-01/OpenGLHelpSession/code_example.html
Посмотрите в display (), чтобы увидеть, как используется расстояние просмотра, и в MouseMotion (), чтобы увидеть, как изменяется значение и обновляется рисунок.
Комментарии:
1. Большое спасибо за ответ, Джоэл. Но я не могу запустить этот пример.
2. о, возможно, это немного устарело. Посмотрите документ для gluLookAt
3. ОК. Я буду. Спасибо. Есть ли способ разрешить пользователю поворачивать объект? Я еще не получил ни одного примера. Пожалуйста, покажите мне один.
4. Взгляните на новые руководства по OpenGL: nehe.gamedev.net/data/lessons/lesson.asp?lesson=10
5. @Joel Falcou: gluLookAt определяет точку обзора, то есть вы перемещаетесь по камере с ее помощью. В реальной камере фокусное расстояние изменяется при масштабировании; это напрямую влияет на поле зрения gluPerspective или при постоянных ограничениях расстояния до ближней плоскости отсечения.