With the demise of the first version of RogueTable (Windows compile speed was seriously degraded), I began working on a new version which overcomes the issues with speed, allocations, etc.
Here’s the first look with the new particle system and true dynamic lighting.
each particle light includes the following:
3 particle systems
– 1 for the flame
– 1 for rising smoke
– 1 for rising lit smotes (those little tiny glowing bits)
6 separate large particles for the additional smoke effect
1 separate large particle for the lens flare
All of these have random rotations, size, motion applied during their birth.
In the shaders and OpenGL, there are NO lights of an kind being used!
All lighting is pre-calculated and dealt with on the CPU. This supports many lights (currently max is 4096).
Lights are added when required along with light blockers (these will prevent the flow of light).
The light system will calculate the flow of light flowing round blockers with pseudo-shadows being a by-product. Light is mixed allowing many color effect if required (using different light settings per frame will give the flickering effect as seen above).
In this early version of the shader code you can see how the main gate is blocking the light:
Light calculations and shadows are not determined by how many lights are in a scene. So loads can be used without heavily affecting performance.