Fast Pointcloud Viewport Rendering

Fast Mode – up to ~500 million points with excellent performance

Render Mode – up to ~40 million points with lighting and shadows

Fast Pointcloud Viewport Rendering Documentation

GPU-accelerated viewport drawing for mesh objects that are used as pointclouds.

Extension ID
fast_pointcloud_viewport_rendering
Current Version
1.1.0
Minimum Blender Version
5.1.0
Maintainer
Jace Priester
License
GPL-3.0-or-later
Repository
https://jacepriester.com/blender-repo

Overview

This extension allows for lightning fast rendering of pointcloud data in the viewport using custom GPU buffers and shaders. Blender already has support for rendering pointclouds in a very robust but inefficient way. On high end hardware, the max number of points you can comfortable see and work with is somewhere around 20-50 million points. Blender supports re-coloring, re-lighting, and casting shadows from these points, but the efficiency is too poor to use on large scenes.

By activating this plugin and using the related PTS/E57 importers and exporters you can not only view and work with massive pointclouds, tested on a 4090 up to 550million points on screen at once, but you also get full editing capabilities through Blender’s standard mesh edit mode. Pointcloud objects are imported as vertex-only mesh objects with a per_vertex_color custom attribute. This extension handles rendering them at peak efficiency.

While in Fast mode, pointclouds will not render – they are visible in the viewport only. You have the ability to switch to Blender’s vanilla method of rendering pointclouds at any time by hitting Object->Pointclouds->All to Render which activates a set of geometry and material nodes to let Blender render these as part of the normal Eevee/Cycles render pipeline. You can also hit Object->Pointclouds->All to Fast to toggle them back to this accelerated mode.

The add-on exposes pointcloud mode controls in the 3D View Object menu under Pointclouds. It can switch selected or all pointclouds between a fast custom viewport mode and a render-oriented mode.

Major Features

  • Fast viewport mode: draws qualifying pointcloud objects using GPU batches and shaders.
  • Render mode setup: configures pointcloud objects for render visibility using generated material/node setup.
  • Per-vertex color support: uses the per_vertex_color point attribute when available.
  • Viewport picking: supports pointcloud-aware object selection using an offscreen pick buffer.
  • Cursor placement: places the 3D cursor on pointcloud depth when a pointcloud is under the cursor.
  • Point size controls: increases or decreases the global pointcloud point size.
  • Clip-aware drawing: honors viewport clipping through shader-side clip plane handling.

Basic Usage

  1. Install and enable the extension.
  2. Import or create a points-only mesh object with optional per_vertex_color point colors.
  3. Open Object > Pointclouds in the 3D View.
  4. Choose Selected to Fast or All to Fast to enable custom viewport drawing.
  5. Use Selected to Render or All to Render when the pointcloud should be set up for rendering.
  6. Use the point size menu items or numpad shortcuts to adjust point size while working.

Commands and Shortcuts

Selected to Fast
Enables fast custom viewport rendering for selected pointcloud objects.
Selected to Render
Switches selected pointcloud objects to render-oriented setup.
All to Fast
Enables fast mode for all detected pointcloud objects in the file.
All to Render
Switches all detected pointcloud objects to render mode.
Point Size + / Point Size –
Adjusts the global point size used by the custom pointcloud viewport renderer.
Numpad Plus / Numpad Minus
Keymap shortcuts for increasing and decreasing point size.
Alt + Select Mouse
Performs pointcloud-aware object selection in Object Mode.
Shift + Alt + Select Mouse
Toggles pointcloud-aware selection.

Permissions

No special permissions are declared in the extension manifest.

Notes

  • The extension installs 3D View draw handlers, load/depsgraph handlers, a polling timer, and add-on keymaps.
  • Only mesh objects recognized as pointclouds are affected by the mode commands.
  • Color rendering expects a point-domain attribute named per_vertex_color.