游戏开发论坛

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

请教一下矩阵的问题

[复制链接]

6

主题

15

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2007-6-19 11:49:00 | 显示全部楼层 |阅读模式
  1. void Camera::pitch(float angle)
  2. {
  3.         D3DXMATRIX t;

  4.         D3DXMatrixRotationAxis(&t,&_right,angle); //t = _right rotate angle
  5.        
  6.         //rotate _up and _look around the _right vector
  7.         D3DXVec3TransformCoord(&_up,&_up,&t);
  8.         D3DXVec3TransformCoord(&_look,&_look,&t);

  9. }
复制代码


请问在上面的代码里面,变量【t】没有被初始化,里面是随机值,那么在执行完 D3DXMatrixRotationAxis()
这一句之后,【t】绕着【_right】(D3DXVECROR3) 旋转了角度【angle】,得到的也是一个随机值的矩阵啊,
那么下面两句 D3DXVec3TransformCoord() 的结果也不确定啊?

6

主题

15

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2007-6-19 11:50:00 | 显示全部楼层

Re: 请教一下矩阵的问题

经常见到这样的代码,哪位可以给讲一下吗,谢谢。

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

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

Re:请教一下矩阵的问题

去查DX SDK文档。

5

主题

755

帖子

757

积分

高级会员

Rank: 4

积分
757
发表于 2007-6-19 13:06:00 | 显示全部楼层

Re:请教一下矩阵的问题

汗~这你不用担心,如果你看了反汇编就知道,D3DX其实在里面已经给你的矩阵初始化好。他其实是用一个临时矩阵这个矩阵是规格好的。做了你需要的变化。然后在赋值给你需要返回的矩阵。以上!

23

主题

63

帖子

68

积分

注册会员

Rank: 2

积分
68
发表于 2007-6-19 13:48:00 | 显示全部楼层

Re:请教一下矩阵的问题

只有在堆栈上未定义的Primitive类型是随机值. 用户定义的类型是要调用默认构造函数的.

6

主题

15

帖子

21

积分

注册会员

Rank: 2

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

Re:请教一下矩阵的问题

我尝试了一下,发现对于未初始化的矩阵T,在进行D3DXMatrixRotationAxis()操作的时候,会自动初始化。
OSFG大虾说的很对。不过我还有一点不明白,SDK里有如下代码:


  1. void C3DModel::MakeWorldMatrix( D3DXMATRIX* pMatWorld )
  2. {
  3.   D3DXMATRIX MatRot;

  4.   D3DXMatrixRotationX(&t, m_fPitch);

  5.   D3DXMatrixMultiply(&MatRot, &MatRot, &t);

  6.   //...

  7.   // Apply the rotation matrices to complete the world matrix.
  8.   D3DXMatrixMultiply(pMatWorld, &MatRot, pMatWorld);

  9. }
复制代码


用了一个没有初始化的矩阵和矩阵t相乘,得到的是个不定的矩阵吗?这次里面没有隐含的初始化吧?
那它做完绕XYZ旋转完后再和传递进来的原始矩阵相乘就得到了世界矩阵吗?

5

主题

755

帖子

757

积分

高级会员

Rank: 4

积分
757
发表于 2007-6-20 19:49:00 | 显示全部楼层

Re:请教一下矩阵的问题

这个有顺序的。你要按顺序乘。不然绝倒的结果是不一样的,你可以实现以下 旋转*移动。和移动*渲染最后得到的效果是不一样的。我不是大虾啊。你放心用d3dx库绝对没问题。别在是否初始化这个鸡毛问题上浪费时间,如果你你旋转完所有举证相乘后,在乘世界矩阵可以得到变换后的矩阵,这个东西只有多作没什么捷径

6

主题

15

帖子

21

积分

注册会员

Rank: 2

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

Re:请教一下矩阵的问题

那我先按照大虾的方法做、谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 02:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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