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)
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.
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…)
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?
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…
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.
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.
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
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
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.
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;