请教:DrawSubset()的注意点!多谢。
hr=D3DXCreateMeshFVF(m_pFaceNum[i],m_pVertexNum[i],
D3DXMESH_MANAGED|D3DXMESH_WRITEONLY,
D3DFVF_3DSPOINT,
m_pd3dDevice,&m_ppMesh[i]);
if(hr!=D3D_OK)
return hr;
hr=m_ppMesh[i]->GetVertexBuffer(&m_pp3DSVB[i]);
if(FAILED(hr))
return hr;
s3DSpoint* pVertices;
if( FAILED( m_pp3DSVB[i]->Lock( 0, 0, (BYTE**)&pVertices, NULL ) ) )
return hr;
memcpy(pVertices,m_ppVertexData[i],m_pVertexNum[i]*sizeof(s3DSpoint));
m_pp3DSVB[i]->Unlock();
WORD* pIndices;
hr=m_ppMesh[i]->GetIndexBuffer(&m_pp3DSIB[i]);
if( FAILED(hr) )
return E_FAIL;
// Fill the index buffer
m_pp3DSIB[i]->Lock( 0, 3*m_pFaceNum[i]*sizeof(WORD), (BYTE**)pIndices, );
if( FAILED(hr) )
return E_FAIL;
memcpy(pIndices,m_ppIndexData[i],3*m_pFaceNum[i]*sizeof(WORD));
m_pp3DSIB[i]->Unlock();
通过上的方法创建的MESH对象
for(..){
m_pd3dDevice->SetMaterial(&mtrl);
m_pd3dDevice->SetTexture( 0, m_ppTexB[j] );
m_ppMesh[i]->DrawSubset( j );
}
结果中的物体没有正确的帖图。请问可能是什么原因?
如上使用时应注意哪些方面?
请大侠不吝指点!多谢!
问题点数:100、回复次数:3Top
1 楼WesleyWu(红老爹)回复于 2001-10-24 16:19:44 得分 100
有没有加入u,v坐标呢?
Top
2 楼bltiger(不二)回复于 2001-10-25 09:14:39 得分 0
你没有使用LockAttributeBuffer加入attribute buffer Top
3 楼Ani()回复于 2001-10-25 12:06:36 得分 0
多谢你的关心。说来很是没有道理,原因是因为我把坐标的值放于了颜色值的上面了了。
我换位置后就一切OK了!
多谢!多谢!Top




