快速读取XYZ点云并将动画点渲染到Unity中

Quickly reading XYZ point cloud and rendering animated points into Unity

我在 Unity 中有一个应用程序,目前从包含点云的 x、y 和 z 坐标的文本文件中读取数万个点。可想而知,这需要花费大量的时间。

我不熟悉 Unity 中的粒子系统,正在寻找有关如何加快此过程的建议。我曾尝试使用 ParticleSystem 对象,但似乎无法将其与读取 xyz 坐标的文本文件联系起来。我还尝试将文本文件转换为 .obj 并将其作为模型导入到 Unity 中。虽然 .obj 模型出现在 Blender 和 Meshlab 中,但它没有出现在 Unity 中,因为我认为它缺少 "mesh"。

此外,积分必须是"animated"。这意味着我有一个呈现的 xyz 坐标的文本文件。然后将此文本文件替换为不同的 xyz 坐标,然后再次渲染 "animating" 点云。这使得渲染速度成为一项基本要求。我的解决方案最初是使用更新的 .obj 模型,但是如上所述,这不起作用。

感谢任何帮助。谢谢。

我建议将 xyz 文件转换为二进制文件。它会读得更快。出于某种原因,Unity 在读取文本文件方面真的很慢。因此,我建议为此任务创建一个 C# 或 C++ 控制台应用程序。

然后您可以将此二进制文件导入 Unity 并在 Unity 中创建网格,而无需像完成那样对它们进行三角剖分 here 或者您可以像您所说的那样使用粒子系统。

我完成了类似的任务,但我修改了免费点云查看器工具,因为它允许您创建具有 65535 个限制的网格,并且我有一个大约 100 万个点的点云。我将它转换为二进制文件,需要 3 4 秒才能将其导入 Unity 并创建网格和所有内容。几万点根本不是问题。

导入点云后,您只需将点转换到新导入的位置和网格的 RecalculateBounds。然后你就有了你的动画。

注意:在Unity中读取文本时尽量避免string.split。据我观察,这是瓶颈。我建议创建不需要任何拆分操作的文件。