8in1模拟器v2模拟飞行_重新想象飞行模拟器:过去和现在

本文介绍了如何使用Babylon.js和高度图技术在WebGL中创建逼真的3D地形,以重构经典的飞行模拟器。通过解码高度图、创建纹理细节和应用自定义着色器,展示了现代Web开发在游戏模拟中的强大功能。
摘要由CSDN通过智能技术生成

8in1模拟器v2模拟飞行

本文是Microsoft的Web开发系列的一部分。 感谢您支持使SitePoint成为可能的合作伙伴。

Apple于1980年推出了Flight Simulator的第一个版本,令人惊讶的是,它是3D版本! 那是一个了不起的成就。 当您考虑到所有3D都是手工完成,精心计算和低级像素命令的结果时,这会更加令人惊讶。 当布鲁斯·阿特威克(Bruce Atwick)处理早期版本的Flight Simulator时,不仅没有3D框架,而且也根本没有任何框架! 这些版本的游戏大多是用汇编语言编写的,与流经CPU的1和0仅一步之遥。

当我们着手为网络重新构想Flight Simulator (或称为Flight Arcade)并演示在新的Microsoft Edge浏览器和EdgeHTML渲染引擎中可能实现的功能时,我们不禁想到创建3D的对比,然后现在-旧的Flight Sim,新的Flight Sim,旧的Internet Explorer,新的Microsoft Edge。 当我们使用诸如Babylon.js之类的出色框架在WebGL中雕刻3D世界时,现代编码似乎几乎是豪华的。 它使我们可以专注于非常高层次的问题。 在本文中,我们将分享我们应对这些有趣挑战之一的方法:一种创建逼真的大规模地形的简单方法。

注意:本文的交互式代码和示例也位于: http : //www.flightarcade.com/learn/

建模和3D地形

大多数3D对象都是使用建模工具创建的,这是有充分理由的。 在代码中很难创建复杂的对象(例如飞机,甚至是建筑物)。 建模工具几乎总是有意义的,但是也有例外! 其中一种情况可能是诸如Flight Arcade岛的连绵起伏的丘陵。 我们最终使用了一种发现更简单甚至可能更直观的技术:高度图。

高度图是一种使用规则的二维图像来描述岛屿或其他地形等表面的高程释放的方法。 这是一种处理海拔数据的非常普遍的方式,不仅在游戏中,而且在制图师和地质学家使用的地理信息系统(GIS)中。

为了帮助您了解其工作原理,请查看下面的交互式高度图。 尝试在图像编辑器中绘图,然后检查结果地形。

图像1-互动式高度图演示

在此处尝试交互式演示。

高度图的概念非常简单。 在上面的图像中,纯黑色是“底”,纯白色是最高的峰。 中间的灰度颜色表示相应的高程。 这为我们提供了256个海拔高度,这对于我们的游戏来说是很多细节。 现实生活中的应用程序可能会使用整个色谱来存储更多级别的细节(如果包含alpha通道,则为256 4 = 4,294,967,296个细节级别)。

与传统的多边形网格相比,高度图具有一些优点:

首先,高度图要紧凑得多。 仅存储最重要的数据(海拔)。 需要以编程方式将其转换为3D对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值