如何在Unity3d中创建超声波视觉?(蝙蝠视觉)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Unity3d中创建超声波视觉?(蝙蝠视觉)相关的知识,希望对你有一定的参考价值。

我的想法是创建一个游戏,你会看到一切像蝙蝠。有一些 其中已经实现了类似的东西。

问题是我想有另一种类型的 "蝙蝠视觉",这很难解释,但如果我看向一个方向,然后旋转角色,我仍然会看到一些我之前看的东西。这是很难解释的,但是如果我看向一个方向,然后旋转角色,我仍然会看到我之前看的东西。

解释与时间戳。

  • 第0秒,我正在看A点,一个物体在300米外。
  • 第1秒:我旋转到B点,看到100米外有一个物体。
  • 第二节:我同时看到了物体A和B
  • 第3节:我仍然看到对象B

用图片进行解释。enter image description here大家可以看到,玩家首先射出的是超声波。a 首发 A 而后波澜不惊 b 关于 B. 他们两个同时回来,所以两个物体同时被看到。

如果你不明白为什么我看到的物体是延迟的。大家都知道,声音的传播速度大约是13公里,所以一个300米远的物体会在2秒后被看到。所以一个300米远的物体在2秒后就会被看到。

我已经尝试拍摄 RayCastsGameObjects 到的方向,他们越远,该位置的像素就越暗。但你可以想一想... 拍摄200万 RayCasts 每个Frame都不是很健康。我也在想 Shaders 但我不知道怎么可能还能看到。Shaders 同时又在寻找另一个方向。另外,我也没有什么经验 Shaders 并将需要帮助,无论如何。

如果有人有其他的想法,我将很高兴,我可以创建这个。

答案

要实现这一点,最简单的方法是使用一个访问深度缓冲区的图像效果着色器。

  • 根据定义,深度缓冲区中每个像素的值就是该像素在世界中到相机的距离。
  • 你可以根据深度缓冲区给定的距离,每秒钟将每个像素的数值减少一些,并将数值设置为每X秒最大......这将使声音从该物体上弹回给你的播放器的效果。
另一答案

https:/www.youtube.comwatch?v=OKoNp2RqE9A调整颜色以达到需要的效果

另一答案

在我看来,也许你想复制你的玩家已经 "看到 "的任何网格和表面,并通过一些灰度的光线设置来保持这个视野。而 "真实 "的物体都是隐藏的,也就是说,它们的MeshRenderer组件都被禁用或移除。

如果玩家应看到一个像影子一样的物品在他面前,即使他移动,你可以让克隆的可见的复制物随着玩家移动一些时间,直到它们消失。

要找出要复制的东西,我相信你需要的raycasts会比为每个像素做的少很多。克隆网格,然后检查每个顶点的可见性,并在复制的顶点颜色和alpha中设置可见性。

以上是关于如何在Unity3d中创建超声波视觉?(蝙蝠视觉)的主要内容,如果未能解决你的问题,请参考以下文章

用Arduino开发的“视觉辅助”设备

Unity3D学习:实现一个简单的视觉感知

[AutoCars]基于计算机视觉的无人车感知

什么是图像识别?

从传感器到算法原理,机器人视觉避障原来是这样的

Unity3D OpenVR SteamVR 在头盔视觉前面常驻文本