
物理模拟创新:更多交互
*与 David Ávila 合作完成。
我们持续致力于完善 3D 图形引擎 Evergine 的实用工具。今天,我们想向您介绍一项令我们无比兴奋的功能,它可以帮助您模拟各种运动,无论是粒子碰撞还是风洞中静止汽车所受的空气效应。
我们做了什么
到目前为止,当你在网页浏览器中寻找物理引擎演示时,它们的功能通常都大幅缩水:物体数量少,交互方式也有限……然而,正如你在下面看到的,我们已将高级物理引擎(Bullet Physics)的全部功能带到了网页浏览器中。这使得创建实时物理模拟的方式更加先进。在下面的示例中,你可以看到一个使用关节的模拟,这些关节将不同的物理对象相互连接(桥梁的各个链节),并与场景中的其他立方体动态交互:
我们正在继续努力,在下一个#Evergine版本中将#BulletPhysic引入Web 🙂
现在,这是一个使用物理关节的小型演示。
那么,我们是如何做到的呢?
🧵推文串 👇#GameDev #dotnet #net6 #blazor pic.twitter.com/0U5Ye3EFC9— David Ávila (@davilovick) 2022年12月22日
在网页浏览器中实现这种级别的物理效果并非易事。在下面的视频中,元素更多,并且可以看到它们被物理抛射物击中时如何相互作用:
因此,我们在#Evergine支持的每个平台上都使用相同的物理库(包括下一个版本中的Web😉)。
这将使我们的用户能够增强Web应用程序的交互性,因为我们现在支持#WebXR。希望你喜欢这组技术推文串 🙂 pic.twitter.com/6ExdmgoTH5
— David Ávila (@davilovick) 2022年12月22日
它的用途
各行各业都可以利用这项创新。例如,在粒子碰撞的表示中,研究实验室、大学或其他教育中心也能从中受益。它还可以用于虚拟风洞,以测试车辆、飞机或桥梁的空气阻力。此外,从现在开始,在Web应用程序中重现大气现象时,数学上“投掷”闪电也是可行的。另外,实现逼真的物理模拟可以设计先进的机器学习环境。
WebXR也可以利用Web对物理模拟的支持。例如,在手机上启动一个支持WebXR的Web应用程序,允许通过屏幕上的AR(增强现实)与虚拟放置在现实世界中的物理对象进行交互。
我们是如何实现的
在Evergine中,我们的主要物理引擎是一个名为Bullet Physic或简称Bullet的开源图形引擎。最近,我们成功让Bullet编译为WASM,这是一种用于网页浏览器的二进制代码格式。
据我们所知,目前所有图形引擎都使用外部物理引擎并将其编译为 Javascript 或 S.js,但只有少数能够将其编译为 WASM。我们之所以能够实现这一目标,一方面要归功于 Emscripten(它支持从 C++ 代码编译生成 WASM),另一方面也得益于 Microsoft 在 Blazor 编译器方面的最新进展(这使我们能够链接 Bullet Physics 库并在 Evergine 引擎中使用它)。这一切都离不开 Microsoft 在其另一款应用开发框架 Blazor.NET6 中发布的最新成果。
简而言之,这项创新使我们站在了网页浏览器中图形引擎和3D图像生成的前沿。如果你想了解更多关于Evergine因Blazor和.NET6的进步而带来的新特性,我们很乐意为你提供帮助。
