rerun-io / rerun

Visualize streams of multimodal data. Free, fast, easy to use, and simple to integrate. Built in Rust.
https://rerun.io/
Apache License 2.0
6.62k stars 335 forks source link

Render entire viewer (or individual views) to user exposed texture #7407

Open ndahn opened 2 months ago

ndahn commented 2 months ago

Is your feature request related to a problem? Please describe. I am writing a GUI and would love to use rerun as my backend for visualizing data. I already have visualizers for e.g. 3d models using open3d's offscreen renderer, but of course so far I have to implement these for every data type. Rerun already has a huge variety of very nice visualizations that I would love to leverage.

Describe the solution you'd like Ideally there would be a way to get access to the renderer and pass it a view and a buffer to render into. If this is already possible I couldn't find it (apologies).

Describe alternatives you've considered Screenshots, a good alternative if I want to create the least performant GUI in the world :)

Additional context This is somewhat related to #3941, however, there the focus is on exporting buffers to files. I would like to use the renderer in a more direct manner. The underlying mechanism may of course be the same.

Wumpf commented 2 months ago

Extracting an OpenGL compatible surface would be fairly tricky as we target different backends dynamically. Also, wiring up ui interaction to work with that buffer then is extra hard (but arguably another orthogonal step).

That said, it would definitely be interesting to explore this on the gui/eframe level. Instead of drawing to a window, draw to a surface that can be shared somehow 🤔