在 gluLookAt 之前加上 glLoadIdentity 和 gluPerspective 就可以了。
我写了一个显示md2模型的小程序,程序一切正常,后来我又加上了这么一段:
- def mouse(button, state, x, y):
- global zoom
- if button == GLUT_WHEEL_UP:
- if zoom > 10:
- zoom = zoom - 1.0
- gluLookAt(zoom*2.5,-zoom*2.5,zoom,0,0,0,0,0,10)
- elif button == GLUT_WHEEL_DOWN:
- if zoom < 1000:
- zoom = zoom + 1.0
- gluLookAt(zoom*2.5,-zoom*2.5,zoom,0,0,0,0,0,10)
复制代码
设想是通过鼠标滚轮,拉近推远镜头。但是程序执行时,滚动鼠标滚轮时,窗口就直接变黑了。
后来,我在程序初始化部分,将
gluLookAt(zoom*2.5,-zoom*2.5,zoom,0,0,0,0,0,10)
改为
gluLookAt(zoom*2.5,-zoom*2.5,zoom,0,0,0,0,0,10)
gluLookAt(zoom*2.5,-zoom*2.5,zoom,0,0,0,0,0,10)
窗口也变黑了,好像是gluLookAt不能使用两次似的。
实际情况是这样的吗?如果是,我想改变摄像机的位置,我该怎么办?
谢谢。 |