Point Cloud Visualizer

by Jakub Uhlík in Scripts and Addons


Point Cloud Visualizer


Display, edit, filter, render, convert, generate and export colored point cloud PLY files.

Works with any Binary or ASCII PLY file with ‘x, y, z, nx, ny, nz, red, green, blue’ vertex values. Vertex normals and colors are optional.


Installation

  • Unzip files
  • Start Blender
  • Go to Preferences - Edit > Preferences
  • Choose Add-ons from left panel
  • Click Install.. button on top
  • Choose space_view3d_point_cloud_visualizer.zip and confirm with Install Add-on
  • Enable by checking the Enable checkbox

General Use

  • Add any object type to scene.
  • Go to 3d View Sidebar (N) > Point Cloud Visualizer tab, on main panel click file browser icon, select ply file, click Load.
  • Click Erase to hide point cloud and Draw button to display point cloud again.


PCV



Panels

Main

Main

Select ply file to load together with main Draw and Erase buttons.

Shader

Shader

Adjust percentage of points Display, point Size and Alpha. Shader type and its options (if any). Also display extras - point Normals and Bounding Box, extras options are shown with icon on side.

Shaders

Load

Load

Here are options for ply loading, loaded data post-processing and safety checks.

To use partial load, first enable clicking checkbox Partial Load and set method. For extra large clouds with ordered data, you can choose Slice method which will load only a continuous part of points. To extract points from whole file you can use Spaced or Random. Spaced first load all points to system memory and then evenly spaced points from all are chosen and the rest is discarded to free system memory. This can be used when you are able to fit all points into system memory, but you don’t need to draw them all and it is still quite fast. Random method is slow, but much less system memory is needed to load subset of points. Points are read from file randomly and only single point is read each time until requested percentage is met.

Data post-processing lets you choose default color if points does not have any, convert 16bit colors, apply gamma correction, shuffle points (to be used with Shader > Display), you can disable storing of raw loaded data to save memory or disable automatic drawing after load to check number of loaded points first before drawing to prevent crashes from low gpu memory.

Safety lets you set maximum number of points to display regardless how many points are loaded to prevent crashes from low gpu memory.

Clip

Clip

To use, switch shader type to Clip. This shader is drawn with 6 clipping planes. Planes can be enabled/disabled independently with eye icon, first 3 values are plane normal (x, y, z), last value is plane distance from origin. These can be set from different object bounding box, choose object from scene in Object and hit Set Clip Planes From Object Bounding Box, object can then be hidden/deleted, set values will stay until operator is executed again. X reset all the settings to their defaults.

Edit

Edit

Quasi point cloud Edit Mode. Hit Enable Edit Mode and all points will be converted to helper mesh with vertices and entered to mesh edit mode. You can transform, delete and duplicate vertices using regular Blender’s tools.

Edit

Filter

Filter

Filter current point cloud, all changes are only temporary, original data are still intact. To keep changes, you have to export cloud as ply file.

Simplify

Simplify point cloud to exact number of evenly distributed samples.

Project

Project points on mesh (or object convertible to mesh) surface. Projects point along their normals until it hit surface or Search Distance is reached. You can choose between Positive (along normal direction), Negative (vice versa) or both. Optionally you can Discard Unprojectable points that was not possible to project and after projection Shift points a fixed distance along normal (positive value) or the other way around (negative value). Projected points can be optionally colorized by vertex colors, uv texture and vertex group from target mesh.

Project

Boolean

Intersect or Exclude points with mesh object.

Boolean

Color Adjustment

To use, switch shader type to Color Adjustment. Adjust exposure, gamma, brightness, contrast, hue, saturation, value or invert colors.

Remove Color

Remove points with exact/similar color as chosen in color picker (Eyedropper works too).

Remove Color

Merge

Load another ply and merge with currently displayed.

Join

Join current active point cloud with another on different object.

Render

Render

Only single point cloud per render/frame is supported. Output image is RGBA 8bit PNG - transparent background with colored point cloud, which can be composed over something else later.

Convert

Convert

Convert point cloud to mesh (each point to Vertex, Equilateral Triangle, Tetrahedron, Cube or Ico Sphere), instancer (with Ico Sphere) or particle system (with Ico Sphere). Point colors will be converted to vertex colors.

Convert

Generate

Generate

Generate point cloud from mesh (or object convertible to mesh).

Generate

Export

Export

Export current point cloud as binary ply file.

Sequence

Sequence

Load sequence of ply files to play in viewport.

Sequence

Preferences

You can choose tab name for PCV to keep things organized.

API

You can use PCV to display point cloud data from other addons/custom scripts. See documentation.

Bugs? Suggestions?

Here: https://blenderartists.org/t/point-cloud-visualizer/