LiangliangNan / Easy3D

A lightweight, easy-to-use, and efficient C++ library for processing and rendering 3D data
GNU General Public License v3.0
1.37k stars 245 forks source link

[Question] Does Easy3D support transparency between PointCloud and SurfaceMesh? #159

Closed sebmavro closed 1 year ago

sebmavro commented 1 year ago

Hello, First of all, thank you for this very nice work. I wonder if it is possible to easily get a transparency rendering between a point cloud and a triangulated surface? For example, I would like to visualize a point cloud "wrapped" in a surface mesh... The tutorial on transparency shows how to proceed for a set of triangulated surfaces only. I tried to assign a color with an alpha component to the vertices of my surface but it doesn't seem to work ... I feel like I'm "missing" something simple ... or not ... Can you give me some advice? Have a nice day.

LiangliangNan commented 1 year ago

Hi, the visibility of a set of 3D points is not well defined, i.e., it is ambiguous to tell if a point is visible or not. This is due to noise, non-uniform distribution (and especially missing regions caused by occlusions) of the points. See further discussion in this CVPR paper. Because of this, visualizing a point cloud with transparency may not look natural (though it is possible). This is the reason that it is not implemented in easy3d.

sebmavro commented 1 year ago

Hi, thanks for your quick response and for the very interesting paper. I understand that the general case can be difficult to handle. There will be no real ambiguity for the scene I want to visualize. The two models (cloud and surface) are like stacked one on top of the other. I'll try to give to the AverageColorBlending class :

I hope this will be quite ok ... let's see tomorrow! Thank you and have a nice day.