Preferences

Addon

Tab Name

Tab Name Panel

  • Tab Name - if Point Cloud Visualizer is too long for your tabs, you can change to shorter PCV.
  • Custom Tab Name - if set to existing tan name, PCV panel is moved there.

GPU Memory To Max. Points Calculator

Calculator Panel

Calculate theoretical maximum of displayable points for given gpu memory, floored to nearest tens of millions. Result is valid only when Default shader is used and nothing else displayed, i.e. location and color per point only. See Large Datasets for more info.

Optional Libraries

Optional Libraries Panel

Install optional libraries by clicking Install NAME. Restart Blender after each installed library. To uninstall library, click its button.

  • Check - Check each library if it is reported as available and show results. This check is executed without importing to prevent crashes, results may not be accurate.
  • Prevent Library Conflicts - See Optional Libraries Compatibility and Libraries Workarounds for more info.

Defaults when using "PCV > Load" operator

Load Operator Panel

Default options for load operator: 3d Viewport sidebar > PCV tab and click Choose File .

Defaults when using "Add > Point Cloud Visualizer" helper operator

Add Operator Panel

Default options for helper operator (adds empty object to scene and loads points for each selected file): 3D Viewport > Add > Point Cloud Visualizer Shift+A

Fast Navigation

Fast Navigation Panel

Draw low resolution point cloud during viewport navigation. See Fast Navigation for more info.

  • Delay - Delay drawing of high resolution point cloud to viewport after navigation ended
  • Percentage - Low resolution point cloud percentage, used until point count exceeds Maximum
  • Maximum (Millions) - Low resolution point cloud maximum number of points, used when point count exceeds Percentage
  • Auto Exclude (Millions) - Skip Fast Navigation if instance point count is lower, set to zero to disable and use on all instances, will not apply on points if low resolution is already generated in current session, reload files to update

UI

UI Panel

Tools

Tools Panel

  • Show Help Panel At Tool Start - Disable to hide help panel for each tool.
  • Show Tools Color Theme - Edit color theme of Tools to fit your Blender theme.

Packer

Packer Panel

Store loaded points as hidden mesh datablock with attributes in blend file. Automatically restore and draw points from datablock at blend file load, save points to datablock on blend file save.

This operation is meant to be fully automatic (if Auto Pack and Auto Optimize options in preferences are enabled, they are by default) once loaded point data are marked for packing clicking Pack icon next to file path on main PCV panel (this will work for any file formats, even those loaded using Import panel).

If Packer is enabled, main operators (Draw, Erase, Reload etc.) will prioritize packed data (if available) over loading from ply file.

Packer adds utility operators to 3D Viewport Panel as well as list of packed datablocks in blend file. See Packer for more info.

  • Auto Pack: pack all points that are loaded and/or displayed when blend file is being saved
  • Auto Optimize: remove packed datablocks on blend file save if container object is not found in scene

Utilities

Utilities Panel

  • Reset PCV On Active Object - Reset all PCV properties stored on active object
  • Reset PCV Preferences - Reset all PCV Preferences

Experimental

Experimental Panel

Patch 'pye57' library

Patch pye57 reader class at runtime to read files with scans without translation and rotation elements in its header.

Helps when reading e57 file ends in error E57 element path well formed but not defined (E57_ERROR_PATH_UNDEFINED) and in console with lines similar to this:

  File "/Users/redacted/.local/lib/python3.10/site-packages/pye57/e57.py", line 214, in read_scan
    xyz = self.to_global(xyz, header.rotation, header.translation)
  File "/Users/redacted/.local/lib/python3.10/site-packages/pye57/scan_header.py", line 32, in rotation
    q = Quaternion([e.value() for e in self.node["pose"]["rotation"]])
pye57.libe57.E57Exception: E57 element path well formed but not defined (E57_ERROR_PATH_UNDEFINED)

Viewer

Load and display very large datasets that does not fit into gpu memmory. Octree, Level of Detail, Camera Frustum, Threading, everything..

  • Viewer is indirectly connected with 3d viewport where it has been started, if you change viewport to some other editor type, viewer will stop, if you maximalize viewport area, it will stop, if you open non-popup file select dialog, it will stop. If by any way original viewport is not found, Viewer will stop and reset (this behavior might change in future for some cases, if viewport connection is resumed in some given timeout). Other 3d viewports then initial will draw points, but they will not react on camera view changes (may be changed in future, but because of performance it is now omitted and most likely it will stay like that).
  • Loading, octree preprocessing, sorting octree nodes according to camera view and their distance from camera, all of it runs in separate threads, so it does not block Blender, however processing data for gpu just before drawing cannot be done in background (Blender will crash instantly) so Blender will freeze a bit if a lot of octree nodes have to be updated at once (this might improve in future by processing it in smaller batches, but will not be eliminated).