【问题标题】:Dynamic Environment mapping from camera in Augmented Reality setting增强现实设置中来自相机的动态环境映射
【发布时间】:2015-07-18 20:33:42
【问题描述】:

我正在尝试实现类似the technique described in this (old) paper 的功能,以使用手机摄像头的视频帧在 AR 应用中创建环境映射错觉。

我想拍摄相机框架,将其划分为多个子区域,然后将它们用作立方体贴图上的面。相机框架的划分如下所示:

现在 X 区域很简单,我可以使用 glCopyTexImage2D 将该方形区域复制到我的立方体贴图纹理中。但我需要关于 X 周围梯形区域的帮助(暂时忘记三角形)。

如何获取这些梯形区域并将它们扭曲为方形纹理?我认为我需要对后来发生的透视投影进行相反的转换,这样如果我将立方体贴图渲染为相机周围的天空盒,两者将在最终渲染中相互抵消(这是否解释了我想要的?)。

在此之前,我尝试了一个更简单的步骤,将正方形 X 区域放置在立方体贴图的每一侧,以查看 glCopyTexImage2D 是否甚至可以用于此目的。可以,但结果没有向右旋转,当我将立方体贴图渲染为天空盒时,有些面“颠倒”了。问题类似:如何在将它们用作纹理之前旋转它们?

我也想过从另一边解决问题并修改“纹理坐标”以进行必要的调整,但这似乎也并不容易,因为使用“textureCube”在片段着色器中查找比正常的纹理查找。

有什么想法吗?

我正在尝试在我的 Android 上使用 OpenGL ES 2.0 的 AR 应用程序中执行此操作,但我想更一般的 OpenGL 建议也可能有用。

更新

我得出的结论是,这不值得再追求了。这篇论文让它看起来不错,但我对手机摄像头的实验表明了一个主要矛盾。如果您想在 AR 中渲染的对象中反映环境,则相机视图非常有限。当相机远离被跟踪物体时,您有足够的环境信息来进行良好的反射,但您几乎看不到它,因为相机很远。但是,当您将相机靠近以详细查看令人敬畏的反射时,被跟踪的物体将占据相机的大部分视野,您几乎没有任何环境可以反射。所以无论哪种情况,你都会输,结果不值得。

【问题讨论】:

    标签: android opengl-es opengl-es-2.0 augmented-reality vuforia


    【解决方案1】:

    您似乎需要使用文章中描述的 UV 映射创建网格,并将其从相机的纹理渲染到另一个纹理。然后将其用作立方体贴图。

    【讨论】:

    • 感谢您为我提供了一些实际可行的想法。不知何故,我自己无法想到这一点。但是,这听起来确实很昂贵,因为这需要对每一帧都进行。
    猜你喜欢
    • 1970-01-01
    • 2011-01-12
    • 2014-05-10
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 2013-02-20
    相关资源
    最近更新 更多