为fps游戏创建3D地图 - Three.js

时间:2013-06-08 06:59:24

标签: 3d three.js webgl

我想创建一个类似于Counter-Strike游戏的3D地图,使用Three.js,但我不知道以哪种格式创建它?我应该使用什么工具来创建它?

2 个答案:

答案 0 :(得分:1)

这是使用three.js canvas渲染器创建的3d地图的一个非常好的示例: http://www.virtual3ds.com/matt_evans

答案 1 :(得分:0)

我不知道three.js,但最近我已经使用了上面提到的游戏格式并且有一些关于它的信息。

如果您想为Counter Strike等游戏创建地图,最好的方法是创建一个* .map格式的文本文件,由Valve Hammer Editor识别。编辑器可能用于将map编译为已编译的二进制格式(在添加一些灯光后,实体......等)。

文本地图文件格式如下所述:

https://developer.valvesoftware.com/wiki/MAP_file_format

有趣的是 - 数据不像大多数三维数据交换格式(直接存储带纹理信息的面或四边形)那样以典型的三维数据格式存储。 Valve Map文件格式存储有关允许创建模型特定部分的剪裁平面的信息。坐标系统也不是真实的(不是米或类似的单位),所以你必须将你的模型校准到游戏单元中。

如此简单的墙(8个角,6个四边形)是实心的,从6个方向剪切,需要有6个平面定义数据

不幸的是,这不是一项简单的任务,因为你必须分析线框模型并将其合并到实体(体数据)中,这可以用来分割成目标数据 - 剪裁平面。 p>

在我看来,解决方案是:

  • 您必须找到将创建的模型转换为剪裁平面定义的实体模型的方法。

  • 在下一步中,您必须以阀门图格式编写,并将其导入Valve Hammer Editor。

  • 在下一步中,您可以使用编辑器将地图编译为二进制地图格式(我假设您为bsp地图编译配置zhlt工具),这将被游戏识别。