赛车手游中“随意变幻莫测”的生活环境到底是如何产生的?

lxf2023-03-16 12:46:01

其他国家一位小伙用时16个月推出的3D版赛车手游,这几天突然火了一把。

赛车手游中“随意变幻莫测”的生活环境到底是如何产生的?

仅需一个浏览器,就可开车从山林、沙滩,“无缝切换”到辽阔的荒漠乃至平原区。乃至也可以选择一年四季或是白天和黑夜的生活环境设计风格。

赛车手游中“随意变幻莫测”的生活环境到底是如何产生的?

在不愿自身开车时,居然还能够打开无人驾驶方式,体会一波“AI飚车”的乐趣。

网友也是嗨到不行:在此情景怎么能少得了传统BGM逮虾户(Deja Vu)

下面我们就来看看它到底是怎么达到的。

他是怎么达到的!

这款游戏彻底应用Three.js来开发,经雷子检测,这款游戏能够在大多数浏览器工具中运作,甚至是在手机端上都拥有很优秀的主要表现。

除此之外,开发人员还提出了不同级别的渲染设置来确保特性,大家可以随意选择适合自己机器设备配置。是【模糊不清不光滑】或是【小细节丰富多彩】,丰俭由君哦~

除开开始所提到的自由切换地址、时节季节变化之外,这一赛车手游还可以自由切换各种车型和角度。

那么这样的赛车手游中“随意变幻莫测”的生活环境到底是如何产生的?

形成高度图

  • 应用类似PerlinNoise的算法形成无尽铺满的高度图,再加以改动并实现更加生动逼真山色。
  • 应用Alea这一库来形成伪随机数。www.npmjs.com/package/ale…

规划道路

  • 道路的开端最好是选择全部地貌世界里不是很险峻,也不要太深一个地方。将在这里做为道路中线的第一个点。
  • 挑选一个方向来检测四周的高度图用于评定多个方的梯度方向。
  • 随后,使中心线向一个倾斜度最小方向移动10米。这一点信息内容被写一个双向链表中,每一个定位点信息内容都包含倾斜度,路面宽度,折射率等数据库。
  • 实现一个无穷无尽的路面,以间距车辆位置15KM的地平线分界,这也是开发过程中用时最长,让小伙没了较多秀发的一个问题。
  • 应用二次贝塞尔曲线以1m的部门做路线平滑处理。

赛车手游中“随意变幻莫测”的生活环境到底是如何产生的?

地面环境

  • 为了进一步提高性能,接近道路和避开路面的地块用了不一样网格图相对密度来处理。
  • 路面被突出为一个简单的矩形网格,由3个高小细节块和9个低细节块构成,每一个长100m,伴随着汽车的前行而循环系统。

赛车手游中“随意变幻莫测”的生活环境到底是如何产生的?

图型

  • 路面纹路选用世界坐标UV,并混和PerlinNoise以更改植物群落颜色。
  • 根据倾斜度混和悬崖峭壁面纹路和端点偏移。
  • 小伙一开始想完成动态性阴影贴图,但过于复杂进而舍弃时选择选用一种更简单计划方案,便是在花草树木的下方运用深棕色纹路,导致有黑影的视觉错觉。
  • 全部落叶均由简单精灵图和立体图形构成,将多种多样转变存储在一个纹理图中,该纹路应用顶点着色器里的噪音取样。

赛车手游中“随意变幻莫测”的生活环境到底是如何产生的?

物理系统

  • 每一个车轮子都独立融合作用力,滑动摩擦力与地面法向来单独计算物理上动力学模型的特点。以此处理车子底盘位置难题。
  • 道路两侧的施工围挡没有完全的选用物理碰撞优化算法,反而是应用间距查验去解决。
  • 物理特征计算极为耗费特性,因此小伙去掉了花草树木,标识牌等别的东西物理特征计算。

提升

  • 根据合拼相仿网格图的图形,十分细致入微的管理方法实例对象进而节约提高3D渲染高效率。
  • 汽车在路面里的开展状况能被持续跟踪测算,并依据发展前景可见度来释放出来看不到元素并使其多次重复使用。
  • 给予一系列和品质相关的设置以满足不同设备上的3D渲染。

开源系统了没有?

现阶段这个游戏都还没开源系统。但是小伙表明,尽管没有开源系统整个项目计划,但后面可能开源系统一部分分系统,如图型MOD插口等。

赛车手游中“随意变幻莫测”的生活环境到底是如何产生的?

针对这款游戏将来,小伙也立下好多个flag,包含在自然环境上,开发设计更多越野车地址、添加大量自然环境小细节,包含工程建筑、小动物、绿色植物黑影、灯光照明等;

跑车上,添加更多跑车肌肉和车辆型号;气温上,优化气温种类(雨天、降雪、起风等),也进一步改善已经有天气实际效果;

作用上,以后会添加竞争模式和全球排行榜(包含特惠竟速、大比拼间距等),与此同时系统进一步进行改善,将来兼容摇杆、赛车模拟器等。

码上AdminJS感受

和以往分享threejs新项目一样,这一赛车手游的当地项目代码雷子已经备份数据到AwesomeSites库房里的pack02里面了。

github.com/ezshine/Awe…

算不上源代码,但依旧具备学习与借鉴的使用价值~


  • 我就是雷子老猿,微信公众平台同名的。
  • 加本人微信沟通交流,个人微信号:dashuailaoyuan