抓取DirectX或OpenGL游戏3D模型攻略

本文将讲述从抓取游戏中3D模型及贴图的方法,为原创文章.转载请注明出处,否则没JJ.

本方法可抓举任意版本的DirectX或OpenGL编写的3D程序中的模型及贴图文件.并可转换为3ds Max格式.理论上对3D场景面数没有限制,只要你机器够强劲,准能抓取出来.成功测试抓取100W面的场景模型.不只限于游戏场景,比如虚拟现实的场景,Vrml作品,Vrp(vrplatform)的作品..等等都可以完成,此文原起是我需要抓出某个Vrp范例中的几个模型.

本文需要用的的工具软件如下:

3ds Max
3DRipperDX
3DVIA PrintScreen
Virtools

软件下载地址请自行从网络搜索.

首先确认要抓取的目标的程序核心是DirectX还是OpenGL,如果是DirectX,也要确定是哪个版本的.如果是DirectX9编写的程序,直接使用3DRipperDX抓取并导入3DS Max中即可.很简单,此处不做详细说明.有关版本的判断,可以使用GameAssassin这个软件,该软件描述也有抓取模型功能,甚至可以抓取里面的骨骼动画等数据,但是可能本人太笨,没有用明白这个软件的用法,不过可以查看3D程序的API版本,还是有些用处的.

如果目标程序是用DirectX9之外的版本或OpenGL所写.就使用如下方法.简述大概流程.
1:运行3DVIA PrintScreen工具,再打开目标程序,载入完毕后,按下3DVIA PrintScreen的快捷键进行抓取工作,看屏幕提示,显示Done即抓取完成,根据场景数据量,这个抓取过程时间不同,要耐心.抓取得到3d xml格式的文件,这文件中包含模型和贴图数据.

2:运行Virtools,导入3d xml文件.如下图.

导入完成后,直接输出为VtPlayer格式,不用进行其他编辑.

注:之所以使用Virtools导入3dxml,是因为我无法找到其他可以用来转换3d xml格式的工具,而且Virtools输出的VtPlayer是基于Dx9的.如果大家谁知道更好的转换方法,或者可以将3d xml直接转换为3ds max模型,麻烦转告给我.

3:运行3DRipperDX,点击如下按钮.

运行刚才导出的Vtplayer文件,载入完毕后按下3DRipperDx的热键进行抓取.得到*.3DR格式贴图以及*.DDS格式的贴图.

4:运行3DS Max,使用导入菜单导入该格式即可.

导入时候要设置一下导入的摄影机角度,选择推荐值即可,否则会导致模型变形.

本攻略完毕.偷着乐去.