|
|
发表于 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 )的图形
显然上面的代码是在两个不同的地方绘制了相同的图元.
不知我上面说的有没有错哈,希望能帮上你.
|
|