【问题标题】:3d rendering of a surface from a depthmap从深度图对表面进行 3D 渲染
【发布时间】:2010-08-24 09:07:07
【问题描述】:

使用立体视觉,我正在生成表示从相机观看的 3D 环境的深度图。每个“关键帧”有一个与相机位置相关的深度图。目标是将这些 2d 深度图转换为 3d 空间(然后将它们合并以重建整个环境)。

在 3d 中转换这些深度图的最佳(有效)方法是什么?每个深度图都是 752x480 大,因此三角形的数量可以增长得非常快。我想要一个自动系统来管理对象的详细程度。

我的团队使用 Ogre3d,因此很高兴找到解决方案。我正在寻找的与 Terrain 所做的非常相似,只是我希望能够将生成的对象放在我想要的任何位置(平移、旋转),而我认为 Terrain 无法做到这一点。

我对 Ogre3d 很陌生,所以如果我应该知道一个简单的解决方案,请原谅我。如果 Ogre3d 以外的其他工具更适合我的问题,我很乐意了解它!

【问题讨论】:

    标签: c++ 3d ogre3d


    【解决方案1】:

    不清楚你想做什么“将 depahtmap 与环境合并”?

    无论如何,在您的情况下,您似乎坚持使用地形高度图技术将它们制作为 3d。 在您的情况下,由于深度图是屏幕对齐的,请使用屏幕空间简单的光线投射技术。因此,您必须在 ogre3D 中使用该深度图并在您想要的像素上转换它的合成器。

    深度图的平移和旋转可能仅限于屏幕上的 xy,就像地形高度图(您不能使用高度图创建洞穴)一样,您确实会错过一个维度。

    不直接相关但可能有帮助:在纯屏幕空间中,有一种“位置重建”技术可以帮助获取对象世界空间的位置,但前提是您在用于生成深度图的相机上有大量信息'重新使用,例如:http://www.gamerendering.com/2009/12/07/position-reconstruction/

    【讨论】:

    • 非常感谢您的回答。您提供的链接非常有趣。但是有一点我没有说清楚:深度图是从真实世界的相机中计算出来的,但是重建的环境应该可以在各个方向进行探索。操作的结果应该是一个变形的网格悬挂在空间中,例如可以旋转。我正在寻找 3d 表示,而不仅仅是屏幕渲染,所以我认为我不能为此使用着色器...
    • 那么你就被高度图困住了,比如重建。 (你可能想尝试点云,但它通常更慢检查visual-experiments.com)使用深度图重建3d对象是图像分析的主题,所以你可能想看看那里(opencv库使用sourceforge.net/projects/reconststereo
    • 谢谢!感谢visual-experiments.com 网站,我找到了grail.cs.washington.edu/software/cmvs,它处理了我面临的一些问题。我现在有一些阅读要做!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多