谁知道3d max vc接口编程的教程在哪儿下

来源:百度知道 编辑:UC知道 时间:2024/06/20 13:31:30
如题

先将3D studio文件转换为.x文件
1).X文件的读取
看过DXSDK文档的人都知道,微软提供的关于.X文件格式的信息少的可怜,如果对于.X文件什么都不懂的话简直是天书(本人不才,刚开始就是这么认为的)!幸好有一堆用来访问X文件的COM,要不然真的没辙了。听从鲁迅先生的教诲,我们把“拿来主义”发扬光大——有了就要用!再说了,用微软的COM读微软的文件,简直天造地设的一对儿啊!好了,废话少说,开始。

首先要建立一个IDirectXFile实例,这样:

LPDIRECTXFILE pxFile = NULL;
hr = DirectXFileCreate(&pxFile);

然后注册.X文件模板。模板(Template)规定了.X文件中数据对象的格式,所以要想访问.X文件,就必须先把文件中各种数据的格式说明白。这里使用标准模板:

hr = pxFile -> RegisterTemplates((LPVOID)D3DRM_XTEMPLATES, D3DRM_XTEMPLATE_BYTES);

题外话:关于这两个D3DRM_XTEMPLATES和D3DRM_XTEMPLATE_BYTES可真是“来之不易”啊:你去文档里面搜索,连一个页面都找不到!也不知道微软为什么老是跟我们玩这种捉迷藏的游戏,他自己却在SkinnedMesh这个例子当中使用了。D3DRM_XTEMPLATES数组和D3DRM_XTEMPLATE_BYTES宏的定义在rmxftmpl.h中,用的时候别忘了include。

接下来要建立一个枚举对象,有了这个对象才可以遍历.X文件中所有的顶级对象:

LPDIRECTXFILEENUMOBJECT pEnumObject = NULL;
hr = pxFile -> CreateEnumObject("Modal.