3d 各种游戏地图格式(室内和室外)
我在设计rpg的过程中遇到了一个小问题。我不知道我的世界地图用什么。在过去的一周里,我研究了不同的格式,确定没有适合户外环境的地图(我可以找到…)。我发现.bsp贴图(quake 4或doom 3)适合室内设置,但不适合室外设置,因为它们的操作方式不同 我正试图找到一些可以让我制作巨大户外地图的东西,就像《遗忘》或《晨风》。虽然我可能不会把地图用到那个地步,但如果我需要的话,能有扩展的空间就好了 谢谢,3d 各种游戏地图格式(室内和室外),3d,3d,我在设计rpg的过程中遇到了一个小问题。我不知道我的世界地图用什么。在过去的一周里,我研究了不同的格式,确定没有适合户外环境的地图(我可以找到…)。我发现.bsp贴图(quake 4或doom 3)适合室内设置,但不适合室外设置,因为它们的操作方式不同 我正试图找到一些可以让我制作巨大户外地图的东西,就像《遗忘》或《晨风》。虽然我可能不会把地图用到那个地步,但如果我需要的话,能有扩展的空间就好了 谢谢, Robbie户外环境通常使用地形高度图来完成。它基本上是一个巨大的网格,每个单元格上都有高度
Robbie户外环境通常使用地形高度图来完成。它基本上是一个巨大的网格,每个单元格上都有高度信息。此外,每个单元格都包含有关要使用的纹理的信息
您可以使用基于分形和柏林噪声的地形生成器创建这些地图实现游戏世界地图的方法有很多。
无论如何,对于大型地图,请查看,特别是引入了用于地形存储的,我相信这是常用的。基本上,它们就像地震中使用的BSP树,但更适合存储高度地图。我认为他在寻找一种从文件中保存和加载地图的方法,而不是将地图存储在内存中的方法。(或许我误解了?) 我认为有四种方法可以解决这个问题
Extremum:创建自己的格式 您可以创建自己的文件格式。最简单的方法是选择一种广泛使用且可扩展的文件格式(如XML),因为您可以在internet上找到大量免费可用的解析器。(请访问applicated-mathematics.net以获取简单但完整的XML解析器) 这里的问题是,您必须创建自己的地图编辑器。 毫无疑问,如果你想学习很多东西,并且有一个干净的格式,这是“最好的”方式。但是你也必须考虑你需要花费时间来创建所有这些工具。 Extremum:使用其他游戏/工具的格式 您还可以选择使用现有游戏的文件格式,并对其进行重新设计(或仅使用开源游戏的格式,如Quake) 这里的问题是,您将继承所选格式的限制。 但是开发时间大大缩短了,您只需要找到加载这些格式的方法 权衡1:将几何体与元数据解耦 您还可以选择从现有格式中选择所需的内容,并将元数据存储在其他位置 例如,您可以使用创建如下格式:
<?xml version="1.0" encoding="UTF-8"?>
<map>
<name>MyMap</map>
<geometry type="bsp">my_map.bsp</geometry>
<spawn id="1">
<monster type="1" spread="5" />
</spawn>
</map>
我的地图
my_map.bsp
这是两个世界中最好的。
您可以在任何.bsp编辑器(3DSmax、Blender)中设计地图,并将所需数据存储在XML中
中间2:根据您的需要调整其他人的格式
这里的想法只是创建您自己的统一格式,并为广泛使用的编辑器创建导出器。例如,您可以为Blender编写导出器脚本,这将为您自己的格式生成文件
如果我误解了你在寻找地图的存储空间,请再给我一些提示。(以防万一,请提问,我将完成我的回答:))
- 寻找四元/八叉树。这是一种将地图切割成四边形/立方体的方法。然后,您将能够在这些结构中实现快速搜索,从而仅显示地图、LOD等的可视部分
- 通过选择接近地图内存布局的文件格式加快地图加载
- 组合多个地图存储范例。高度贴图对于大型户外贴图很好,但非常有限(特别是对于多级贴图)。你可以在地板上使用高度贴图,在四棵树上存放石头/花等