游戏开发论坛

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

请问,Direct3D中,怎样平移一个物体?

[复制链接]

8

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2006-10-3 13:38:00 | 显示全部楼层 |阅读模式
请问,Direct3D中,怎样平移一个物体?

平移的原理大概明白了,可是一编程就下不了手。我是参照SDK这样定义的

struct CUSTOMVERTEX
{
    D3DXVECTOR3 position; // The position
    D3DCOLOR    color;    // The color
};

然后用一个Buffer来hold:

g_pd3dDevice->CreateVertexBuffer( 200*2*sizeof(CUSTOMVERTEX),
                                                  0, D3DFVF_CUSTOMVERTEX,
                                                  D3DPOOL_DEFAULT, &g_pVB, NULL )

经过初始化,付值之后,物体已经可以显示在屏幕上了。下面我想将这个物体沿X平移2个单位
平移矩阵:
    D3DXMATRIX mTrans;
    D3DXMatrixTranslation(&mTrans,2,0,0);

然后我就不知道该怎么写了。


请大家帮帮忙!谢谢!!


8

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2006-10-3 16:13:00 | 显示全部楼层

Re:请问,Direct3D中,怎样平移一个物体?

g_pd3dDevice->SetTransform(D3DTS_WORLD, &mTrans);

请问这句话是不是说把世界坐标系上所有的物体都平移了2个单位啊

我的世界坐标系下有两个物体,现在只想平移一个,是不是得通过左乘的方法改变这个物体的所有VERTEX的position啊

4

主题

34

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2006-10-3 20:43:00 | 显示全部楼层

Re:请问,Direct3D中,怎样平移一个物体?

为每个物体分别设置世界矩阵

29

主题

224

帖子

224

积分

中级会员

Rank: 3Rank: 3

积分
224
QQ
发表于 2006-10-4 00:11:00 | 显示全部楼层

Re:请问,Direct3D中,怎样平移一个物体?

就是在结束一次渲染前,设置一次世界矩阵画一个物体吧。不过以后想获得这个物体的局部坐标好像麻烦点。最好有个纪录。

35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
发表于 2006-10-4 14:44:00 | 显示全部楼层

Re:请问,Direct3D中,怎样平移一个物体?

g_pd3dDevice->SetTransform(D3DTS_WORLD, &mTrans);

请问这句话是不是说把世界坐标系上所有的物体都平移了2个单位啊

--------
对。然后结合:就是在结束一次渲染前,设置一次世界矩阵画一个物体吧

30

主题

357

帖子

388

积分

中级会员

Rank: 3Rank: 3

积分
388
QQ
发表于 2006-10-5 14:57:00 | 显示全部楼层

Re:请问,Direct3D中,怎样平移一个物体?

很多东西要彻底搞明白才行,最好看看别人完整的代码。其实很简单,两个物体的原始坐标分别记录在两个D3DXVECTOR3 对象中,然后再建立两个D3DXVECTOR3 对象,用来存储当前坐标。用矩阵乘法平移每个物体,不要用SetTransform,那个等到你学到GPU编程时会发现其实就是矩阵乘法。最后,把两个物体设置好顶点流,分别渲染出来就OK了。

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
发表于 2006-10-6 21:56:00 | 显示全部楼层

Re:请问,Direct3D中,怎样平移一个物体?

请问楼上:GPU编程是不是VS,PS?把两个物体设置好顶点流 是啥意思,是不是用两个顶点缓冲区?

29

主题

224

帖子

224

积分

中级会员

Rank: 3Rank: 3

积分
224
QQ
发表于 2006-10-7 12:33:00 | 显示全部楼层

Re:请问,Direct3D中,怎样平移一个物体?

应该是吧,楼主也没有说两个物体是完全一样的啊。

8

主题

310

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
发表于 2006-10-7 13:13:00 | 显示全部楼层

Re:请问,Direct3D中,怎样平移一个物体?

没有参考世界矩阵,就是平移了也看不出
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 14:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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