You can access pre-release alpha version right now in downloads. Zip file is addon without documentation. Install directly downloaded zip. No need to unzip before installation like with 1.x releases.
2.0 will be free upgrade for all customers.
If you have older PCV version installed, upgrade procedure is: start Blender, go to preferences, disable old PCV, remove old PCV, save preferences, quit Blender, start Blender, go to preferences, install new PCV, enable new PCV, save preferences.
pip
site.getusersitepackages
on each platformsetup.py
, build wheel, install from command line. detailed step by step guide will be included here soonDisplay, 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. Text based file formats, such as .txt
, .xyz
, .pts
, .csv
, can be imported.
Edit > Preferences
Add-ons
from left panelInstall..
button on topspace_view3d_point_cloud_visualizer.zip
and confirm with Install Add-on
Enable
checkboxExtras
panelOpen3D - A Modern Library for 3D Data Processing: http://www.open3d.org/. Open3D is released under the MIT license. Currently supported Open3D version is 0.10.0.0.
Open3D is not yet available for Python 3.9 included in Blender 2.93. Use Blender 2.92.
Run as administrator
Extras
checkbox and click Install Open3D
path/to/blender/python/binary -m ensurepip
path/to/blender/python/binary -m pip install -U pip
path/to/blender/python/binary -m pip install open3d==0.10.0.0
site-packages
, if you reinstall or upgrade blender, you have to repeat stepsInstall Open3D
button will reinstall correct versionor install by yourself running following script from blender text editor:
import bpy
import subprocess
bpp = bpy.app.binary_path_python
subprocess.call([bpp, "-m", "ensurepip", ])
subprocess.call([bpp, "-m", "pip", "install", "-U", "pip", ])
subprocess.call([bpp, "-m", "pip", "install", "-U", "open3d==0.10.0.0", ])
# verify..
import open3d
Point Cloud Visualizer
tab, on main panel click file browser icon, select ply file, click Load
.Erase
to hide point cloud and Draw
button to display point cloud again.Select ply file to load together with main Draw
and Erase
buttons.
Click Center View At Points
to move 3d viewport camera to fit points in its view.
You can also add PCV instance from Add
or Import
menus. Go 3D Viewport > Add > Point Cloud Visualizer
or File > Import > Point Cloud Visualizer
choose ply or ascii type from submenu, select file(s) in file browser and run helper to make empty object with loaded points from file. If more files is selected, it will make separate empty for each file. For ascii import, you need to create data format preset first in Import
panel and then use that preset in ascii helper, otherwise it will try to guess data format, but may not be always correct, depends on data format.
Adjust percentage of points Display
, point Size
and Alpha
. Shader
type and its options (if any). Shader extras - Clip
to set clipping planes, point Normals
and Bounding Box
.
Available shaders:
Default
- Default shaderAlpha
- Default shader with alpha per pointIllumination
- Default shader with artificial light and shadowNormal Colors
- Point normals to RGBPosition Colors
- Point locations to RGBHeight Colors
- Point height to RGBPhong
- Simple Phong shading, light fixed to viewDepth
- Colorized by distance from view cameraDepth Effects
- Colorize by distancesColor Adjustment
- Shader for quick color adjustment previewFresnel
- Fresnel shaderBillboard Simple
- Geometry based shaderBillboard Phong
- Geometry based shader with Phong shading, light fixed to viewMatCap
- Use MatCap imageMatCap Billboard
- Use MatCap imageFast
- Plain square pointsPlanes 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. When Clip Planes Auto Update
is enabled, object bounding box and resulting planes are recalculated on each redraw. Clipping can be then animated for viewport and render as well. Please note, only Fast
shader ignores clipping planes settings.
Uses default MatCaps that comes with Blender, custom user MatCaps are supported too.
Please note, using MatCap shaders creates image(s) in blender data where original MatCap image is loaded and cloned to new image to prevent accidental modification of original MatCap image.
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.
Import points from text file formats such as .txt
, .xyz
, .pts
, .csv
, etc. Any plain text file with data organized into table with same number of items in a row. Select file, specify separator, number of header lines (if any) and each column data type and click Import
. For convenience you can preview first 10 lines in file checking File Contents Preview
. Preview tries to split columns with chosen separator on the fly. Alternatively you can click Guess Data Format
to prefill columns types based on simple rules, but because except .pts
there is no official data format specification, always verify the result. You can also save current column setup, header lines and separator properties as preset using preset widget.
Import also uses Partial Load
and Post-load Processing
options from Load
panel, except Convert 16bit Colors
property.
Notes on color values: by default rgb color is used for imported data, if you want to import other value like intensity from laser scanners, use Grey
data type for its column and set rgb columns to Ignore
. To import such value in false colors / heat map, use Value
type instead.
Example setup for .pts
file import to get intesity column as greyscale.
Notes on performance: loading data from text files is slow, after import, it is recomended to use Export
panel to export loaded data as binary .ply
and use that for fastest loading next time blend is opened.
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. If you want update displayed points, hit Update
, when you are finished editing hit End
to update points for a last time and delete helper mesh. You can also adjust point cloud overlay size and alpha. If something went wrong, select main object with cloud and hit Cancel
to reload original points, return interface to regular mode and attempt to clean helper mesh if it is still available.
Center Origin
and Apply Transformation
operators works without entering Edit mode. Center Origin
will center point cloud at object center and Apply Transformation
will apply container object transformation on points and resets transformation of container.
Export
feature and check Use Viewport Points
because edits are only in memory, if you close Blender, edits will be lost.While in Edit Mode helper mesh vertices can be selected by point color, Eye icon set points overlay opaque for easy color selecting with eyedropper.
Point color of selected vertices can also be changed.
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 point cloud to exact number of evenly distributed samples. All loaded points are processed. There are two methods to choose from.
Cell Size
. Optionally Align
resulting point to cell center and Average
location, normal and color for all cells.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 and their normals can be set from mesh surface they hit. When Project Position
is disabled, points positions are not changed, but depending on other options their normals can be realigned or color copied from mesh.
Transfer colors from point to Target
mesh object vertex colors or UV texture. By default, color is taken from closest point, optionally you average point colors in set radius. Transfer colors to UV texture requires non-overlapping UV layout fully contained in unit square on target mesh and material with active Image Texture
node with loaded image to operate on. Extending margins on UV texture uses blender baking system and requires Cycles
to be set as render engine.
Fast crop points by object bounding box. Crop points inside bounding box or outside.
Intersect or Exclude points with mesh object. Mesh have to be non-manifold.
To use, switch shader type to Color Adjustment
. Adjust exposure, gamma, brightness, contrast, hue, saturation, value or invert colors. Adjust values as needed with preview in viewport, click Apply
to apply colors to points. Click Reset
to set all to default value. Shader can be disabled without changes anytime switching to different shader.
Remove points with exact/similar color as chosen in color picker (Eyedropper works too). Currently i can’t get to match sampled color from viewport with color in loaded cloud. Floating point error, incorrectly handled Gamma (at my side for sure), color management in Blender’s viewport or any combination of all, or something else.. Anyway, if you leave at least one delta at hue/saturation/value (whatever works best for given cloud) it should remove the color you picked. Point selection can be previewed in viewport, can be inverted or canceled. Selection color can be changed for better clarity.
Numeric input can be enabled by checking Use Expression
. Input must be valid python expression, use v
for point color channel value, leave blank to skip evaluation of channel. Use Type
to set value type of your expression, Float
uses color values as they are displayed on screen in range 0.0-1.0, Int
converts them to 0-255 range. Use bitwise operators for more conditions.
Split current point cloud into:
Can be joined back with Join
filter.
Join selected PCV instances to a new instance while preserving transformations of each instance.
Load another ply and merge with currently displayed. Hit Merge With Other PLY
, select ply file and load. New point will be appended to old, shuffled if shuffle is enabled in Load
.
Single point cloud or multiple point clouds in separate PCV instances per render/frame are supported. When rendering multiple instances, all must be visible in viewport (i.e. ply is loaded and drawn in viewport) before starting render. Render background can be transparent (if type Point Cloud
is used) or 3d viewport with other objects in scene (type Viewport
) in their current shading state and viewport shading type (Rendered
shading type is not supported). Output image is RGBA 8bit PNG. When using Alpha
shader together with alpha per point or when using Global Alpha
, enable Depth Sort
for better results.
Point Cloud
: transparent background, Viewport
: 3d viewport background)Size
or percentage of rendered points with Count
Output
.Resolution X
, Resolution Y
and Resolution %
.Supersampling
to value greater than 1. This is very memory demanding, so use lowest value you canAll Visible
in Scope
. Note that Supersampling
and all image size settings are taken from active PCV instance used to start rendering.Render
or Animation
Depth Sort
render result on point cloud with alpha per point:Convert point cloud to mesh. May result in very large meshes, e.g. 1m point cloud to cubes = 8m poly mesh. Depending on what point cloud data is available and desired mesh type, some options may not be enabled. When Custom Mesh
type is used, if mesh without polygons is used, vertex colors will not be set even when checked, for vertex colors, some polygons are required.
Conversion to instancer specifics: points are converted to triangle mesh object, vertex colors are baked to texture, extra instanced sphere object is added as child object of main mesh, material using baked colors is added to sphere and each instance inherits color of corresponding face it is instanced from.
Conversion to particles specifics: points are converted to triangle mesh object, vertex colors are baked to texture, particle system is added to mesh with one particle on each face, extra instanced sphere added as child object of main mesh and particle system is set to render that sphere, material using baked colors is added to sphere and each instance inherits color of corresponding face it emit from. Result is regular particle system which can be further edited, e.g. instance mesh changed, physics added etc.
Conversion to Geometry Nodes
does not create any geometry node system yet, since currently there is no way to use color to colorize instanced mesh on points. This conversion type is available only in Blender 2.93+.
Generate point cloud from mesh (or object convertible to mesh) surface or volume. To store point cloud, use Export
to save as ply file.
When Source
is Particles
, for generating colors (apart from Constant
color), non-overlapping UV layout is required.
Export current point cloud as binary ply file with several options. If exporting modified (filtered) points, check Use Viewport Points
, otherwise you will not get modified points. If exporting viewport points colors may slightly differ (i mean, they will look the same, they will not be identical because of rounding error). Transformation and axis conversion can be applied on both loaded and viewport points.
Voxel downsampling uses a regular voxel grid to create a uniformly downsampled point cloud from an input point cloud. Size of grid is set with Voxel Size
.
Compute normals of point cloud. Normals are oriented with respect to the existing point cloud normals if provided.
To orient resulting normals correctly, Direction
or Camera Location
(as location of another object in scene) can be used.
Align points from multiple PCV instances to match using several algorithms, both global and local (local methods require pre-alignment). Select all PCV instances and from active Run Registration
. Container objects transformation will be adjusted based on result, point cloud data will not be changed. Active PCV instance acts as base point cloud and other selected will try to aling to it. When finished, you can join all points to one clicking Join Selected
, this will create new PCV instance with all points joined to one and this result needs to be saved in Export
panel or will be lost when Blender is closed.
Available methods:
Global
- Global registration (RANSAC)Fast Global
- Fast global registrationMultiway
- Multiway registration via pose graph optimization (global registration)ICP Registration
- ICP point cloud registration (local registration, requires prealignment)Colored
- Colored point cloud registration (local registration, ICP variant, requires prealignment)Perform Poisson Surface Reconstruction on point cloud.
Load sequence of ply files to play in viewport. Load first frame as regular file and when Preload Sequence
is clicked it tries to load all ply files matching selected ply filename, e.g. you select sequence-001.ply
and all sequence-###.ply
will be loaded from directory. Only last number in filename is considered. Numbers should start at 1. All other features works when animation is not playing, but all changes are lost when you change frame to another.
Batch control PCV instances from 3d viewport. You can influence all, selected or active PCV instances and control drawing to viewport, loading operators and synchronize display shader properties.
To view, go Edit > Preferences > Add-ons > 3D View: Point Cloud Visualizer
and click triangle next to name. Here you can choose tab name for PCV.
To display point cloud data from other addons/custom scripts.
# import
import bpy
import numpy as np
from space_view3d_point_cloud_visualizer.mechanist import PCVOverseer
# get object to use
o = bpy.context.object
# register
pcv = PCVOverseer(o)
# make some example data
n = 1000
vs = np.random.normal(0, 2, (n, 3))
ns = np.array([[0.0, 0.0, 1.0]] * n)
cs = np.random.random((n, 3))
# load data
pcv.load(vs, ns, cs, )
# and draw data to viewport
pcv.draw()
# to stop drawing to viewport
# pcv.erase()
# to stop using object and clear loaded data
# pcv.free()
1.10.0
1.9.0
1.8.0
1.7.0
1.6.0
Fast
viewport shaderFile > Import
and 3D Viewport > Add
helper menu operators1.5.0
1.4.0
1.3.0
1.2.0
1.1.0
1.0.0
0.9.30 join filter, ui tweaks, fixes
Here: https://blenderartists.org/t/point-cloud-visualizer/
annotations: property
, enum
, operator
PLY File
- Path to PLY fileSelected
, Loaded
- PLY file nameDisplayed
- Number of displayed points in viewportDraw
- Draw point cloud to viewportErase
- Erase point cloud from viewportCenter View At Points
- move 3d viewport camera to fit points in its view3D Viewport > Add > Point Cloud Visualizer
or File > Import > Point Cloud Visualizer
Point Cloud Visualizer (.ply)
- setup PCV instance and load selected ply file(s)Point Cloud Visualizer (ASCII)
- setup PCV instance and import selected ASCII file(s) using ASCII import presetDisplay
- Adjust percentage of points displayedSize
- Point sizeAlpha
- Adjust alpha of points displayedShader
- Shader type
Default
- Default shaderAlpha
- Default shader with alpha per pointIllumination
- Default shader with artificial light and shadow
Light Direction
- Illumination light directionLight Intensity
- Illumination light intensityShadow Intensity
- Illumination shadow intensityNormal Colors
- Point normals to RGBPosition Colors
- Point locations to RGB
Scale
- Color grid scaleOffset
- Color grid offsetHeight Colors
- Point height to RGB
Axis
- Local axis to get values from
X
- Local X axisY
- Local Y axisZ
- Local Z axisAuto
- When enabled, always use full range of values in given axis. Might be slow on large point clouds because point locations are accessed on each redraw. Disable to keep last values to skip recalculationHeight
- Minimum and maximum height value on given axisScale
- Rotate colors, for example, value of 3.0 will display color height gradient 3 timesOffset
- Color height gradient offsetCustom Colors
- Display height shader with custom colorsColor A
- Height shader custom color AColor B
- Height shader custom color BPhong
- Simple Phong shading, light fixed to view
Ambient Strength
- Phong ambient strengthSpecular Strength
- Phong specular strengthSpecular Exponent
- Phong specular exponentDepth
- Colorized by distance from view camera
Brightness
- Depth shader color brightnessContrast
- Depth shader color contrastFalse Colors
- Display depth shader in false colorsColor A
- Depth shader false colors front colorColor B
- Depth shader false colors back colorIllumination
- Display depth shader with illuminationLight Direction
- Depth illumination light directionLight Intensity
- Depth illumination light intensityShadow Intensity
- Depth illumination shadow intensityDepth Effects
- Colorize by distances
Method
- Distance calculation method
Sphere
- Sphere falloffPlane
- Plane falloffEye
- Falloff plane will be always oriented to be perpendicular to eye locationUse Object
- Use object as eyeEye Object
- Eye objectCenter
- Location where distance/depth is zeroUse Object
- Use object as centerCenter Object
- Center objectNear
- Real distance to color mix rangeFar
- Real distance to color mix rangeFalse Colors
- Display depth shader in false colorsColor A
- Depth shader false colors front colorColor B
- Depth shader false colors back colorPhong
- Add Phong shading at the top of depthMix
- Mix balue between Depth and PhongLight Object
- Use object location as light direction or if not specified use camera view locationAmbient Strength
- Phong ambient strengthSpecular Strength
- Phong specular strengthSpecular Exponent
- Phong specular exponentColor Adjustment
- Shader for quick color adjustment preview
Filter > Color Adjustment
panel)Fresnel
- Fresnel shader
Sharpness
- Outline sharpnessInvert
- Invert valuesColors
- Blend with point colorsBillboard Simple
- Geometry based shaderBillboard Phong
- Geometry based shader with Phong shading, light fixed to view
Ambient Strength
- Phong ambient strengthSpecular Strength
- Phong specular strengthSpecular Exponent
- Phong specular exponentMatCap
- Use MatCap image
MatCap
- MatCapFlip MatCap Horizontally
- Flip MatCap horizontallyMultiply Colors
- Multiply MatCap with point colorsMatCap Billboard
- Use MatCap image
MatCap
- MatCapFlip MatCap Horizontally
- Flip MatCap horizontallyMultiply Colors
- Multiply MatCap with point colorsClip
- Clipping planes options
Enabled
- Clipping plane 0 enabledEnabled
- Clipping plane 1 enabledEnabled
- Clipping plane 2 enabledEnabled
- Clipping plane 3 enabledEnabled
- Clipping plane 4 enabledEnabled
- Clipping plane 5 enabledPlane 0
- Clipping plane 0 orientation [0:2]
and distance [3]
Plane 1
- Clipping plane 1 orientation [0:2]
and distance [3]
Plane 2
- Clipping plane 2 orientation [0:2]
and distance [3]
Plane 3
- Clipping plane 3 orientation [0:2]
and distance [3]
Plane 4
- Clipping plane 4 orientation [0:2]
and distance [3]
Plane 5
- Clipping plane 5 orientation [0:2]
and distance [3]
Object
- Bounding box source objectClip Planes Live Update
- Live update clip planes from object boundsSet Clip Planes From Object Bounding Box
- Set clip planes from object bounding boxX
, Reset Clip Planes
- Reset all clip planesNormals
- Draw normals of points
Length
- Length of point normal lineAlpha
- Alpha of point normal lineColor
- Display color for vertex normals linesBounding Box
- Display bounding box
Color
- Bounding box colorAlpha
- Bounding box alphaSize
- Bounding box sizePartial Load
- Partial PLY loading (might be slower with Binary PLY and much slower with ASCII PLY)Type
- Partial load type
Slice
- Load continuous point sequence of length ‘Factor’ starting at Slice From
Factor
- Factor of 1.0 = all points, 0.5 = half of points, 0.25 = quarter of points, etc.. number of loaded points depends on number of points in file, i.e. int(num_points * factor)
Slice From
- Factor of 0.0 = file start, 0.25 = first quarter of file, 0.5 = middle of file, etc.., if slice from + factor > 1.0, slice from is set to 0.0Spaced
- Load all points to memory and then pick evenly spaced points for display up to Factor
Factor
- Factor of 1.0 = all points, 0.5 = half of points, 0.25 = quarter of points, etc.. number of loaded points depends on number of points in file, i.e. int(num_points * factor)
Random
- Load random points from file up to Factor
, uses much less memory, but file is randomly accessed and therefore loading is slow
Factor
- Factor of 1.0 = all points, 0.5 = half of points, 0.25 = quarter of points, etc.. number of loaded points depends on number of points in file, i.e. int(num_points * factor)
Seed
- Randomized partial PLY loading seedLoad
- Load PLY fileUnload
- Unload PLY fileReload
- Reload PLY filePost-load Processing
Default Color
- Default color to be used upon loading PLY to cache when vertex colors are missingConvert 16bit Colors
- Convert 16bit colors to 8bit, applied when Red channel has uint16
dtypeGamma Correct Colors
- Apply gamma as c ** (1 / 2.2)
to colorsShuffle Points
- Shuffle points after loading, display percentage is more useable if points are shuffled, on the other hand, shuffling takes timeStore Raw Points
- Store raw loaded points (when using Partial Load only loaded partition) to be able to use them later for exportingAuto Draw
- Draw points to viewport when loadedSafety
Use Max Points
- Enable automatic limit for maximum displayed points. Can prevent crash when blender is out of memory.Points * 10^6
- Maximum displayed points count in millions.File
- Path to a fileSelect
- Select ASCII file to importReload
- Reload ASCII file previewFormat Presets
- List of user defined presetsPreset Add/Remove
- Add presetPreset Add/Remove
- Remove presetFile Contents Preview
- Preview a few lines from file beginningReload
- Reload ASCII file previewSeparator
- Numerical data separator type
Skip Header Lines
- Number of header lines to skip from file beginningColumns
- CollectionProperty
Type
- Column data type
Location X
Location Y
Location Z
Normal X
Normal Y
Normal Z
Red (0-255)
Green (0-255)
Blue (0-255)
Alpha (0-255)
Red (0.0-1.0)
Green (0.0-1.0)
Blue (0.0-1.0)
Alpha (0.0-1.0)
Grey (0-255)
Grey (0.0-1.0)
Value (0-255)
Value (0.0-1.0)
Ignore
Add
- Add new itemRemove
- Remove selected itemClear
- Remove all itemsMove
- Move column item up or downGuess Data Format
- Guess file data format by its contentsImport
- Import file contentsEnable Edit Mode
, Start
- Start edit mode, create helper object and switch to itCenter Origin
- Center point cloud at object center (transforms points, original locations will be lost)Apply Transformation
- Apply container object transformation to point cloud (transforms points, original locations will be lost)Helper edit object
Overlay Alpha
- Overlay point alphaOverlay Size
- Overlay point sizeUpdate
- Update displayed cloud from edited meshEnd
- Update displayed cloud from edited mesh, stop edit mode and remove helper objectSelect Color
(sub-panel)
Color
- Color to select from point cloudColor Select Mode
- Switch points display to full alpha and large size for comfortable color pickingΔ Hue
- Delta hueUse Δ Hue
- Delta hue enabledΔ Saturation
- Delta saturationUse Δ Saturation
- Delta saturation enabledΔ Value
- Delta valueUse Δ Value
- Delta value enabledSelect Color
- Select points with exact/similar colorUse Expression
- Use numeric expression for color selectionInput Expression
- Input numeric expression for red channel, use ‘v’ for point color value, leave blank to skip evaluation of channelInput Expression
- Input numeric expression for green channel, use ‘v’ for point color value, leave blank to skip evaluation of channelInput Expression
- Input numeric expression for blue channel, use ‘v’ for point color value, leave blank to skip evaluation of channelType
- Float uses color values as they are displayed on screen in range 0.0-1.0, Int converts them to 0-255 range
Float
- Values in range: 0.0 - 1.0Int
- Values in range: 0 - 255Select Color
- Select points with numeric expressionSet Color
(sub-panel)
Color
- Change color of selected points to this oneColor Select Mode
- Switch points display to full alpha and large size for comfortable color pickingSet Color
- Set color of selected pointsCancel
- Stop edit mode, try to remove helper object and reload original point cloudSimplify
Samples
- Number of points in simplified point cloud, best result when set to less than 20% of points, when samples has value close to total expect less points in resultCandidates
- Number of candidates used during resampling, the higher value, the slower calculation, but more evenSimplify
- Simplify point cloud to exact number of evenly distributed samples, all loaded points are processedProject
Object
- Mesh object to project points ontoSearch Distance
- Maximum search distance in which to search for surfacePositive
* Search along point normal forwardsNegative
* Search along point normal backwardsDiscard Unprojectable
- Discard points which didn’t hit anythingProject Position
- Project points to mesh surfaceAlign Normals
- Align points normals to mesh surfaceColorize
- Colorize projected pointsSource
- Color source for projected point cloud
Vertex Colors
- Use active vertex colors from targetUV Texture
- Use colors from active image texture node in active material using active UV layout from targetVertex Group Monochromatic
- Use active vertex group from target, result will be shades of greyVertex Group Colorized
- Use active vertex group from target, result will be colored from red (1.0) to blue (0.0) like in weight paint viewportShift
- Shift points after projection above (positive) or below (negative) surfaceProject
- Project points on mesh surfaceTransfer Colors
Object
- Mesh object to transfer points colors ontoTarget
- Target on mesh where point colors will be transfered
Vertex Colors
- Transfer point colors to mesh vertex colorsUV Texture
- Transfer point colors to mesh uv textureMargin
- Extend texture past UV bordersMargin
- How many pixels extend texture past UV bordersAverage Colors
- Weighted average of point colors within radius (slower and slower with larger radius), otherwise use color of nearest point (faster)Average Radius
- Average colors within radius, weighted by distance from centerTransfer Colors
- Transfer point colors to meshCrop
Object
- Use bounding box of selected mesh object to crop pointsCrop Outside
- Remove points outside of bounding box of mesh objectCrop Inside
- Remove points inside of bounding box of mesh objectBoolean
Object
- Mesh object to use boolean operation with pointsIntersect
- Boolean intersect points with mesh objectExclude
- Boolean exclude points with mesh objectColor Adjustment
Now!
, Color Adjustment Shader
- Change current shader to Color Adjustment shaderExposure
- formula: color = color * (2 ** value)
Gamma
- formula: color = color ** (1 / value)
Brightness
- formula: color = (color - 0.5) * contrast + 0.5 + brightness
Contrast
- formula: color = (color - 0.5) * contrast + 0.5 + brightness
Hue
- formula: color.h = (color.h + (value % 1.0)) % 1.0
Saturation
- formula: color.s += value
Value
- formula: color.v += value
Invert
- formula: color = 1.0 - color
Reset
- Reset color adjustment valuesApply
- Apply color adjustments to points and resetRemove Color
Use Expression
- Use numeric expression for color selectionColor
- Color to remove from point cloudUse Δ Hue
- Delta hue enabledΔ Hue
- Delta hueUse Δ Saturation
- Delta saturation enabledΔ Saturation
- Delta saturationUse Δ Value
- Delta value enabledΔ Value
- Delta valueSelection Color
- Display color for selectionR
- Input numeric expression for red channel, use ‘v’ for point color value, leave blank to skip evaluation of channelG
- Input numeric expression for green channel, use ‘v’ for point color value, leave blank to skip evaluation of channelB
- Input numeric expression for blue channel, use ‘v’ for point color value, leave blank to skip evaluation of channelType
- Float uses color values as they are displayed on screen in range 0.0-1.0, Int converts them to 0-255 range
Float
- Values in range: 0.0 - 1.0Int
- Values in range: 0 - 255Select Color
- Select points with exact/similar color<->
, Invert
- Invert selectionX
, Deselect
- Deselect pointsDelete Selected
- Remove selected pointsSplit
Type
- Split type
Grid
- Split to grid
Target
- Split type
Cell Size
- Split to specific cell size in each directionCell Count
- Split to number of cells in each directionCell Size
- Cell size in each directionCell Count
- Cell count in each directionCount
- Split to x pieces with specific number of points in each of them
Count
- Number of points in each result piecePieces
- Split to n pieces with equal number of points
Pieces
- Number of pieces to split cloud intoAuto Unload
- Unload original to save memory, data not loaded from file will be lostSplit
- Split point cloud to cubic grid of point cloudsJoin
Auto Unload
- Unload original to save memory, data not loaded from file will be lostShuffle Points
- Shuffle points after joining, display percentage is more useable if points are shuffled, on the other hand, shuffling takes timeJoin Selected Instances
- Join selected PCV instances to a new PCV instanceMerge
Merge With Other PLY
- Merge with other PLY fileType
- Render type
Point Cloud
- Render point cloud on transparent backgroundViewport
- Render viewport and objects with point cloudSize
- Point sizeCount
- Adjust percentage of points renderedOutput Path
- Directory/name to save rendered images, # characters defines the position and length of frame numbers, filetype is always pngResolution X
- Number of horizontal pixels in rendered imageResolution Y
- Number of vertical pixels in rendered imageResolution %
- Percentage scale for render resolutionSupersampling
- Render larger image and then resize back, 1 - disabled, 2 - render 200%, 3 - render 300%, …Depth Sort
- Perform manual depth sorting per render frame, this option makes difference only when alpha per point is available and alpha shader is selected or when global alpha is not oneResolution Linked
- Link resolution settings to sceneScope
- Render scope
Active
- Render only active PCV instanceAll Visible
- Include all visible PCV instances (container object is visible in viewport and ply file is loaded and displayed) in scene in render. Output file path, render resolution and supersampling properties are taken from active PCV instanceRender
- Render displayed point cloud from active camera view to imageAnimation
- Render displayed point cloud from active camera view to animation framesType
- Instance mesh type
Vertex
Equilateral Triangle
Tetrahedron
Cube
Ico Sphere
Custom Mesh
Mesh
- Mesh object to use as instance, only raw mesh is taken, modifiers and transformations are ignoredInstancer
Sphere Subdivisions
- Particle instance (Ico Sphere) subdivisions, instance mesh can be change laterParticle System
Sphere Subdivisions
- Particle instance (Ico Sphere) subdivisions, instance mesh can be change laterGeometry Nodes
Normals
- Set ‘pcv-normal’ attribute to verticesColors
- Set ‘pcv-color’ attribute to verticesAll
- Convert all pointsSubset
- Convert random subset of points by given percentageSize
- Mesh instance size, instanced mesh has size 1.0Align To Normal
- Align instance to point normalColors
- Assign point color to instance vertex colorsUse Faster Conversion
- Faster (especially with icosphere) Numpy implementation, use if you don’t mind all triangles in resultSplit
- Split mesh result to chunksChunks
- Number of chunks to split intoConvert
- Convert point cloud to meshSource
- Points generation source
Vertices
- Use mesh verticesSurface
- Use triangulated mesh surface
Algorithm
- Point generating algorithm
Weighted Random In Triangle
- Average triangle areas to approximate number of random points in each to get even distribution of points. If some very small polygons are left without points, increase number of samples. Mesh is triangulated before processing, on non-planar polygons, points will not be exactly on original polygon surface.
Approximate Number Of Points
- Number of points to generate, some algorithms may not generate exact number of points.Seed
- Random number generator seedExact Number of Samples
- Generate exact number of points, if selected algorithm result is less points, more points will be calculated on random polygons at the end, if result is more points, points will be shuffled and sliced to match exact valuePoisson Disk Sampling
- Warning: slow, very slow indeed.. Uses Weighted Random In Triangle algorithm to pregenerate samples with all its inconveniences.
Minimal Distance
- Poisson Disk minimal distance between points, the smaller value, the slower calculationSampling Exponent
- Poisson Disk presampling exponent, lower values are faster but less even, higher values are slower exponentiallyParticle System
- Use active particle system
Particles
- Particles source
All
- Use all particlesAlive
- Use alive particlesColors
- Color source for generated point cloud
Constant Color
- Use constant color value
Color
- Constant colorVertex Colors
- Use active vertex colorsUV Texture
- Generate colors from active image texture node in active material using active UV layoutVertex Group Monochromatic
- Use active vertex group, result will be shades of greyVertex Group Colorized
- Use active vertex group, result will be colored from red (1.0) to blue (0.0) like in weight paint viewportGenerate
- Generate colored point cloud from mesh (or object convertible to mesh)Remove Generated
- Remove generated pointsUse Viewport Points
- When checked, export points currently displayed in viewport or when unchecked, export data loaded from original ply fileVisible Points Only
- Export currently visible points only (controlled by ‘Display’ on main panel)Apply Transformation
- Apply parent object transformation to pointsConvert Axes
- Convert from blender (y forward, z up) to forward -z, up y axesExport PLY
- Export point cloud to PLY filePreload Sequence
- Preload sequence of PLY files. Files should be numbered starting at 1. Missing files in sequence will be skipped.Cycle Forever
- Cycle preloaded point clouds ply_index = (current_frame % len(ply_files)) - 1
Clear Sequence
- Clear preloaded sequence cache and reset allVoxel Downsample
Voxel Size
- Voxel grid cell sizeVoxel Downsample
- Voxel downsampling uses a regular voxel grid to create a uniformly downsampled point cloud from an input point cloudEstimate Normals
Search Radius
- Search radiusMax Nearest Neighbor
- Maximum nearest neighborUse Existing
- When enabled, existing normals are used for estimation, when disabled, no normals are providedOrient
- Orientation method
None
- Skip orientation stepDirection
- Orient normals to align with direction
Numeric Input
- Direction vectorDirection
- Direction vectorCamera Location
- Orient normals towards camera location
Use Object Location
- Camera locationCamera Location
- Camera locationObject
- Camera locationEstimate Normals
- Compute normals of point cloud. Normals are oriented with respect to the existing point cloud normals if providedFlip Normals
- Flip point cloud normalsPoint Set Registration
Method
- Registration method
Global
- Global registration (RANSAC)
Voxel Size
- Voxel grid cell sizeDistance Threshold Factor
- Voxel Size * Distance Threshold FactorLocal Refinement
- Use Point-to-plane ICP to further refine the alignmentRefinement Distance Threshold Factor
- Voxel Size * Refinement Distance Threshold FactorICP Estimation
- ICP Estimation
Point To Point
- Point to point distance
With Scaling
- Estimate scalingPoint To Plane
- Point to plane distanceFast Global
- Fast global registration
Voxel Size
- Voxel grid cell sizeDistance Threshold Factor
- Voxel Size * Distance Threshold FactorMultiway
- Multiway registration via pose graph optimization (global registration)
Voxel Size
- Voxel grid cell sizeDistance Coarse Factor
- Voxel Size * Distance Coarse FactorDistance Fine Factor
- Voxel Size * Distance Fine FactorICP Estimation
- ICP Estimation
Point To Point
- Point to point distance
With Scaling
- Estimate scalingPoint To Plane
- Point to plane distanceICP Registration
- ICP point cloud registration (local registration, requires prealignment)
Voxel Size
- Voxel grid cell sizeMax Correspondence Distance
- Maximum correspondence points-pair distanceICP Estimation
- ICP Estimation
Point To Point
- Point to point distance
With Scaling
- Estimate scalingPoint To Plane
- Point to plane distanceIterations
- Number of iterations to refine resultColored
- Colored point cloud registration (local registration, ICP variant, requires prealignment)
Voxel Size
- Voxel grid cell sizeVoxel Size Factors
- Voxel size factor for each iterationMax Iterations
- Max interations for each iterationIterations
- Number of iterations to refine resultSurface Reconstruction
Depth
- Depth of the octree used for the surface reconstruction, implies the resolution of the resulting triangle mesh. A higher depth values means a mesh with more detailsScale
- Specifies the ratio between the diameter of the cube used for reconstruction and the diameter of the points bounding boxVertex Colors
- Assign vertex colors to resulting mesh from point colorsApply Transformation
- Apply transformation of container object to points before reconstructionSurface Reconstruction
- Perform Poisson Surface Reconstruction on point cloudInfluence
- Operator batch influence settingsDraw
- Draw all Point Cloud Visualizer instances according to influenceErase
- Erase all Point Cloud Visualizer instances according to influenceLoad
- Load all Point Cloud Visualizer instances according to influenceUnload
- Unload all Point Cloud Visualizer instances according to influenceReload
- Reload all Point Cloud Visualizer instances according to influenceSynchronize Shader Properties
- Synchronize all Shader properties from active to selected Point Cloud Visualizer instances according to influenceTo view, go Edit > Preferences > Add-ons > 3D View: Point Cloud Visualizer
and click triangle next to name
Tab Name
- To have PCV in its own separate tab, choose one
Point Cloud Visualizer
PCV
Custom Tab Name
- Check if you want to have PCV in custom named tab or in existing tabName
- Custom PCV tab name, if you choose one from already existing tabs it will append to that tab