【问题标题】:Create 3d map for fps game - Three.js [closed]为 fps 游戏创建 3d 地图 - Three.js [关闭]
【发布时间】:2013-06-11 07:43:35
【问题描述】:

我想在 Counter-Strike 游戏中使用 Three.js 创建 3d 地图,但我不知道以哪种格式创建?我应该使用什么工具来创建它?

【问题讨论】:

  • 你真的应该做一些研究,stackoverflow 可以帮助你解决当前解决方案的问题,你还没有这样的解决方案。
  • 地图不是 3d 物体,它是一个简单的 2d 图像,玩家通过根据地图坐标计算在 3d 中的位置来绘制它。

标签: 3d three.js webgl


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    Text Map 文件格式描述如下:

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

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

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

    不幸的是,这不是一项简单的任务,因为拥有四边形/面信息,您必须分析线框模型并将其组合成实体(体积数据),然后再将其拆分为目标数据 - 剪裁平面。

    我认为解决方案是:

    • 您必须想办法将创建的模型转换为由剪切平面定义的实体模型。

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-08
      • 2015-03-12
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 2011-12-05
      • 1970-01-01
      相关资源
      最近更新 更多