brain-slam / slam

Surface anaLysis And Modeling
MIT License
13 stars 24 forks source link

Fully move from pyglet to visbrain #60

Closed alexpron closed 1 year ago

alexpron commented 3 years ago

Visbrain was chosen as the visualisation package for slam.

Furthermore, it would be the opportunity to discuss how to deal with visualisation dependence in the example and strategies that could be implemented

JulienLefevreMars commented 3 years ago

Yo Alex !

For curvature direction I have everything for that in my vector_field class + visualization with visbrain :-) There remains some tricky issues because there are troubles with vispy to manage a surface and vectors. The opacity of the mesh is lost and it is a big mess. See here for instance: https://github.com/EtienneCmb/visbrain/issues/84

I have found a temporary solution where points that are not visible from the camera location are hidden but it is not completely satisfactory. The best way would consist to use ray tracing to identify point that are really not visible (not based on a criterion with the vertex normals, whose only advantage is to be less costfull).

Bon réveillon ! Julien

alexpron commented 3 years ago

Super nice @JulienLefevreMars ! That definetly is a super basis to work on to have the final display we want. May be worth to discuss with @EtienneCmb next year :) Bon réveillon et à bientôt

EtienneCmb commented 3 years ago

Hello guys ! Happy new year :D

Sorry for the delay @JulienLefevreMars, but very nice figures !

Under the hood the VectorObj is using the ArrowVisual Vispy class. The vector is built using two elements : the line and the arrow head. The best would be to have a custom glsl shaders where the arrow is hidden when the camera is moving. From what I remember, the shaders should contain a discard so that, given a certain condition, we don't plot the arrow according to the camera rotation. I suggest to open a issue on Vispy github where you can past the figures to illustrate the problem, they might have a better solution

alexpron commented 1 year ago

The visualization code was removed from slam to focus on processing. Not longer relevant for slam but useful for slamviz