游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: syzldy

新手问题:变换矩阵顺序问题

[复制链接]

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2008-10-1 21:52:00 | 显示全部楼层

Re:新手问题:变换矩阵顺序问题

10楼的:

5楼为什么说World = World * ySideRot * zFlateRot表示在绝对坐标系中变换?什么是绝对坐标系?
____
我说了,任何矩阵连接方式都有几何上等价的两种理解方法。只不过对于楼主给出问题,用局部坐标系(坐标框架)的方法理解更为直观。另外,绝对坐标系就是坐标系本身不随变换改变。

RotationY和RotationZ都势必改变model的局部坐标系的朝向。不管你先乘或后乘。但不同的是由于矩阵乘法不满足交换率,所以zRot * yRot 一般不等于 yRot * zRot 。
___
这里所谓我所说的局部坐标系和一般模型/观察变换中的模型坐标系不是一个概念。按照<<计算机图形学-openGL实现(第二版)>>的叫法,那也叫坐标框架。在OpenGL的红宝书里面也有介绍相关知识,虽然没有任何理论推导,不过对于代数过关的人应该不是问题。 另外我从来没说过矩阵乘法满足交换律,请你认真仔细的阅读我上面的帖子再发言。

另楼主的World矩阵乘是没必要的,World = ySideRot * zFlateRot 就可以表示先绕y再绕z旋转。
___
如果楼主要绕世界空间的主轴旋转呢?

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2008-10-1 22:01:00 | 显示全部楼层

Re:新手问题:变换矩阵顺序问题

但我还是没明白绝对坐标系和相对坐标系的判定条件是什么?
___
没什么判定条件,所有的矩阵叠加顺序都有等价的两种理解方式。
还没明白就去看这个openGL红宝书的在线网页吧,注意其中Grand, Fixed Coordinate System和Moving a Local Coordinate System两段。虽然没推导,不过代数过关的人应该能自己推出来吧。

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2008-10-1 22:02:00 | 显示全部楼层

Re:新手问题:变换矩阵顺序问题

http://www.glprogramming.com/red/chapter03.html#name2

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2008-10-2 22:15:00 | 显示全部楼层

Re: 新手问题:变换矩阵顺序问题

1.我上面说的意思是:两种变换都是局部坐标系,都改换了局部坐标系的朝向,不是一个什么绝对,一个什么局部。

2.
另楼主的World矩阵乘是没必要的,World = ySideRot * zFlateRot 就可以表示先绕y再绕z旋转。
___
如果楼主要绕世界空间的主轴旋转呢?
=====================================
world = identity,请问在这儿有什么用?另外,什么叫世界空间的主轴?
如果使用的是OGL的API,它这个变换矩阵就是OGL的ModelView矩阵中的一级。它把物体从局部变换到世界空间。当然楼主用的是DX,那就有个光明正大的Model Matrix了。不用跟相机矩阵放在一起。。。。

3.
我不想起争端,不过如果你起码看过陈维恒的微分几何初步的绪言,也应该知道任何刚体运动都改变物体的坐标标架。没什么所谓的绝对坐标系。在初等解析几何里面可以很容易证明Zrot->Xrot->Yrot(在图形学里Y向上,而数学上一般是Z向上。。所以图形学里是YXZ)可以完成两个同手系的坐标系的旋转,这也是北京大学丘版解析几何的某个习题。

4.
我说矩阵乘法不满足交换率是对楼主说的。这个大概我没说清楚吧,现在我澄清。
5.几何里坐标系的定义里一般叫“坐标标架”,直角坐标标架只是“仿射标架”中极特殊的一种。

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2008-10-3 17:55:00 | 显示全部楼层

Re:新手问题:变换矩阵顺序问题

1.我上面说的意思是:两种变换都是局部坐标系,都改换了局部坐标系的朝向,不是一个什么绝对,一个什么局部。
___
等你看了我给出的引用自OpenGL红宝书的资料再发言。

