Unreal Enigma Particle Engine

Post Reply
User avatar
Shadow
Masterful
Posts: 719
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: mad scientist
Location: Halle (Saale), Germany
Contact:

Unreal Enigma Particle Engine

Post by Shadow » Wed Jan 05, 2011 3:26 pm

Regarding the refreshing and inspiring discussion with Feralidragon concerning particle system and due to the fact my own particle engine is going to be very complex but very efficient I'd like to share thoughts on development of that engine in an own thread.

To sum it up I can say that the Unreal Enigma Particle Engine is going to be as effective as the Unreal Cascade Particle Engine of the Unreal Engine 3, except for that there's no such Cascade Editor, you just place the emitter into the Map... et voila.

Core Features

- 99 % running in C++ on the GPU
- Linked List holding all Enigma Actors, to be fast accessable in C++ AND Unreal Script, each Enigma Actor finds the other with the blink of an eye
- internal Event System (which allows to control why, when and how particles are changed in realtime)
- no spawning of any Actors
- no spawning of any Objects
- will be integrated into all other Effect Systems (Projectiles, Special Effects, Weapon Effects etc.)
- lots of Settings to tweak the Engine using a corresponding Menu


Emitter Features

- instant in-Editor Preview Support
- easy-to-setup module-driven Variable Settings
- complex Particle System Support holding a dynamic List of SubEmitters
- Trigger, Attach, Movement Support
- Sprite-, Corona-, Mesh-, Beam-, Trail- and Spark Emitters (maybe even Fluid Emitters drawing realistic Fluids...)
- each emitter has an unlimited list of modules, so even a single emitter may render particles as if there would be multiple emitters


Particle Features

- Particle to Particle Interaction Support
- Particle Force Support
- Dynamic Particle Physics and Collision
- Event-driven Particle Actions
- Dynamic Particle Sound System


Rendering Features

- Primitive Particle Rendering: Rendering of primitive model objects like Points, Lines, Crosses as Particles (internally used for debugging, but also available as indipendent emitters)
- Sprite Particle Rendering: Allows for rendering of tons of sprite particles, with dynamic color, brightness, size (even U/V size)
- Corona Particle Rendering: Allows for rendering of tons of corona-sprite particles, with dynamic color, brightness, size (even U/V size)
- Spark Particle Rendering: Stretched particles that represent sparks / fireworks
- Beam Particle Rendering: Smoothed segmented beam particles
- Mesh Particle Rendering: Should be faster than standard mesh render, as only the mesh is rendered without any actor representing it
- Trail Emitter Rendering: Stretched ribbon particles representing trails


Expect first render pics and previews next week :agree1:
Image

User avatar
>@tack!<
Adept
Posts: 338
Joined: Sat Apr 17, 2010 4:51 pm
Personal rank: lol?

Re: Unreal Enigma Particle Engine

Post by >@tack!< » Wed Jan 05, 2011 5:58 pm

NICE :D

User avatar
Saya-chan
Adept
Posts: 445
Joined: Mon Jun 02, 2008 10:46 am
Personal rank: Former UT99 modder
Location: Vigo, Galicia
Contact:

Re: Unreal Enigma Particle Engine

Post by Saya-chan » Thu Jan 06, 2011 1:35 pm

Awesome! :gj:
Shadow wrote:- 99 % running in C++ on the GPU
OpenCL?
"Not only is UNIX dead, it’s starting to smell really bad" -- Rob Pike

User avatar
Shadow
Masterful
Posts: 719
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: mad scientist
Location: Halle (Saale), Germany
Contact:

Re: Unreal Enigma Particle Engine

Post by Shadow » Thu Jan 06, 2011 1:56 pm

No. The principle is simple. Each native function on c++ like the render functions run first on the CPU and are passed to the GPU according to the used render driver (OpenGL, DirectX), only if you would use the build-in Software Renderer the whole thing would run on the CPU.
Image

User avatar
Saya-chan
Adept
Posts: 445
Joined: Mon Jun 02, 2008 10:46 am
Personal rank: Former UT99 modder
Location: Vigo, Galicia
Contact:

Re: Unreal Enigma Particle Engine

Post by Saya-chan » Thu Jan 06, 2011 2:27 pm

oh. okay
"Not only is UNIX dead, it’s starting to smell really bad" -- Rob Pike

Myth
Inhuman
Posts: 973
Joined: Tue Feb 12, 2008 5:57 pm
Personal rank: Low Poly Freak

Re: Unreal Enigma Particle Engine

Post by Myth » Tue Jan 11, 2011 10:30 pm

This is what a mapper could benefit most from:

Send particles through spline (+ param based random transformation) (+ key-points affecting color, alpha, size).
Extremely useful for some environment effects and synchronized cinematic effects. Examples include mostly flow of water, electricity, dust, mist, wind and ect around the level geometry. If particles can have a model, then this also makes traffic possible on a serpentine road and other objects flying through the level.

User avatar
Shadow
Masterful
Posts: 719
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: mad scientist
Location: Halle (Saale), Germany
Contact:

Re: Unreal Enigma Particle Engine

Post by Shadow » Wed Jan 12, 2011 12:11 am

You mean sending particles on a predefined path? Cool feature suggestion Myth! I will implement it. Currently there're different Types of Forces and Movement Modifiers a user may apply on a particle system. In addition, if I manage to implement a volume system, there could be useful multiple volumes which transform the particles in partial spaces within a level, so there you would have your Keypoints that affect different settings of the particles.

Unfortunately Zone-dependant modifications don't apply on particles, only on their emitter / particle system, because the particles are just virtual objects, no unreal actors or objects as known usually.
Image

thomgil
Posts: 2
Joined: Tue Jun 21, 2011 4:12 pm
Personal rank: Ktulu

Re: Unreal Enigma Particle Engine

Post by thomgil » Fri Jun 24, 2011 7:33 pm

that's cool! :gj:

User avatar
Shadow
Masterful
Posts: 719
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: mad scientist
Location: Halle (Saale), Germany
Contact:

Re: Unreal Enigma Particle Engine

Post by Shadow » Mon Jul 18, 2011 10:04 am

The new particle engine will be definitely the featured addition to the SDK shipped with the next coming release end of september (30.09.2011) - that's now clear and official, no matter if the future of the SDK is uncertain or not...
Image

Post Reply