jbehley / point_labeler

My awesome point cloud labeling tool
MIT License
656 stars 161 forks source link

How to initialize bufPoints_ #52

Closed wngTn closed 2 years ago

wngTn commented 2 years ago

I try to add an option to view the original color of the point cloud.

Right now, however, I am struggling to find out where exactly the points in bufPoints_ is getting filled with points. I think I have narrowed it down to the method setPoints, but I'm not quite sure.

jbehley commented 2 years ago

Thanks for your interest in our work.

Filling the point buffer is happening in a OpenGL shader using a TransformFeedback, which writes the points into the buffer. Therefore, you have to modify the fill_tile_points.vert and fill_tile_points.geom shader programs. Most likely you have to have an additional binding for your colors, that is then copied in the vertex shader, and then forwarded to the geometry shader. The geometry shader then emits the points that are recorded into the buffer using the transform feedback. This is a bit more complicated, but we found that this way determining if a point is inside a tile can be handled by the GPU in parallel and the points are directly produced on the GPU. (But honestly, we didn't really benchmark if producing this on CPU, and then copying it to the buffer is maybe equally fast.)