用于插入映射在球体上的单个视图中的任何视图的算法

时间:2013-05-09 13:46:07

标签: algorithm 3d computational-geometry projective-geometry

我正在尝试创建一个图形引擎来显示点云数据(现在是第一人称)。我的想法是从我们正在查看的空间中的不同点预先计算个别视图并将它们映射到球体中。是否可以插入该数据以确定空间中任何点的视图?

我为我的英语和糟糕的解释道歉,但我无法找到另一种解释方式。如果你不理解我的问题,我很乐意在需要时重新制定它。

编辑:

我会尝试用一个例子来解释它

图片1: First view point

图片2:Second viewpoint

在这些图像中,我们可以看到南瓜的两种不同视图(想象一下,在两种情况下我们都有360度视图的球形图)。在第一种情况下,我们可以看到南瓜的远景,我们可以看到它的周围环境,并想象我们在角色后面有一个胸部(如果我们向后看,我们会有一个详细的胸部视图)。

所以,首先要看的是:南瓜的环境和低细节图像以及胸部的细节但没有周围环境。

在第二个视图中,我们完全相反:南瓜的详细视图和胸部的非详细一般视图(仍然在我们后面)。

想法是将两个视图中的数据组合起来计算它们之间的每个视图。因此,拖曳泵将意味着拉伸第一张图像的点并用第二张图像填充间隙(忘记所有其他元素,只是南瓜)。同时,我们会比较胸部的图像,并用第二个一般视图中的数据填充周围环境。

我想要的是一个算法,它决定了像素的拉伸,压缩和组合(不仅是向前和向后,也是对角线,使用两个以上的球体图)。我知道这很复杂,我希望这次我表达得很好。

编辑:

(我正在使用很多单词视图,我认为这是问题的一部分,这里是我对“视图”的定义:“彩色点矩阵,其中每个点对应于一个像素屏幕。屏幕每次只显示矩阵的一部分(矩阵将是360球体,显示器是球体的一小部分)。视图是通过旋转相机而不移动可以看到的所有可能点的矩阵它的位置。“)

好吧,似乎你们仍然不了解它周围的概念。我们的想法是,在实时显示之前,通过“预先存储”最大量的数据,能够尽可能多地显示详细的环境。我现在要处理数据的预处理和压缩,我不是在问这个问题。最“预先制作”的模型是将360度视图存储在显示空间的每个点上(如果角色移动,例如,每帧50个点,然后每50个点存储一个视图,那就是预先计算照明和阴影以及过滤不会看到的点,以便它们不被处理。 Basicaly计算每个可能的截图(在完全静态的环境中)。但是,当然,这只是荒谬的,即使你可以压缩很多数据,它仍然会太多。

另一种方法是只存储一些战略观点,而不是那么频繁。如果我们存储所有可能的点,则在每个帧中重复大多数点。屏幕上点的位置变化在数学上也是规则的。我要问的是,一种基于fiew战略观点确定视图上每个点位置的算法。如何使用和组合来自不同职业的战略观点的数据来计算任何地方的观点。

0 个答案:

没有答案