Search code examples
c++opengl3dpoint-clouds

Culling obstructed points in a point cloud


I have a 3d point cloud image (see below).

And I would like to cull all the points which are theoretically behind other points (e.g points around the back of the person will not be visible since it's obstructed by the points around the chest and abdomen).

How do I go and solve this problem ?

All I need are just points which are not obstructed from frontal view, so that I can use it to for other purposes.

Edit: It's not really for viewing purposes. I am trying to isolate only the unobstructed vertices to calculate surface normal later on in order to extract depth image features.

enter image description here


Solution

  • You can't obscure something with a point - it has no dimensions.

    If you have a mesh (i.e. you know which points "connect" to which) you can hide things that are obscured behind that mesh.

    If you don't, the easiest trick I know of to achieve something like your requirement is to use z-related fading - just make points at the rear fainter.