游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2991|回复: 8

关于试图矩阵和投影矩阵。求高手解答

[复制链接]

5

主题

16

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2013-3-31 02:27:29 | 显示全部楼层 |阅读模式
照相机在世界坐标系的目标点 是不是就是观察点? 这个点是观察的起始点 还是视口的正中心?

他和前裁剪面距离 后裁剪面距离 有什么关系么?

是不是有如下的关系 我自己的猜测可能完全无关

如果目标点位0,0,0,  前裁剪面为1000。就是说Z轴的0-1000为可见区。其余的不可见?
后裁剪同理。

不知道我的理解有没有误区,希望前辈指点和纠正我的错误

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
发表于 2013-3-31 12:24:08 | 显示全部楼层
本帖最后由 微无渊 于 2013-3-31 12:37 编辑

首先声明,我不是高手哦,我和你一样,新手一个.
因为我也有兴趣,所以说下我的看法,或许对你有参考价值,也或许能得到高手指正.

观察点就是look at 就是目标点,就是相机正在观察的目标对象的位置,这个目标对象不是一个具体的物体,只是编程者提供的一个参考值,用来确定相机矩阵的(相机方向),
其实就是D3DXMatrixLookAtLH()函数的第3个参数pAt

另一个问题,跟近裁减面和远裁剪面没有半点关系,
UVN相机模型就是:eye(相机在世界空间中的位置),at(相机所观察的目标位置),up(参考用的上方向向量). 这3个向量计算出的相机矩阵. 也很容易理解,知道相机位置,知道相机的方向,就能计算出相机矩阵,(相机所在世界空间中的逆矩阵,就是相机变换矩阵)

5

主题

16

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2013-3-31 16:19:02 | 显示全部楼层
你这不是和没有说一样么。。

5

主题

16

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2013-3-31 16:19:31 | 显示全部楼层
怎么会没有关系,你设置几个不同的裁剪面值然后移动下

5

主题

16

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2013-3-31 16:35:34 | 显示全部楼层
但是你说了很重要的一点。
你认为视见约束体是由位置,目标点和上向量这3个参数计算出来的,那我问下裁剪面的作用是什么?

2

主题

31

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2013-4-3 16:34:51 | 显示全部楼层
本帖最后由 yang101 于 2013-4-3 16:38 编辑

真人端个相机,去看看这个世界。
我们要的只是相机液晶显示器所显示的图像。

1.相机本身,自成一个坐标系(无论dx/opengl,都是左手系。只要编码习惯一致,硬搞成右手系也无所谓),再结合它的观察点(即在世界坐标系中的位置),就可以完成不同坐标系间的坐标转换。
问题归结为:一个物体,在两个不同坐标系下,其坐标值的差异或计算。

2.透视矩阵转换,作用视图坐标(x,y,z,1),搞成(x',y',z',z),其中细节,自己好好参考相关的数学书。必需了解的!


ps:
a1.相机的目标点(target),本身就表明不是起始点,它的作用,在于确定相机镜头的朝向,是为建立起相机本身的坐标系服务的(前面说了,左手系)

a2.前后两裁面,在透视转换矩阵中应用,主要是约束可见的物体用的。 显然两个面所夹取的空间,才有资格参加渲染(实际中,因遮挡会被抛弃)。
一般引擎会做软件剔除,减少显卡压力,也利于性能。

33

主题

159

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
QQ
发表于 2013-4-4 12:39:43 | 显示全部楼层
目标点事实上是没什么用的,......CAMERA位置点 到 目标点的 向量,就是你CAMERA的DIRECTION,目标点只是标明了你的视方向,如果目标点在裁切面后面,你是看不到目标点的

33

主题

159

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
QQ
发表于 2013-4-4 12:48:38 | 显示全部楼层
最基本的用到三个空间的概念,比如你拿个摄像机在街上逛,
世界空间好理解,就是整个世界,
视空间就是以你的摄像机为中心位置,摄像机的上,前,右方向为座标三轴形成的一个空间,

投影空间比较难理解点,就是你的摄像机能拍到的区域,是一个无限的矩形锥体,但GL右D3D里有个前后裁切,就是把这个矩形锥体切掉前后两块,这中间的一段(前后两矩形,四边为梯形)为投影空间,即能在你屏上正确显示的空间。

所以 世界矩阵*视矩阵(视矩阵即 摄像机在世界空间的矩阵 的逆矩阵)--视变换
视变换后的矩阵 * 投影矩阵 -- 投影变换

0

主题

15

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
发表于 2013-4-8 17:33:41 | 显示全部楼层
照相机的目标点显然不是观察点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-26 22:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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