2.
另楼主的World矩阵乘是没必要的,World = ySideRot * zFlateRot 就可以表示先绕y再绕z旋转。
___
如果楼主要绕世界空间的主轴旋转呢?
=====================================
world = identity,请问在这儿有什么用?另外,什么叫世界空间的主轴?
如果使用的是OGL的API,它这个变换矩阵就是OGL的ModelView矩阵中的一级。它把物体从局部变换到世界空间。当然楼主用的是DX,那就有个光明正大的Model Matrix了。不用跟相机矩阵放在一起。。。。
——
我承认,没看到是identity矩阵。那的确算是很没用的代码。

3.
我不想起争端,不过如果你起码看过陈维恒的微分几何初步的绪言,也应该知道任何刚体运动都改变物体的坐标标架。没什么所谓的绝对坐标系。
——
不好意思,我学校里面上的是Oprea的微分几何和应用,里面除了介绍Frenet框架还真没你说的那个关于坐标框架的结论。陈维恒的听说过,国内学校大约用得比较多,我的确没看过。以后有机会我会看一下。关于有没有绝对坐标系的争论我想没什么必要吧,随便找本张量分析入门都会告诉你之所以用仿射空间代替向量空间的原因是,避免了选取一个绝对坐标系的人为性。


在初等解析几何里面可以很容易证明Zrot->Xrot->Yrot(在图形学里Y向上,而数学上一般是Z向上。。所以图形学里是YXZ)可以完成两个同手系的坐标系的旋转,这也是北京大学丘版解析几何的某个习题。
———
你要说的是欧拉旋转么?有意义的欧拉旋转共有24种,都能完成同手系坐标系旋转。不过你说这个有啥意思?欧拉旋转恰恰有12种是基于一个绝对坐标系进行定义的,建议你啥时候复习一下graphic gems相关章节。丘维声版本的大家都说简单,看这个习题的确无聊。我看的是张贤科许甫华版的,貌似题目还有趣不少。

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2008-10-3 18:07:00 | 显示全部楼层

Re:新手问题:变换矩阵顺序问题

.几何里坐标系的定义里一般叫“坐标标架”,直角坐标标架只是“仿射标架”中极特殊的一种。
———
抱歉,你就当我中文没学好好了。framework我从来都翻译成框架的。

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2008-10-3 18:45:00 | 显示全部楼层

Re:新手问题:变换矩阵顺序问题

算了,不继续了,不想变成数学讨论了,红宝书哪个章节?1.1~1.5版我都看过。那个欧拉变换我只是举个例子给楼主。。前后两种转换方式所带来的区别。你说的张贤科许甫华解析几何我也会去看看,张量分析也学过,也没看到你所说的内容。推荐本看看?其它的不说了,继续讨论下去没太多意义。如果是有意义我也可以继续掉书袋,这不是你的专利,上面就是例子。

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2008-10-3 18:50:00 | 显示全部楼层

Re:新手问题:变换矩阵顺序问题

我13楼贴过:http://www.glprogramming.com/red/chapter03.html#name2

注意其中Grand, Fixed Coordinate System和Moving a Local Coordinate System两段。

64

主题

272

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
发表于 2008-10-3 20:29:00 | 显示全部楼层

Re:新手问题:变换矩阵顺序问题

我看了justlikethewind给的资料还没看出个所以然来-__-#
楼主代码里的world就是资料上的Fixed Coordinate,跟local coordinate没关系吧??
他代码仲
World = ySideRot * zFlateRot;//
World = zFlateRot * ySideRot ;//
是绕D3D里面的世界坐标系旋转(这个坐标系可以当做固定不变的吧),这里只是旋转的先后问题,我怎么也没办法跟你在5楼说的联系起来。

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2008-10-3 22:24:00 | 显示全部楼层

Re:新手问题:变换矩阵顺序问题

张贤科许甫华写的是高等代数?还是解析几何?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 05:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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