Qt3D-Particle-Framework

From Qt Wiki
Revision as of 12:35, 10 October 2016 by Sean Harmer (talk | contribs) (Created page with "{{LangSwitch}} == Details == * Summary: Support particle systems in Qt 3D's renderer * Project lead: Paul Lemire * Branch: wip/particles == Goals == To be able to specify...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

Details

  • Summary: Support particle systems in Qt 3D's renderer
  • Project lead: Paul Lemire
  • Branch: wip/particles

Goals

To be able to specify particle systems at a high level but remain flexible and efficient.

Details

Initial aim is to support systems that provide compute shader capabilities as this is where the hardware is going (OpenGL ES 3.1 onwards, OpenGL 4.3 onwards, Vulkan, D3D12, Metal all have native support). Once this is working we can investigate adding some support for older systems based on transform feedback or vertex shader tricks if deemed worthwhile.

Taking inspiration from particle systems in other engines we want the ability to be able to customise: emission, forces, lifetimes, colors, orientations etc. The approach is to have the ParticleSystem component dynamically generate suitable compute shaders that are then used to step the particle simulations and feed data to the renderer for actually displaying the particles.

The rendering part is taken care of by specifying a GeometryRenderer and Material as usual. The ParticleSystem component only steps the particle simulation.

Rendering may be done by building indirect draw call command buffers in the compute shader.