ShadeVis (plugin)

From CloudCompareWiki
Jump to: navigation, search


qPCV stands for "Portion de Ciel Visible" which translates into "Portion of Visible Sky" in English.

It calculates the illumination of a point cloud (or vertices of a mesh) as if the light was coming from a theoretical hemisphere or sphere around the object (the user can also provide its own set of light directions - see below). It uses only the graphic card to achieve this.

It is a generalization of the algorithm developed by Tarini et al..


To use this plugin the user must select one cloud or one mesh.

The plugin dialog looks like this:

Cc qPLC dialog.jpg

Most importantly you have to set:

  • whether the light should come from an hemisphere (the 'sky' hemisphere by default, i.e. to one pointing towards +Z) or if it should come from the whole sphere (warning: only works with a closed shape, otherwise the light will attain points by the front and the back leading to an unrealistic and poorly contrasted result)
  • you have to set the number of light rays sampled on the (hemi)sphere. The more samples you use, the finer the result will be, but also the slower the computation will be!
  • the resolution of the OpenGL context that will internally be used for rendering the different 'views' of the object. The bigger, the finer the result. But you need enough memory on you graphic card AND if you use a cloud, you have to get a very dense cloud otherwise holes will appear between the points and let the light enters...

Secondary options are:

  • to specify if the mesh is closed (in case the selected entity is mesh). This accelerates the process.
  • you can input our own 'light directions' by providing a point cloud. Only its normals will be used (considered as independent vectors sampled over of a unit sphere)

On completion, the selected entity will gain a new scalar field corresponding to the illumination of each point.

Cc qPCV result.jpg

You can modify the display parameters of this scalar field to increase the contrast for instance. You can also convert this scalar field to RGB colors, etc.