【问题标题】:VR distortion correction methodsVR失真校正方法
【发布时间】:2016-08-28 09:26:23
【问题描述】:

我读过这篇文章http://www.gamasutra.com/blogs/BrianKehrer/20160125/264161/VR_Distortion_Correction_using_Vertex_Displacement.php 关于VR中顶点位移的失真校正。此外,还有一些关于其他失真校正方法的说法。我在实验中使用统一(并尝试修改 fibrum sdk,但这在我的问题中并不重要,因为我只想了解这些方法的一般工作原理)。

正如我提到的,有三种方法可以进行此校正:

  1. 使用基于像素的着色器。
  2. 将渲染目标投影到变形网格上 - 并将最终输出渲染到屏幕上。
  3. 顶点置换法

我了解基于像素的着色器的工作原理。但是,我不理解其他人。

第一个问题是关于将渲染目标投影到扭曲网格上。据我了解,我应该首先将来自游戏摄像机的图像渲染到 2(每只眼睛)镶嵌的四边形,然后对这个四边形应用带有校正的着色器,然后在主摄像机前面绘制四边形。但恐怕我错了。

第二个是关于顶点位移的。我应该简单地将着色器(将每个对象的顶点坐标从世界空间转换为反向镜头扭曲和屏幕空间(镜头空间))到相机吗?

附言对不起我糟糕的英语,我只是想了解它是如何工作的。

【问题讨论】:

    标签: unity3d shader virtual-reality distortion


    【解决方案1】:

    对于第三种方法(顶点位移),是的。这正是你所做的。但是,您必须小心,因为这是一个非线性变换,它不会在顶点之间正确插值。您需要对网格进行合理的细分,以使该技术正常工作。否则,长边可能会显示为扭曲的曲线,并且您也可能会遇到 z-fighting 问题。 Here你可以看到对该技术的很好的描述。

    对于扭曲变形网格,情况就是这样。您将屏幕无失真地渲染到渲染纹理。通常,此纹理大于您的真实屏幕分辨率,以补偿失真对表观分辨率的影响。然后创建一个镶嵌四边形,扭曲其顶点,并使用纹理将其渲染到屏幕上。由于这些顶点是扭曲的,它会扭曲你的图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 2013-12-29
      • 1970-01-01
      相关资源
      最近更新 更多