SPARK Particle engine Renderer


I’m building an urho3D renderer for the SPARK particle engine, I love its modularity.
Maybe I will build an editor too.

Editor (Prototype in dev) (Windows x64 version)


You mean this SPARK here?
Woah, didn’t know about that! I searched for st similar a lot!
Thank u man!

That’s nice. What are the advantages compared to Urho’s built-in particles?

It is fast and modular and easy to build complex effects. Its code is also quite flexible and scalable with its design to create your own extensions.

Personally I use it because it also works independently of the 3D engine (I’m using Urho and another engine for my stuffs and I need and independent library to get same effects works in both engine) but without this constraint, it is also a nice alternative to urho built-in particles to consider if you like to render cool effects, and by default it offers some additional nice features :

  • Independent Renderers per group (Quad and Point for now - what I added for urho - But I’d also like add a Marching Cube renderer to render fluid like, and also a mesh renderer to draw meshes instead of sprites)
  • Cool Modifiers :(Basic,Collider,Destroyer,EmitterAttacher,LinearForce,Obstacle,PointMass,RandomForce,Rotator,Vortex)
  • Particles collisions (particles vs environment and particles vs particles)
  • Differents built-in spatial Zones used by emitter and modifiers : Box, Cylinder, Plane, Point, Ring, Sphere.
  • Emitters : from Normals zone, Random, Spheric, static, Sraight
  • Different interpolators (basic, random, graph)
  • Particles can triggers actions.

The actual QuadRenderer (like urho billboard) for urho support differents options to orientate particles sprites :

Cannot compile on OsX. I get

SPARK-spark2/external/pugixml/src/pugixml.cpp:3165:82: No type named ‘basic_istream’ in namespace ‘std’

default project generated with cmake for xcode. It looks like a library problem.
If I change that to gnu libstdc++ I get:

/SPARK-spark2/include/Core/SPK_Group.h:373:4: Non-type template argument of type ‘size_t (SPK::Group::)() const’ cannot be converted to a value of type ‘type’ (aka 'returnType (SPK::Group::)() const’)

so now way. What to do?

disable xml at compile with this define : SPK_NO_XML
I know there is some errors with xml io, I will fix that later

Gave a try with Xcode9 and I get various errors, last one:

Rendering/Urho3D/SPK_Urho3D_QuadRenderer.cpp:140:32: Call to pointer to member function of type ‘void (const SPK::Particle &, SPK::URHO::IUrho3DBuffer &)’ drops ‘const’ qualifier

given up on Os X, seems XCode is not very forgiving.
Gonna try on Ubuntu…

Sorry I don’t have any OS X. Actually, I only tested it on linux, but thanks for report I’ll check this error.

Did you get the last commit ? I think this problem should be resolved in last updates I made many changes.

Some progress…

The Urho3D renderer for sprites works as expected (same render as internal opengl renderer).

I used my old procedural editor for urho (inacheved) to quickly integrate the spark engine. The modular design of spark works fine with this kind of editor. All the spark modules are not yet integrated, but basics are here.


BTW, what UI do you use?

It’s a personnal fork of this tool (written in Qt) :

Today I tried building on my Ubuntu, but no luck. Seems QT Creator doesn’t want to find Urho includes. Must be some trick to it. I googled for, but found no solution…

It will be a good day if SPARK will be part of the Urho3D 1.8 :slight_smile:


I released a prototype of the procedural editor I’m working on, for urho and spark. (windows version)
I would like your opinion on it, any suggestions are welcomes.

I made a little tuto on how to use the editor: open “tuto.e4prj”

EDIT: I updated package with missing dll and I updated tuto :

1 Like


I now integrated SPARK inside Urho3D as thirdparty with cmake scripts.

It can now be used like others Urho3D resources or manually to create effects from scratch.
See sample : 60_SparkParticles in repo.


That looks really nice. Thanks for sharing it.
How is the performance when running it on mobile device?

This is awesome! Do particles react to scene geometry?

I’m 99% sure that no. It sounds like incredibly hard task.

Do you mean for collisions ?
If it is, actually not. SPARK handle collisions but in internal with its own colliders shapes (box, sphere, plane, cylinder…) so it is possible to fake some scene collision using spark shapes over urho scene geometry (for basics shapes).

But I think it should not be too difficult to extended it using bullet physics shapes and get real world collisions.

I can’t test on mobile for now, I need to config a dev platform for that, but soon…
However, on desktop performances are really good.

It works!
I had to comment out SPK_WITH_XML on Os X otherwise I get errors, but It’s working!