游戏开发论坛

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

怎样把mesh画在特定地方

[复制链接]

69

主题

335

帖子

343

积分

中级会员

Rank: 3Rank: 3

积分
343
QQ
 楼主| 发表于 2003-11-15 00:36:00 | 显示全部楼层

Re:怎样把mesh画在特定地方

哎。真难啊
D3DXComputeBoundingBox
SDK就写了个结构。。。真不知道怎么用。

3

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2003-11-15 16:53:00 | 显示全部楼层

Re:怎样把mesh画在特定地方

    D3DXMATRIXA16 matWorld;
    D3DXMATRIXA16 matTrans;
    D3DXMATRIXA16 matRotate;
    D3DXMATRIXA16 matZoom;  // scaling 1/5


    // 计算平移矩阵
    D3DXMatrixTranslation( &matTrans, 1.0f, 1.0f, 1.0f );
    // 计算旋转变换矩阵
    D3DXMatrixRotationY( &matRotate, 0.1f );
    // 计算缩放变换矩阵:缩小5倍
    D3DXMatrixScaling( &matZoom, 0.2f, 0.2f, 0.2f );
    // 世界变换矩阵=旋转矩阵*平移矩阵
    D3DXMatrixMultiply( &matWorld, &matRotate, &matTrans );
    // 世界变换矩阵=(*缩放矩阵)
    D3DXMatrixMultiply( &matWorld, &matZoom, &matWorld );
    // 把世界变换矩阵设置到渲染环境
    g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );
   //再调用渲染方法即可
   ...
   render();

69

主题

335

帖子

343

积分

中级会员

Rank: 3Rank: 3

积分
343
QQ
 楼主| 发表于 2003-11-16 17:15:00 | 显示全部楼层

Re: Re:怎样把mesh画在特定地方

firecoal: Re:怎样把mesh画在特定地方

    D3DXMATRIXA16 matWorld;
    D3DXMATRIXA16 matTrans;
    D3DXMATRIXA16 matRotate;
    D3DXMATR...


这个好象跟mesh本身没什么关系吧???

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
QQ
发表于 2003-11-17 10:10:00 | 显示全部楼层

Re:怎样把mesh画在特定地方

画在特定的位置当然是设置平移矩阵了,和.x文件有什么关系?

在Render前都要先SetMatrices。你想怎么移动就怎么设置平移矩阵。同理缩放旋转也都是要在Render前的SetMatices里设置。

2

主题

106

帖子

114

积分

注册会员

Rank: 2

积分
114
QQ
发表于 2003-11-17 13:58:00 | 显示全部楼层

Re:怎样把mesh画在特定地方

其实没有必要搞的那么复杂,你每次进行world变换后,world矩阵的41,42,43,位置的值就是mesh的位置。
如果要在开始的时候把mesh放到特定的位置,可以像这样(假设mesh的默认位置在(0,0,0)
MESHVERTEX *pvertexbuf;//MESHVERTEX是mesh的顶点格式。
pmesh->LockVertexBuffer(0,(void**)&pvertexbuf);
for(i=0;i<(pmesh->GetNumVertices());i++)
{
        pvertexbuf.x+=10.0f;//移到(10,10,10)的位置
        pvertexbuf.y+=10.0f;
        pvertexbuf.z+=10.0f;
}
pmesh->UnlockVertexBuffer();

1

主题

11

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2003-11-17 15:52:00 | 显示全部楼层

Re:怎样把mesh画在特定地方

我说:哪个mesh到底是个mesh 还是个subset
是mesh,可以修改世界矩阵,是个subset,在每次渲染该subset前,更改世界矩阵使它到适当位置。
若只调用一次,那就直接改x文件吧。每个mesh 和subset前都有一个矩阵数据,改就行了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-24 06:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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