Unity3d Kinect v1,处理到.obj到unity

Unity3d Kinect v1,处理到.obj到unity,unity3d,processing,kinect,Unity3d,Processing,Kinect,我想创建一个全息图,通过kinect导出到全息透镜。但是速度很慢 我使用教程收集点云数据,并使用库以.obj格式将数据导出为三维对象。导出obj的库不接受点,因此我必须绘制小三角形。我将文件.obj.png和.mtl保存在本地xampp上 接下来,我下载带有unity脚本和WWW对象的文件。我还使用unity的资产存储中的运行时OBJ导入器在运行时创建3D对象 最后一部分是在hololense上导出unity应用程序。(我下一步做) 但在此之前, 这一过程正在进行,但非常缓慢。我希望全息图是流动

我想创建一个全息图,通过kinect导出到全息透镜。但是速度很慢

我使用教程收集点云数据,并使用库以.obj格式将数据导出为三维对象。导出obj的库不接受点,因此我必须绘制小三角形。我将文件.obj.png和.mtl保存在本地xampp上

接下来,我下载带有unity脚本和WWW对象的文件。我还使用unity的资产存储中的运行时OBJ导入器在运行时创建3D对象

最后一部分是在hololense上导出unity应用程序。(我下一步做)

但在此之前, 这一过程正在进行,但非常缓慢。我希望全息图是流动的。浪费了很多时间:

  • 获取kinect的深度和rgb数据
  • 将数据导出到obj png和mtl文件
  • 尽可能频繁地在unity上下载文件
  • 渲染文件
我想到了流媒体,但是unity需要一个完整的obj文件来渲染吗?如果我将.png压缩到.jpg,会有更多的时间吗


你有什么建议可以帮助我吗?

目前,你的问题措辞令人困惑:不清楚你是想记录点云,然后在Unity中加载和渲染,还是想以某种方式将点云与对齐的RGB纹理以接近实时的方式流到Unity中

您的初始尝试正在使用处理

关于记录数据,我建议使用,它可以将深度和RGB数据记录到.oni文件中(请参阅)

录制完成后,可以在每个帧中循环,并为每个帧将顶点存储到文件中

在保存到.obj方面,您需要将点云转换为网格(在3D中对顶点进行三角化)

另一种选择是将点云存储为如下格式。 您可以在中的处理中找到有关写入.ply文件的更多信息

就数据流而言,这将非常复杂:

  • 如果对所有顶点进行流式处理,则会产生大量数据:最多921600个浮动((640 x 480=307200)*3)
  • 如果同时对深度(11位640x480)和RGB(8位640x480)图像进行流式处理,则会产生更多数据。 一个选项可能是仅发送具有深度和整体跳过点的顶点(例如,每三个点发送一次)。在发送数据方面,你可以试试
一旦你在团结中获得了分数,你就应该能够

就网络性能而言,最理想的是深度数据的编解码器(压缩器/解压缩器)。到目前为止,我还没有使用过,但做一个快速的测试,我发现有一些选项,比如(非常日期)。 您需要做一些研究,看看已经有哪些kinect v1深度流媒体库,测试并看看哪些最适合您的场景。
理想情况下,如果库是用C语言编写的,那么您就有可能使用它来解码Unity中接收到的数据。

FYI:听起来您有功能代码,但这并没有达到您想要的性能水平。功能代码的评审(以及明确的性能评审)是的主题。但是,你必须把你的代码放在问题中(这通常也是这里的一个要求)。谢谢你,让我们说代码是非常基本的,我正在使用我提到的库和教程。但我的问题是策略和知识。谢谢你的回答,是的,我想通过实时传输在全息透镜中看到全息图。我使用了希夫曼的图书馆,因为它是第一个,而且很有效。你是说简单的openni更快?我使用ObjExporter,但它不适用于点,所以我必须创建小三角形,以将.obj文件保存为纹理和.mtl的.png文件。你认为.ply方法更好吗?我试图找到瓶颈,是我的电脑,是统一还是处理。我还在学习,非常感谢你的指点。我推荐SimplePenni的唯一原因是因为它内置了序列化功能:能够轻松保存/加载深度+RGB流。如果你需要实时更新,没有真正的理由。使用KinectP5库可以很好地获取点云数据。尝试对低分辨率版本的有效点云进行流式处理,并统一渲染(作为顶点,而不是三角形网格)。看看表演怎么样。如果在视觉效果/性能方面还可以,请查看纹理流(无论是整个内容,还是仅用于低分辨率3d点的值列表)……否则,您可能需要找到一个深度贴图编解码器,以便在网络上使用,如果您仍在学习,这将是一个更为核心的编解码器,但编解码器的重点是处理基本的数据压缩/解压缩。如果答案是有帮助的,请随意投票,或者在你认为合适的时候标记它;)