D3D中Obj模型加载的问题。

zhaoqun890 2009-08-13 05:50:54
在项目中加载模型的时候用到了SDK实例中的Obj模型文件加载类(CMeshLoader),模型可以显示,但没有材质,无论是OBJ文件中的材质还是自定义材质都无法在模型上显示。

代码:

//创建CMeshLoader对象
CMeshLoader *objloader=new CMeshLoader();
//初始化CMeshLoader对象
objloader->Create(Scene::m_pDevice,xFileName);
//获取模型子集数量
g_dwNumMaterials=objloader->GetNumMaterials();
//获取模型网格
g_pMesh=objloader->GetMesh();
//创佳材质及纹理
g_pMeshMaterials = new D3DMATERIAL9[g_dwNumMaterials];
g_pMeshTextures = new LPDIRECT3DTEXTURE9[g_dwNumMaterials];
//初始化材质
for( UINT i=0; i <g_dwNumMaterials ; i++ )
{
g_pMeshMaterials[i].Diffuse.r = 0.5f;



}

大家帮忙看看怎么回事啊,
谢谢!!
...全文
285 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ProgramRookie 2009-08-13
  • 打赏
  • 举报
回复
显示材质??材质只是为了体现灯光的效果,没有所谓显示不显示的吧
xingzhe2001 2009-08-13
  • 打赏
  • 举报
回复
还有CreateTexture
xingzhe2001 2009-08-13
  • 打赏
  • 举报
回复
你没有SetTexture() 也没有纹理坐标的话就是没有渲染纹理
张赐 2009-08-13
  • 打赏
  • 举报
回复
检查一下法线,灯光,或者可能是材质没有设置正确
zhaoqun890 2009-08-13
  • 打赏
  • 举报
回复
在Render()方法里我没有对模型的纹理进行渲染,就是没用到纹理吧。
xingzhe2001 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhaoqun890 的回复:]
//创佳材质及纹理
g_pMeshMaterials = new D3DMATERIAL9[g_dwNumMaterials];
g_pMeshTextures  = new LPDIRECT3DTEXTURE9[g_dwNumMaterials];
}

大家帮忙看看怎么回事啊,
谢谢!!
[/Quote]
纹理和材质的概念是不一样的,这两句看出你对这两个概念还是不清楚。纹理是贴图,材质是计算光照时候的参数。

你有没有读取纹理和设置纹理阿?

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