我正在尝试创建一个图形引擎来显示点云数据(目前为第一人称)。我的想法是从我们正在查看的空间中的不同点预先计算单个视图并将它们映射到一个球体中。是否可以插入该数据以确定空间上任何点的视图?
我为我的英语和我糟糕的解释道歉,但我想不出另一种解释方式。如果您不理解我的问题,如果需要,我很乐意重新制定它。
编辑:
我将尝试用一个例子来解释它
图 1:
图 2:
在这些图像中,我们可以看到南瓜的两个不同视图(假设我们在这两种情况下都有一个 360 度视图的球面图)。在第一种情况下,我们有一个南瓜的远景,我们可以看到它的周围环境,并想象我们在角色身后有一个箱子(如果我们向后看,我们会有一个箱子的详细视图)。
所以,第一个视图:南瓜的环境和低细节图像以及胸部的良好细节,但没有环境。
在第二个视图中,我们有完全相反的情况:南瓜的详细视图和胸部的非详细视图(仍在我们身后)。
这个想法是结合来自两个视图的数据来计算它们之间的每个视图。所以走向南瓜意味着拉伸第一张图像的点并用第二张填补空白(忘记所有其他元素,只是南瓜)。同时,我们会考虑胸部的图像,并用来自第二个整体视图的数据填充周围环境。
我想要的是有一种算法来指示像素的拉伸、压缩和组合(不仅是向前和向后,还有对角线,使用两个以上的球体贴图)。我知道这很复杂,我希望这次我表达得足够好。
编辑:
(我经常使用视图这个词,我认为这是问题的一部分,这是我对“视图”的含义的定义:“彩色点矩阵,其中每个点对应于屏幕上的一个像素。屏幕每次只显示矩阵的一部分(矩阵将是 360 球体,并显示该球体的一小部分)。视图是通过旋转相机而不移动其位置可以看到的所有可能点的矩阵。 ")
好吧,看来你们还是不明白它周围的概念。这个想法是能够通过在实时显示之前“预先计算”最大数量的数据来显示尽可能详细的环境。我现在将处理数据的预处理和压缩,我不是在问这个问题。最“预先设定”的模型是在显示的空间上的每个点存储 360 度视图(例如,如果角色以每帧 50 个点移动,那么每 50 个点存储一个视图,事情是预先计算照明和阴影并过滤不会看到的点,以便它们不会被白处理)。基本上计算每个可能的屏幕截图(在完全静态的环境中)。但当然,这很荒谬,
另一种方法是只存储一些战略观点,不那么频繁。如果我们存储所有可能的点,则大多数点在每一帧中都会重复。屏幕上点的位置变化在数学上也是有规律的。我要问的是,一种基于几个战略观点来确定视图上每个点的位置的算法。如何使用和组合来自不同位置的战略观点的数据来计算任何地方的观点。