游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1673|回复: 2

摄象机追尾视角的问题

[复制链接]

8

主题

65

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2007-10-19 20:37:00 | 显示全部楼层 |阅读模式
D3DXMATRIX T, R, P, S;

D3DXMatrixTranslation(&T,Ship.pos.x,Ship.pos.y,Ship.pos.z);//默认位置是(0,0,0)
D3DXMatrixRotationX(&R, -D3DX_PI * 0.5f);
D3DXMatrixScaling(&S, 0.2f, 0.2f, 0.2f);
P = R * T * S;
Device->SetTransform(D3DTS_WORLD, &amp);

D3DXMATRIX V;

D3DXMatrixTranslation(&T,Ship.pos.x,Ship.pos.y,Ship.pos.z+6.0f);
V=T;//设置后没有作用。。。。

可这些都是世界坐标啊,D3D如何以一个物体的本地坐标来设置另一个物体呀?有没有相关的函数?
这几天乘来乘去头都昏了。。。。。
我想设置一个追尾的摄象机,可不知道在D3D中如何使用飞船本地坐标设置摄象机的矩阵。。。。。

虽然我知道可以先把摄象机和飞船在世界坐标中摆好,然后摄象机可以利用 D3DXMatrixRotationAxis 函数绕飞船的
look,right,up来变换,但这好象有误差吧,希望前辈们能帮帮忙解答一下。

先谢谢了。 [em6]

36

主题

109

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2007-10-20 15:54:00 | 显示全部楼层

Re:摄象机追尾视角的问题

矩阵左乘代表本地坐标系, 右乘代表世界坐标系,上面的乘法顺序是不是反了,个人猜测

0

主题

34

帖子

46

积分

注册会员

Rank: 2

积分
46
QQ
发表于 2007-10-20 17:21:00 | 显示全部楼层

Re:摄象机追尾视角的问题

                D3DXVECTOR3 vEyeP(Ship.pos.x,Ship.pos.y,Ship.pos.z);
                vEyeP += ship方向的反方向的一个距离作为摄象机和SHIP的距离
                D3DXVECTOR3 vLookAtP(Ship.pos.x,Ship.pos.y,Ship.pos.z);

                然后:如果用了摄象机类的话g_Camera.SetViewParams(&vEyeP,&vLookAtP);
                     或者没用的话
D3DXMATRIXA16                        mViewScene;
        D3DXMatrixLookAtLH( &g_mViewScene, &vecEyeS, &vecAtS, &vecUpS );
           再把mViewScene设置给Device的VIEW矩阵
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-20 04:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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