游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1461|回复: 4

Transform一??

[复制链接]

4

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2007-1-18 15:58:00 | 显示全部楼层 |阅读模式
当我的程序有2个物件以上时, 如何能够只transform其中一个物件而不是整个world?


g_pd3dDevice->BeginScene();

g_pd3dDevice->SetTexture( 0, TTT );
g_pd3dDevice->SetStreamSource( 0, AAA, 0, sizeof(Vertex) );
g_pd3dDevice->SetFVF( D3DFVF_MY_VERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, xxx);

g_pd3dDevice->EndScene();

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2007-1-18 17:34:00 | 显示全部楼层

Re:Transform一??

物体变换前先将先前的变换清掉。

30

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
发表于 2007-1-22 15:53:00 | 显示全部楼层

Re:Transform一??

D3DXMatrixTranslation( &matWorld, j, 0, i );
g_pMyd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );
g_pMyd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
我的理解:
D3DXMatrixTranslation是实现平移操作,SetTransform是设置当前世界变换操作的矩阵,而DrawPrimitive则是实现绘制图元的功能.
请注意,DrawPrimitive有三个参数哦,具体是什么不用我说了吧.如果我要绘制两个图元是不是可以这样(执行两次DrawPrimitive操作):
D3DXMatrixTranslation( &matWorld, x, y, 0 );
g_pMyd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );
g_pMyd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
//上面三行代码是在(x,y,0)处绘制了( D3DPT_TRIANGLESTRIP, 0, 2 )的图形
D3DXMatrixTranslation( &matWorld, x+1,y+1, 0);
g_pMyd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );
g_pMyd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
//上面三行代码是在(x+1,y+1,0)处绘制了( D3DPT_TRIANGLESTRIP, 0, 2 )的图形
显然上面的代码是在两个不同的地方绘制了相同的图元.
不知我上面说的有没有错哈,希望能帮上你.

0

主题

275

帖子

676

积分

高级会员

Rank: 4

积分
676
发表于 2007-1-23 13:13:00 | 显示全部楼层

Re: Transform一??

kwankin: Transform一??

当我的程序有2个物件以上时, 如何能够只transform其中一个物件而不是整个world?


g_pd3dDevice->Beg...


d3d 是??B?C
何???B?C就是他的??B只保留最新的

所以你要????物件 之前你必?要做?纱?etTransform

setTransform
draw
setTransform
draw

或是
for (...)
{
setTransform
draw
}


119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-1-24 00:00:00 | 显示全部楼层

Re:Transform一??

每次draw前都要transform一下,互不干扰,这是初学都会碰到的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 08:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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