使远处的对象在OpenGL中始终显示得更大,而无需重新计算顶点位置



https://i.stack.imgur.com/ZPzXN.jpg

我正在渲染一个3D场景,该场景需要具有与人眼相同的视角,然而,我需要距离较远的对象,以使其看起来比当前场景中的对象更大。

假设我有一个狭长的矩形棱镜,略高于相机,一直延伸到远处。棱镜在用户附近会显得很大,但会逐渐变细,最终变成一条细的像素化线。这就是我试图阻止的。我想要一种方法,使棱镜的锥度更慢,这样可以看到更多的长度,而不会扩展靠近用户的部分。我目前的解决方案是将其拆分为许多每个生长的矩形棱镜,这些棱镜延伸到远处,但这种方法显然计算成本很高。

有没有办法在不改变视角的情况下,即在不"放大"场景的情况下操纵系统,使远处的物体看起来更大关键是场景不能出现扭曲。它应该只是看起来像是远处的物体已经长大了。

我不确定我会采取什么途径来实现这一目标。我最初的想法是对视图矩阵的操作,但我认识到这可能没有帮助。

澄清并根据要求提供更多图纸。

您似乎在寻找非线性投影(不直接)

该论文或论文提出了一种实现这一点的方法(查看其他方法的相关工作)

最新更新