游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4482|回复: 7

计算观察矩阵的问题

[复制链接]

6

主题

15

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2007-6-21 18:31:00 | 显示全部楼层 |阅读模式
请问函数D3DXMatrixLookAtLH()里面的第四个参数up是世界矩阵的上方向(0,1,0)还是摄像机本身的上方向?

当摄像机的观察方向不规则,比如eye(3,-2,5),而lookat(2,1,7)的时候,进行叉乘
D3DXVec3Cross(&up,&eye,&lookat)得到的up是垂直于eye和lookat平面的向量,和世界矩阵的up方向不搭界的吧?

那么把这个摄像机的三个向量组成的矩阵和世界矩阵相乘得到的就是观察矩阵了嘛?

sdk里讲的看的糊涂,哪位可以给一个简单明了的说明?

6

主题

15

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2007-6-21 18:37:00 | 显示全部楼层

Re:计算观察矩阵的问题

sdk上说是要把摄像机矩阵挪到世界矩阵里面,使摄像机本身在世界矩阵的原点,而摄像机的观察方向是世界矩阵的Z轴,摄像机的up方向等于世界矩阵的up方向。不知道我这么理解对不对。

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2007-6-22 03:13:00 | 显示全部楼层

Re:计算观察矩阵的问题

"current world's up"你可以直接理解成就是一个(0,1,0)的矢量,始终朝上的与Y轴平行的矢量.

理解它为一个度量衡一样的东西.如果不给一个标准,你就摸不着"北"了.

6

主题

307

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
发表于 2007-6-22 09:32:00 | 显示全部楼层

Re:计算观察矩阵的问题

视矩阵的本质就是将目标从世界坐标系变换到一个以y为上方向,z为进深的坐标系中

把一个单位矩阵作为视矩阵,就相当于一个位置在原点,正朝z正半轴,y为上方向的摄像机

所以一个视矩阵就是对应摄像机变换矩阵的逆矩阵

我目前就是这么包装摄像机的

9

主题

50

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2007-6-22 09:42:00 | 显示全部楼层

Re:计算观察矩阵的问题

因为一个摄像机仅仅靠一个位置和视点决定不了它的真正方位,

位置和视点决定了摄像机的z轴,就好像你的眼睛以及看的方向,

向左右伸直你的双手,与地面平行,这时候你的头可以上仰和下垂, 用位置和视点就决定了你上仰和下垂的角度。

不过,你也可以左右歪着脑袋看,这时你的双手就与地面不平行了, 如果用up向量0,1,0就决定了你不是歪着脑袋来看的,而是双手伸直与地面平行来看的。

事实上,大多数时候,我们只要设置up向量为0,1,0就足够了, 比如在CS游戏中,我们的头可以上仰和下垂,可以左右环视, 但是就是不能左右歪着脑袋看。

23

主题

94

帖子

94

积分

注册会员

Rank: 2

积分
94
发表于 2007-6-22 09:55:00 | 显示全部楼层

Re: Re:计算观察矩阵的问题

wondeful18: Re:计算观察矩阵的问题

因为一个摄像机仅仅靠一个位置和视点决定不了它的真正方位,

位置和视点决定了摄像机的z轴,就好像你的眼...

大哥你的回复太精彩了!小生真是太崇拜你了!你真是幽默风趣对这个问题真是理解深刻...
敬仰~~

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2007-6-23 00:02:00 | 显示全部楼层

Re:计算观察矩阵的问题

Up 取 0,1,0 只是作为一个参考量,用于计算其它轴,最终还要根据其它轴差乘算出 Up 向量。具体原理去看图形学原理。

0

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2008-6-23 21:52:00 | 显示全部楼层

Re: Re:计算观察矩阵的问题

wondeful18: Re:计算观察矩阵的问题

因为一个摄像机仅仅靠一个位置和视点决定不了它的真正方位,

位置和视点决定了摄像机的z轴,就好像你的眼...

您太牛拉。。解决了我的难题拉。。。超支持。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 04:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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