4

免责声明:我实际上并没有尝试制作一个,我只是好奇它是如何完成的。

当我说“最准确”时,我包括了基础知识

  • 距离
  • 光照水平

而且越复杂

  • 大气中的灰尘
  • 雨, 雨夹雪, 雪
  • 植被
  • 抽烟

如果我想对此进行编程,我应该查看哪些资源以及应该注意哪些事项?此外,是否有任何有关视线背后理论的相关书籍,包括所有这些变量?

4

4 回答 4

4

我个人对这个话题不太了解,但是通过谷歌搜索一下会发现一些正式的论文,其中包含一些非常相关的信息:

http://www.tecgraf.puc-rio.br/publications/artigo_1999_efficient_lineofsight_algorithms.pdf - 提供有效执行 LOS 计算的两种不同方法的详细描述,以及涉及的问题

http://www.agc.army.mil/operations/programs/LOS/LOS%20Compendium.doc - 这个旨在维护“独特的 LOS 算法的当前列表”;它有一个部分列出了很多并详细描述了它们,重点是军事应用。

希望这可以帮助!

于 2009-07-24T15:21:36.703 回答
3

通常,一个人将世界表示为某种空间分区数据结构中的一组空间体积,然后将代表您的“视线”的射线与该结构相交以找到它所击中的一组对象;然后从射线源开始按顺序遍历这些以确定整体结果。反射物体会导致更多的光线被发射,不透明物体会停止行走,半透明物体会部分影响结果。

您可能想阅读光线追踪;有大量关于该主题的文献以及解决您列出的基本相同问题的易于理解的方法。

于 2009-07-24T15:17:29.737 回答
2

显而易见的问题是,您真的想要最准确的吗?为什么?

我曾开发过依赖于视线的游戏,你真的需要清楚地考虑你想要什么样的视线。

首先,人工智能可以看到你身体的任何部分吗?还是您在谈论“眼对眼” LOS?

其次,如果玩家的摄像机视图不是他的虚拟角色的眼睛视图,玩家将不会将您高度准确的 LOS 视为高度准确。在这一点上不准确是好的。

我并不是要劝阻你,但请记住玩家体验是第一,这可能意味着没有最好的 LOS。

我的一个好朋友已经为一系列流行的主机游戏制作了 AI。他经常讲述一个关于 AI 在第一场比赛中如何最有趣(和最有趣)的故事,因为他们偶然发现了你,而不是从远处看到你。现在,他有很好的 LOS,并花时间试图让他们变得愚蠢,让他们像第一场比赛一样有趣。

那你为什么要这样做?游戏需要吗?或者你只是想要挑战?

于 2009-07-24T15:26:14.123 回答
0

由于输入没有很好地定义,因此没有“一种算法”。如果您将 Dust-In-Atmosphere 视为一个常数值,那么有一种算法可以将其考虑在内,但事实是灰尘水平会因点而异,因此您想要的算法需要知道如何您的灰尘数据是结构化的。

当今光线追踪器中最常用的算法只是增量光线行进,根据定义这是不正确的,但它确实在一定程度上接近了终极答案。

即使你设法将所有这些属性合并到一个单一的主算法中,你仍然必须以某种方式处理不同的人如何看待相同的设置。有的人近视,有的人远视。然后是色盲。更不用说大气中的灰尘水平也会影响泪腺,进而影响能见度。然后是人们实际看到的和他们认为看到的之间的完全二分法......

这里有太多变量,无法以统一的解决方案为目标。将您的环境视为体素化空间,并通过它发射光线。我怀疑这是您一生中能够完成的唯一解决方案...

于 2009-07-24T15:18:37.487 回答