Plotter Redesign #33
termi-official
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The current pipeline reflects the straing forward way of rendering with makie, but is also peak inefficiency. When the topology interface is merged my new idea is to have a more modern pipeline based around culling, as found in game engines, and filters, as for example found in paraview. However, I still struggle with the details.
I start with a short outline on what I know and how I want to design it.
Which I would like to yield a look into the deformed mesh while also seeing the deformed wireframe. Caching could be introduced by passing copies on each subsequent call.
*!
variants are then allowed to bypass this copying.Render!
is a way to tell the backend to render into the same (graphics) buffer.However, I am a bit lost on how to keep the triangulation in sync. Maybe it is required to have a "shadow" of the grid here, i.e. some element-wise metadata. But this then can become quite expensive once we have several different. Maybe we should take a look on how exactly the ParaView filter architecture works to learn from it.
3. Maybe we could also get away with a change in the actual interface. We could have some basic primitives, as for example
surface
andwireframe
, which appect some optional filters. A possible categorization would be into "topological", "geometrical" and "data transform" filters, where cutting the mesh open would be an example for a topological filter, deforming the mesh would be a geometrical one and extracting a component to colour a surface would be a an example for the data transform. Alternatively we could think about how we could make an interface which directly applies to the plotter object.Feedback pls @koehlerson .
Beta Was this translation helpful? Give feedback.
All reactions