开放世界游戏中大地图背后有哪些实现技术?

首先,这是一个很有意思的问题。在这个回答中,我会尽量先回答主体问题,然后简单说说补充说明中的几个问题。以下是本文将涉及的一些相关技术的列表。(需要注意的是,这些技术本身并不复杂。在实际执行和了解各种权衡之后,设计和匹配项目中的具体需求才是关键。) - .建筑学)1。无限平铺(Infinite Tiling)2。可预测随机数和无限宇宙(可预测随机)3。精准解题(精准解题)4。超大地形的处理(Terrain visualat)Ion)4.1经典算法(从GeoMipMapping、渐进式网格到ROAM) 4.2 Level Art(四叉树和分块LOD) 4.3基于GPU的技术(分页、Clipmap到GPU terrain) 5 .ID Tech 5 6的大文本。程序内容生成6.1程序纹理6.2。过程建模2。内容制作:设计与创作(内容设计& amp;创作)1。暗黑破坏神II 2中的地图马赛克。魔兽世界3中的区域地图马赛克。卫星地质数据的介绍、正则化和再处理(一些飞行模拟游戏)4。超大地图的协同编辑:并行操作、数据同步、手动锁和自动锁的应用。异次元:我们的旅程是星辰大海1。终极沙盒(EVE):当尺度足够大的时候——宇宙层次2的混沌理论和蝴蝶效应。穿越两个宇宙(EVE & Dust):发现更广阔的世界——宇宙沙盒游戏与星球射击游戏的联动——一、编程算法&架构)## 1。无限平铺让我们从最平淡无奇的无限平铺图开始。这应该是构建开放世界最原始、最没有技术含量的方式。技术上,因为太简单了,没什么好说的,就是像地板砖一样铺在同一个坐标系里,坐标可以对齐,就是接缝需要注意,不要穿。但是不要因为这个技术简单就小看它。上面列表中的很多技术都是在循环平铺的基础上发展起来的。让我们来看看。根据维度的不同,循环平铺分为三类:a .在一个维度上展开的水平卷轴游戏(主要是动作游戏)和垂直卷轴游戏(主要是射击游戏)。在这几类游戏中,为了避免圆形平铺给玩家带来的重复疲劳,滚动游戏会加入一些随机或动态的元素,比如《超级马里奥》中背景上云的位置,以及将多层滚动速度不同的背景层分开等等。二维圆形镶嵌的固定角度2D游戏。暗黑破坏神就是这类游戏的典型。黑暗中随机地图的生成本质上是叠加了一定的随机性、约束和边界条件的圆形平铺效果。width = " 550 " data-original = "/47 A0 c 8 c 78 f 1a 5029 c 087 aa 48 df 3 afcee _ r . jpg " >c .在3D游戏中循环平铺高度图,形成连续的地形效果。这在早期模拟飞行射击游戏中很常见,现在很难找到地图。我大学写的第一个地形渲染demo是平铺的,可惜刚翻了一下硬盘,找不到555。这种游戏,在平铺的时候适当辅以一些地图的改动,在节省内存的情况下,可以取得非常好的效果。游戏里找不到地图。拿下面这张身高图来凑数。请下定决心。下面的灰度图立体后,会像地板砖一样一张一张地平铺,3D渲染出来的山峦起伏的壮观效果会达到地平线(嗯,达到远切面)。- # # 2.可预测随机数和无限宇宙(本节的描述和算法,部分参考《游戏编程Gems I》一文【2.0预测随机数】)(图形和游戏Gems数据库)。感兴趣的同学请自行寻找原文。有一个传说中的游戏叫精英。不知道有没有同学玩过。据说这个游戏运行在32K内存的机器上,其中16K是只读ROM。据说这款游戏有着无与伦比的深度:近乎无限的星球,每个星球都有自己的名字和特点。可预测随机数本身就是游戏中应用非常广泛的技术。在这里,我们重点关注它在为游戏提供更多细节(微观)和更广阔世界(宏观)方面的作用。这项技术最重要的原理是,为了给一个游戏世界无限空间的错觉,我们需要满足两个分解条件,可以称之为宏观无限和微观无限。前者涉及问题的空间尺度,后者是任何物体所支持的最低细节层次。-从实现来看,如何设置随机种子是这项技术的核心。给定一个随机种子,生成的随机序列是完全可预测的,因此根据游戏中的一些时空设置定制随机种子,在游戏中的任意时空点得到完全可预测的行为是可行的。最简单的方法是用以下元素配合随机种子:1。世界坐标(即X Y Z的值,可以代表空间中的某一点或某一区域)2。系统时间(可以使用实时或者游戏中设计师定义的时间,如果是前者,需要考虑离线处理)3。正态分布(只需在游戏中建立一个查表)理论上,如果所有的随机性都是由一个给定的随机种子产生的,而这些随机种子要么是游戏定义的常数,要么是通过查表得到的,要么是均匀逝去的,要么是由更高级别的随机种子产生的,那么如果这一层回溯到最后,任何游戏中的宇宙都可以归结为一个初始种子,这就是决定论中经典物理中所谓的首推。事实上,如果我们真的这么做了,我们可以把这个种子给玩家,在刚进入游戏的时候掷出一个2 ^ 64的骰子。这才是上帝造物的真实感受。想象一下,上帝说要有光,于是掷骰子,第一推就落地了,整个时空的巨大齿轮开始运转。在不同的时间和空间点,产生更多的随机序列。...