首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >渲染的3D场景到点云

渲染的3D场景到点云
EN

Stack Overflow用户
提问于 2011-11-16 09:10:24
回答 3查看 1.4K关注 0票数 1

有没有办法从渲染的3D场景中提取点云(使用OPENGL)?

详细说明:

输入应为渲染的3D场景。

例如,输出应该是具有顶点(x,y,z)的三维数组。

任务可能还是不可能?

EN

回答 3

Stack Overflow用户

发布于 2012-04-12 06:37:29

  • 使用正交视图渲染场景,以便所有内容一次都能显示在屏幕上。
  • 使用g缓冲区(搜索此术语或“胖像素”或“延迟渲染”)在帧缓冲区中的每个采样点捕获(X,Y,Z,R,G,B,A)。
  • 回读您的帧缓冲区,并将(X,Y,Z,R,G,B,A)元组放入线性数组中的每个采样点。

现在,您可以使用OpenGL从常规几何图形中采样点云。除了从GPU到主机的回读之外,这将是非常快的。

更进一步的是:

  • 使用深度剥离(搜索此术语)在不距离camera.
  • Repeat最近的表面上生成样本从多个视点(或相当于场景的几个旋转)进行渲染,以确保从场景的角落和缝隙中捕获碎片,并将每次遍历生成的点附加到一个大的线性数组中。
票数 2
EN

Stack Overflow用户

发布于 2011-11-17 01:54:21

如果我理解正确的话,您想解构3D场景的最终渲染(2D)。通常,OpenGL中没有内置的功能来实现这一点。

然而,有许多论文描述了分析2D图像以生成3D表示的方法。例如,Microsoft Kinect在某种程度上就是这样做的。从SIGGRAPH的前几版论文开始吧。许多实现可能使用图形处理器(OpenGL、DirectX、CUDA等)施展他们的魔法,但仅此而已。例如,用于识别对象可见边缘的边缘检测滤波器和直方图函数可以在GPU上运行。

根据应用程序域的不同,您可能会遇到一些几乎不可能的事情,或者可能有一种快捷方式可以用来标识形状和顶点。

编辑

我认为您可能对OpenGL渲染的工作原理有误解。应用程序生成形成多边形和3d对象的三角形的顶点并将其发送到OpenGL。然后,OpenGL对这些对象进行光栅化(即转换为像素),以从具有特定视场的特定视点形成3d场景的2d渲染。当您说要检索顶点的“点云”时,很难理解您想要什么,因为您首先要负责生成这些顶点!

票数 1
EN

Stack Overflow用户

发布于 2011-11-18 01:46:22

我认为您应该将输入数据与转换和模型视图矩阵相乘。不需要使用OpenGL,只需要一些向量/矩阵的数学运算。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8145400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档