加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹰潭站长网 (https://www.0701zz.cn/)- 图像处理、低代码、云通信、数据工具、物联设备!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

Linus Torvalds 再改页面锁逻辑

发布时间:2021-01-30 11:17:24 所属栏目:外闻 来源:互联网
导读:此外,Rust 还允许我们将数据存储在堆栈或堆上,并在编译时确定何时不再需要内存,何时可以清理内存等,这样我们就可以有效地使用内存,同时也有更好的性能。 Rust 具备的优势优势: 编译器提供了更好的内存安全性 更容易实现并发 零代价抽象 所以,不管你是

此外,Rust 还允许我们将数据存储在堆栈或堆上,并在编译时确定何时不再需要内存,何时可以清理内存等,这样我们就可以有效地使用内存,同时也有更好的性能。

Rust 具备的优势优势:

  • 编译器提供了更好的内存安全性
  • 更容易实现并发
  • 零代价抽象

所以,不管你是初学者还是多年的程序员,都可以从 Rust 开始。因为在使用方式上,该语言都接近于既定的替代方案。

2.TypeScript
 

  • 我添加了 Griffin 起飞状态的树模型,以及无需重启应用即可重启游戏的游戏状态。Griffin 有两种状态:站立(站在树枝上)和飞翔。
  • 我利用 libSFML 添加音效播放:当 Griffin 起飞时,会出现鹰的尖啸和风声。

构建人体姿态估计模块

该模块旨在检测来自摄像头输入的人体姿态。具体而言,我们需要知道左 / 右手肘、左 / 右肩膀、脖子和鼻子的位置,才能驾驭 Griffin 的翅膀和身体,并触发特定的姿势。OpenPose 是一个流行的开源库,并具备大量估计人体姿态、手部姿势和面部特征的 AI 模型。我使用的是人体姿态估计 COCO 模型,以 resnet18 作为骨干特征提取器。该模型可以实时检测 18 个关节点,包括上述我们所需的 6 个点。
 

实现

构建 3D 游戏引擎

为了更好地模拟飞行体验,Griffin 系统将以第三人称视角渲染 3D 世界。想象一下在 Griffin 正后方有一个摄像头看着他所看的地方。为什么不用飞行模拟器那样的第一人称视角呢?因为看到鹰的翅膀并同步移动自己的手臂,可以帮助 Dexie 快速学习如何控制这个游戏,并拥有一个更沉浸式的体验。

自行构建 3D 游戏引擎并非易事,可能需要好几周的时间。现在大多数开发者只使用专门的游戏引擎,如 Unity 或 Unreal。但是很遗憾,我找不到可以在 Ubuntu OS/ARM 芯片组上运行的游戏引擎。一种替代方法是找到在 OpenGL 上运行的开源飞行模拟器。这可以保证游戏引擎能在 AGX 上运行,因为它支持 OpenGL ES(OpenGL 的轻量级版本)并且得到硬件加速。如果你不想游戏引擎以龟速运行的话,则这是必要的条件。

幸运的是,我找到了一个满足标准的 C++ 开源飞行模拟器,并做了以下修改:

  • 我用基于目标的系统替换了基于按键的飞行控制系统。这样我就可以不时地设置 Griffin 身体的目标旋转角度,之后这一旋转目标将通过手势识别模块自行设置,该模块可以映射 Dexie 胳膊的方向。
  • 我增强了静态 3D 模型管理,以支持层级结构。原始的飞机模型是作为一个刚体移动的,它没有移动的身体部位。但是 Griffin 有两个翅膀,需要独立于身体单独运动。为此,我添加了两个翅膀,使之作为身体之上的单独 3D 模型。我可以单独旋转每个翅膀,也可以移动 Griffin 的身体,间接移动两个翅膀。实现该目标的一种恰当方式是构建骨骼动画系统,将身体部位组织为树结构的形式。但是,由于我要处理的身体部位只有三个(身体和两个翅膀),因此我可以选择一种简便的方式。为了编辑鹰和树 3D 模型,我使用了一个免费易用的 3D 编辑工具 Blender。

(编辑:鹰潭站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读