游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3322|回复: 4

[已解决]关于重复使用 gluLookAt 的问题

[复制链接]

2

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-1-4 15:01:00 | 显示全部楼层 |阅读模式
在 gluLookAt 之前加上 glLoadIdentity 和         gluPerspective 就可以了。


我写了一个显示md2模型的小程序,程序一切正常,后来我又加上了这么一段:
  1. def mouse(button, state, x, y):
  2. global zoom
  3. if button == GLUT_WHEEL_UP:
  4. if zoom > 10:
  5. zoom = zoom - 1.0
  6. gluLookAt(zoom*2.5,-zoom*2.5,zoom,0,0,0,0,0,10)
  7. elif button == GLUT_WHEEL_DOWN:
  8. if zoom < 1000:
  9. zoom = zoom + 1.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(zoom*2.5,-zoom*2.5,zoom,0,0,0,0,0,10)
窗口也变黑了,好像是gluLookAt不能使用两次似的。
实际情况是这样的吗?如果是,我想改变摄像机的位置,我该怎么办?
谢谢。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2010-1-5 19:15:00 | 显示全部楼层

Re: [已解决]关于重复使用 gluLookAt 的问题

HelloLinux!: [已解决]关于重复使用 gluLookAt 的问题
gluLookAt(zoom*2.5,-zoom*2.5,zoom,0,0,0,0,0,10)

(小沈阳的口气)唉呀妈呀
这么牛B的LookAt,我还头一次见到呢。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2010-1-5 19:22:00 | 显示全部楼层

Re:[已解决]关于重复使用 gluLookAt 的问题

LookAt(
0.0f,0.0f,zoom,//这x,y,z是摄像机坐标
0.0f,0.0f,0.0f,//这x,y,z是目标坐标
0.0f,1.0f,0.0f)//这x,y,z是摄像机顶向

2

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2010-1-6 09:14:00 | 显示全部楼层

Re: Re:[已解决]关于重复使用 gluLookAt 的问题

snhun: Re:[已解决]关于重复使用 gluLookAt 的问题

LookAt(
0.0f,0.0f,zoom,//这x,y,z是摄像机坐标
0.0f,0.0f,0.0f,//这...

这个我知道,我问的不是这个问题。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2010-1-7 15:29:00 | 显示全部楼层

Re: Re: Re:[已解决]关于重复使用 gluLookAt 的问题

HelloLinux!: Re: Re:[已解决]关于重复使用 gluLookAt 的问题
这个我知道,我问的不是这个问题。

这个你不知道,而且你问的就是这个问题。
你问的就是“如何改变摄像机坐标”。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-16 07:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表