setzer22 / egui_node_graph

Build your node graph applications in Rust, using egui
MIT License
718 stars 134 forks source link

Performance concerns #103

Open Bronzdragon opened 1 year ago

Bronzdragon commented 1 year ago

Hey! I wanted to use this library for my project, but it seems it's not very performant at high node counts. I noticed my computer struggling at 200 (unconnected) nodes, and it basically slowing to a standstill at 400.

If it's possible to add some performance features for large graphs, that would be appreciated. Not rendering nodes that aren't on-screen would be a logical place to start. (Though with the connections running across the screen that might be difficult.

BenJourdan commented 1 year ago

I think the thing you're after would be some version of Blender's node groups. That "should" drastically cut down the number of nodes needing to be rendered at once for most applications and improve the user experience. Setzer did mention they were thinking about doing this at some point but that was a while ago (https://github.com/setzer22/egui_node_graph/discussions/49).
hQm56 (from https://blender.stackexchange.com/questions/156988/how-to-make-node-group-of-an-existing-material-into-a-new-group-in-python)