Skip to content

Making ISAAC way more generic and universal using even more templates #44

Open
@theZiz

Description

@theZiz

At the moment ISAAC is "only" suitable to render gas and iso raycastings of 3D volumes described as a couple of disjunct cubiods distributed over the computation nodes. However there are way more ways to render 3D fields, more ways of 3D volume adresses like tetrahedron meshes or even 2D simulation data, not suitable to be converted to a 3D volume with it's own ways of rendering like a 40,000 x 40,000 scalar field per gpu. This needs a whole knew approach of live visualization.

So imo ISAAC should put

  • the dimension of the data,
  • the access pattern of the data and
  • the render algorithms (depending on the dimension)

to own functors, integrated as template parameters as it is now happening with the render controller and compositor especially for stereographic rendering.
For the last one an mpl::list probably makes sense and to choose at runtime which of the preselected rendering algorithms to use - like now with the choice between iso surface and glowing gas rendering. Unfortunately I still doubt, that a rendering selection per source works with the ISAAC approach.
The template parameters can also implement constant atributes for metaprogramming, stating that the volumes don't need to be disjunct at all, which is e.g. not needed for iso surfaces when a z-buffer is used. With this one of the biggest disadvantages of ISAAC would vanish - at least for some renderings - without the need to think about sending data over network until the data is disjunct.

In the very end ISAAC should be some kind of compile time construction kit to get the most fitting visualization for every simulation with an easy way to extened the template implementations for new needs of simulations.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions