导入.X文件(静态模型)

先调用一个函数D3DXLoadMeshFromX( 文件名,风格属性,D3D设备指针,三角形面邻接信息缓冲区,材质和纹理数据缓冲区&m_pMaterialBuffer,特效属性缓冲区,材质数g_dwNumMaterials,(返回)创建的网格&m_pMesh)。

调用成功后, 获取3D模型的材质和纹理信息。

D3DXMATERIAL *d3dxMaterials = (D3DXMATERIAL*)m_pMaterialBuffer->GetBufferPointer();

//创建材质

D3DMATERIAL9 *m_pMeshMaterials = new D3DMATERIAL9[g_dwNumMaterials];

//创建纹理

LPDIRECT3DTEXTURE9 *m_pMeshTextures = new LPDIRECT3DTEXTURE9[g_dwNumMaterials];//这里注意:数据类型似乎必须为LPDIRECT3DTEXTURE9,如果用IDirect3DDevice9 似乎不行.

for( DWORD i = 0; i < g_dwNumMaterials; i++)

{

    m_pMeshMaterials[i] = d3dxMaterials[i].MatD3D;

    if( FAILED(D3DXCreateTextureFromFile( m_pDevice, d3dxMaterials[i].pTextureFilename, &g_pMeshTextures[i])))

{

    m_pMeshTextures[i] = NULL;

}

}

//绘制网格模型

for( DWORD i = 0; i < g_dwNumMaterials; i++)/

{

    m_pDevice->SetMaterial( &m_pMeshMaterials[i]);

    m_pDevice->SetTexture( 0, m_pMeshTextures[i]);

 

    m_pMesh->DrawSubset(i);

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值