游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2190|回复: 3

3D RPG游戏中 camera对着人物旋转问题

[复制链接]

1

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2010-6-10 18:06:00 | 显示全部楼层 |阅读模式
麻烦问下。3D摄像机怎么对着一个z轴旋转呀?
比如   我的摄像机的位置在   (0,0,100)   往上以斜-15度向下看。就是跟平面的交点为(0,0,100/tan(15)).就是我想以这个点对着z轴把摄像机旋转一圈。应该要怎么做呀?

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2010-6-11 00:32:00 | 显示全部楼层

Re:3D RPG游戏中 camera对着人物旋转问题

首先,你犯了个数学错误。
你的摄像机在(0,0,100),向下15度,那么跟平面的交点只能是(0,0,100)了。?
应该改为摄像机在(0,100,0),向下15度,交点为(0,0,373.2)。

  1. 变量部分:
  2. float r=373.2f;//大致等于100/tan(15)
  3. float camera_angle=0.0f;
  4. float target_x=0.0f,target_y=0.0f,target_z=373.2f;
  5. float camera_x,camera_y=100.0f,camera_z;

  6. 渲染部分:
  7. camera_angle+=time*60.0f;
  8. camera_x=r*cos(camera_angle)+target_x;
  9. camera_z=r*sin(camera_angle)+target_z;
  10. gluLookAt(
  11.         camera_x,camera_y,camera_z,
  12.         target_x,target_y,target_z,
  13.         0,1,0);
  14. 然后渲染物体
复制代码

谢谢我吧。

1

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2010-6-11 09:12:00 | 显示全部楼层

Re:3D RPG游戏中 camera对着人物旋转问题

谢谢了。可能跟我的坐标系不一样吧。我的Z轴是你的Y轴吧。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2010-6-11 11:14:00 | 显示全部楼层

Re: 3D RPG游戏中 camera对着人物旋转问题

zdz1028: 3D RPG游戏中 camera对着人物旋转问题
我的摄像机的位置在(0,0,100)往上以斜-15度向下看。就是跟平面的交点为(0,0,100/tan(15)).

就算你的Z轴是我的Y轴,你的这个坐标仍然不对啊。。。
你的(0,0,100),也就是高度为100的地方,是吧?
向下15度,那么交点应该是(0,100/tan(15),0)啊。为什么你写的是(0,0,100/tan(15))呢?
交点的高度永远都应该是0啊。因为你的第三个参数是Y轴,不是吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 15:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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