首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

DX instancing绘制解决思路

2012-02-28 
DX instancing绘制当有一个物体,需要绘制该物体的100个instancing时,设置如下:C/C++ codepd3dDevice-SetS

DX instancing绘制
当有一个物体,需要绘制该物体的100个instancing时,设置如下:

C/C++ code
    pd3dDevice->SetStreamSource(0, vb, 0, sizeof(Vertex));    pd3dDevice->SetStreamSourceFreq(0, D3DSTREAMSOURCE_INDEXEDDATA | (UINT)100));//设置实例数            pd3dDevice->SetStreamSource(1, g_pVBInstanceData, 0, sizeof(Instance));    pd3dDevice->SetStreamSourceFreq(1, D3DSTREAMSOURCE_INSTANCEDATA | 1UL);//设置实例绘制频率?    pd3dDevice->SetIndices(ib));//设置索引


请问其有3个物体,每个物体的实例数都为100时,StreamNumber应该分别怎么设置?

[解决办法]
三个物体,每个物体都是两个StreamNumber 0和1,如果顶点格式一样,一次设置,三次绘制。

C/C++ code
pd3dDevice->SetStreamSourceFreq(0, D3DSTREAMSOURCE_INDEXEDDATA | (UINT)100));//设置实例数       pd3dDevice->SetStreamSourceFreq(1, D3DSTREAMSOURCE_INSTANCEDATA | 1UL);//设置实例绘制频率?for( int i = 0; i < 3; i++ ){    pd3dDevice->SetStreamSource(0,...);    pd3dDevice->SetIndices(...);    pd3dDevice->DrawIndexedPrimitive(...);} 

热点排行