游戏开发论坛

 找回密码
 立即注册
搜索
楼主: instemast

关于变换矩阵的行列性(不懂请勿乱选)

[复制链接]

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-5-6 12:50:00 | 显示全部楼层

Re: Re:关于变换矩阵的行列性(不懂请勿乱选)

神秘的猫: Re:关于变换矩阵的行列性(不懂请勿乱选)

同意楼上的..
从某些帖子可以看出,LZ应该是比较菜的一类-_-
而且马甲众多,吵架一流,没事就搞人身攻击,一般不愿浪费时间跟LZ计较罢了


楼上几位又不知道是谁的MJ

11

主题

112

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2008-5-6 18:11:00 | 显示全部楼层

Re:关于变换矩阵的行列性(不懂请勿乱选)

妈的,每个人的回贴你都要评论一番,看到就火,你以为自己是谁啊?

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-5-6 20:37:00 | 显示全部楼层

Re:关于变换矩阵的行列性(不懂请勿乱选)

我为什么要发这个帖子?这对我自己的项目有什么好处?

为了一个矩阵操作,我反复写过的代码,可以说也有3000行左右了。
前后改过2次,从列向量->行向量->列向量。目前保留的代码也有1200行。

我偏离微软的D3D9,把行向量改为列向量,这种举动虽然符合数学,但是
计算机业是计算机业,MS的做法或许有他的道理呢!?

所以我想发个帖子出来,看看别人的意见如何。
而不是擅自作决定。

结果我已经知道了,OpenGL,asm shader,d3d10,都采用列向量,
那么,我应当更多地学习这些权威,研究出这些东西的人,功底自然比我搞多了。
而且,既然大多数3D技术,都采用列向量,我也应当遵循多数人的选择。

我设计每一个底层类库时,都仔仔细细地,假设以用户的立场来考虑问题,
尽量减少累库的依赖性,连indentifier名称,都要思索很久才能下决定。

什么最难?做出一个choice最难。如果不了解其他人的意见,就更难下决定。
我大多数类库的设计,都反复参考过手头的书籍,和网络上的资料。
这是绝对必要的吗?封装的不好,自己也可以用。但是,用起来可能会有所不便,更会为他人带来不便。
一般来说,我的类库,基本上只要看到名字,就知道是干什么的了。
比如 UI库,凡是有VB6.0或者.NET皮毛的,基本上也不需要什么文档。

另一方面,我不仅要考虑类库的速度,还需要兼顾类库的易用性,还需要考虑减少用户出错。

矩阵和向量,我重载了几乎所有可能的operator,
每个函数,我都写2终版本,一种是按value,一种是按pointer。
VEC4 Mul(const MAT44 &mat,const VEC4 &vec); //方便
void Mul(VEC4 *ret,const MAT44 *mat,const VEC4 *vec); //性能

每天不仅要编码,还需要思索着一个一个“设计”问题。实在是艰苦。。。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-5-7 18:33:00 | 显示全部楼层

Re:关于变换矩阵的行列性(不懂请勿乱选)

如果真的是那么美好的话,
我们就会看到一大堆按值返回的代码了。

编译器总有优化不了的,
尤其是当我们的代码比较复杂的情况。

另一个角度,有总比没有好。
下面一行代码不会比上面一行慢。

还有,我们很多人编写的代码,
都是即写拷贝构造函数,又写operator =
为什么不省略operator = 呢,
这还是为了尽可能地提高性能。

1

主题

103

帖子

119

积分

注册会员

Rank: 2

积分
119
发表于 2008-5-8 14:50:00 | 显示全部楼层

Re:关于变换矩阵的行列性(不懂请勿乱选)

为什么gameres上尽出像instemast这样的白痴呢?
感觉像我这样认真做游戏的人没几个。。。

2

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2008-5-8 20:08:00 | 显示全部楼层

Re: Re:关于变换矩阵的行列性(不懂请勿乱选)

神秘的猫: Re:关于变换矩阵的行列性(不懂请勿乱选)

我看的书没写哪个是标准,2个都在用.

游戏开发的书都比较差劲,LZ定义的数学标准都不遵守,尤其是那本 3...


哈哈,那本书我也看了,确实全部用的行向量,并且里面把行向量列向量的区别说的很清楚了,建议lz抽空看下。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-5-8 22:02:00 | 显示全部楼层

Re: Re: Re:关于变换矩阵的行列性(不懂请勿乱选)

bq: Re: Re:关于变换矩阵的行列性(不懂请勿乱选)



哈哈,那本书我也看了,确实全部用的行向量,并且里面把行向量列向量的区别说的很清楚了,建议lz抽空看下。


本来我也不愿与人争吵了。

但你既然说你看了那本书,我就把书上的原文在摘抄一下:

在本书中,列向量用黑体小写字母 a,b, 等表示,行向量用 a T, b T 等表示。
所讨论的向量在没有指明是行向量还是列向量时,都当作列向量

数理书籍看的多的人自然知道行用的多还是列用的多,就不必我多嘴了。

22

主题

309

帖子

353

积分

中级会员

Rank: 3Rank: 3

积分
353
QQ
发表于 2008-5-8 23:29:00 | 显示全部楼层

Re:关于变换矩阵的行列性(不懂请勿乱选)

怎么只抄一部分?还是修改过的?选择性失明是不对的,我来把整段抄下来。
请各位同学翻到第76页

7.1.8 行向量与列向量
本节将说明为什么行向量和列向量的区别非常重要,并给出了人们通常偏向于使用行向量的理由。

跳过几句废话....紧接着就是instemast大人提到的一句
本书中,仅在行向量与列向量的区别不那么重要的情况下使用列向量。如果关系到区别(如向量用来和矩阵连接),将使用行向量。
有多条理由支持我们使用行向量....

就只抄到这里,打字很累的说.

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2008-5-9 09:06:00 | 显示全部楼层

Re:关于变换矩阵的行列性(不懂请勿乱选)

instemast 不要引起众怒!!!!

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-5-9 17:21:00 | 显示全部楼层

Re: Re:关于变换矩阵的行列性(不懂请勿乱选)

神秘的猫: Re:关于变换矩阵的行列性(不懂请勿乱选)

怎么只抄一部分?还是修改过的?选择性失明是不对的,我来把整段抄下来。
请各位同学翻到第76页

7.1.8 ...


你说的跟我不是同一本书阿 orz

我的书的 76 页 -- 矩阵的秩
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 13:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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