[Released] Point Cloud Viewer Tools

hi,

Now available, basic point cloud viewer for DX11 (+mesh version included for non-dx11)

Current Features

  • DX11 Point Cloud Viewer (up to 150 million points *depends on your hardware stats) *with v3 format, 432 million visible points have been tested, ~10billion point dataset was also tested)
  • Single color and RGB point cloud shaders included (for both DX11 non-dx11 modes)
  • Supported import formats: XYZ, XYZRGB, CGO, ASC, CATIA ASC, PLY (ASC)
  • Editor plugin#1: Point Cloud To Binary (saves data to custom binary format for faster reading)
  • Editor plugin#2: Point Cloud To Unity Meshes (splits point cloud data into 65k meshes)
  • This is first version, so more features are coming and can be requested.
    ** Warning: You need to be familiar working with point clouds, otherwise you’ll have problems also, this is NO USE for games, and finally, if you want to view point clouds then use proper point cloud viewers for it, Unity is not good for large clouds.

Asset Store

More Info images (support blog)

Github for Issues and Wiki Documentation
https://github.com/unitycoder/UnityPointCloudViewer

Video from @sjm-tech : point cloud viewer in action

*Note that they have added extra features like measurements, custom UI to control material etc.

Images




(more images in the blog page)

*22/12/19 edit info, update links

2 Likes

Could you make a webplayer? Or a downloadable demo?

Added pc exe demo (DX11) download (with 2.5million points).
http://unitycoder.com/blog/2014/03/19/asset-store-point-cloud-viewer-unity/

Webplayer won’t be possible in current DX11 version, because it uses System.IO to read files. (also those data files start to get +100mb on bigger clouds…)

Hi!

I’m really interested in this.

Is it possible today to use lod in the system?
Example, I have 20 files with about 5 million points in each one. I divide these into a high 5 million, medium 1 million and low 500 k point cloud. Based on distance from camera it would switch to a lower lod. Or would that lag when switching between poitclouds?

Have you considered lodding the pointclouds using an octree? For example using pcl; http://docs.pointclouds.org/1.7.0/group__octree.html. That would solve the lod problem instantly:)

+1 for point size
+1 for point normals

LOD,
Basically its just a vector3 array, can re-initialize it and load new points in (takes several seconds depending on the amount and your harddisk…)
Main problem is that only one dx11 cloud “object” can be viewed at a time… so LODding single object doesnt really help much, since you could read the full cloud on it at start anyways…

For the non-dx11 version, that might work nicer, since it uses unity mesh assets…

But adding to wishlist for later testing.

Your system is on my buy-list:) Not sure if you have seen this:

I haven’t tested it so I don’t know the differences from your system. Looking forward to hear progress regarding lodding.

havent seen that before, didnt seem to work straigth away… (no dx11 there?, and not sure if there are some import formats supported? or what the dll does, needs pro for that dll?)

lods,
tested: dx11 version can load new cloud anytime, but doesnt really since there is only 1 cloud at a time…

mesh version, to be tested.

  • load low res cloud, split to meshes, “group” them
  • load med res cloud, split to meshes, “group” them
  • load high res cloud, split to meshes, “group” them

then hide/show those groups based on distance… not really sure yet how would that look and if that really helps much.

*Update on that^, no progress yet, have added normals support for PLY format (for the mesh converter)

I have a quick question with regards to the input formats, I have some point cloud data in the format of RCS files, are these supported?(i’m new to point clouds). I know they aren’t listed but I thought I’d ask.

Not supported, but if you can send me a sample file (or the file specifications), I can take a look.

Thanks for the quick reply. Unfortunately I can’t provide a sample file, all I know is that it comes from a Faro camera and my boss has asked if it’s possible to get it into Unity.

If you can then open it in faro scene or some other tool, then its easy to export into other formats (like .xyz)

Seems like it could be "Autodesk ReCap Point Cloud .rcs and .rcp", i’ll check if can find some sample file…

Hi,

Just bought the Point Cloud Viewer yesterday and have been experimenting with it for a project were working on. We’ve been really impressed with it.

Is there anyway to get it to read the .las file format as this is becoming fairly standard to lots of scanners?

Thanks!

I’ll have a look (and adding to wishlist).

Next update should be within 10days, mainly:

  • faster binary loading
  • 1 new import format
  • original mobile point-mesh demo scene included in the package

Thanks for the quick reply. Its a really good asset, I’m looking forward to the next point release.

V1.4 is now live in the asset store:

  • Experimental binary import support for Brekel Point Cloud Pro V2 (can view single cloud or animated frames) *DX11 only
  • Can also convert animated Brekel point cloud frames into unity meshes
  • Much faster binary loading (somewhat experimental still)
  • Mobile demo scene included (its currently quite heavy, will be adjusted in coming updates, and hangs on iphone5, works better on androids)

“Brekel Pro Pointcloud V2 is a Windows application that records 3D pointcloud using a Kinect sensor” : http://brekel.com/brekel-pro-pointcloud-v2/ *Note v2.08 or later requirer

Some progress, can parse .LAS header file,
next step is just to get the points and colors out from the file.

Project references:
Just heard that Point Cloud viewer & tools were used on this project
http://datumexplorer.universalassemblyunit.com/

Hello, I’m trying to make a Unity mesh of the dragon point cloud example from Stanford and I have tried numerous times with different settings but the dragon seems to always come in with the pieces misaligned. Here are a couple screenshots

Any ideas where I am going wrong?

Thanks
Vern

Edit: On the DragonA image for each PC_ # the X position was incremented by 1. So for PC_1 X=1, for PC_2 X=2 and so on. PC_56 X=56. I changed all of them to X=0 and the mesh looks like it should.

Hi,

Yes, had forgotton one test line on the last update, can fix it here:

//OPEN FILE
PointCloud2MeshConverter.cs

//FIND LINE
target.transform.position+=Vector3.right*meshCounter;

//REMOVE OR COMMENT IT OUT
//target.transform.position+=Vector3.right*meshCounter;

Some progress on LAS importer, can get point coordinates out from the file,
so hopefully this gets in the next update (probably coming later in March)

Got one more bug report & fix for the current version (v1.4)

//OPEN FILE(s)
PointCloud2MeshConverter.cs
PointCloud2BinaryConverter.cs

//FIND LINE(s)
x-=offset.x;
y-=offset.x;
z-=offset.x;

//REPLACE WITH
x-=offset.x;
y-=offset.y;
z-=offset.z;