A deferred lighting system with dynamic soft shadows makes Leadwerks Engine one of the most advanced real-time renderers on the market. Every object can cast, receive, and self-shadow. More than one million triangles can be drawn each frame in real-time.
Lighting
Leadwerks Engine features a unified lighting system with dynamic soft shadows. There is no limit to the depth and complexity of lighting interactions. Lamps can be knocked over, lights can be turned on and off at will, and dynamic day/night cycles can be used to render real-time sunsets and weather changes. Using a dynamic lighting system removes the need for any pre-processing or compiling; scenes can be edited in real-time, and the results are instantly visualized, significantly streamlining the development process.
Deferred lighting is basically a way of rendering lights and shadows in a post-processing step. Its strength is that it only processes lighting for the final screen pixels. Therefore it will run at the exact same speed whether there is one or one million polygons onscreen. This allows Leadwerks Engine to display dozens of dynamic lights at a very low performance cost.
Download our article on
Deferred Lighting
Post-Processing Effects
Advancements in graphics hardware now allow full-screen effects to be performed on a rendered image, to create a wide variety of special effects. When used properly, post-processing effects can give a cinematic quality to computer graphics.
Leadwerks Engine features a low-level buffer and shader system which allows rendering of any kind of post-processing effect. Although this requires a deeper understanding of shaders than a simple "turn bloom on" system, it allows far greater flexibility. New post-processing effects can be added without having to modify the engine source code.
The following are just some of the post-processing effects supported:
- Desaturation
- Depth of field
- Motion blur
- Gaussian blur
- Bloom
- Screen-space ambient occlusion
- Volumetric light scattering
Depth of field effect with control for near and far ranges
Screen-space ambient occlusion provides a
real-time approximation of global illumination
To render post-processing effects, we use an additional buffer. We first render the scene to the gbuffer, then render lighting onto the postbuffer. In the last step, we draw the postbuffer color texture onto the back buffer, with post-processing effects applied, as shown in the diagram below:
Advanced Effects
The engine's render buffer system allows the programmer to upload buffer components to a shader and use them for advanced effects, including the following:
- Refraction and reflection
- Soft particles
- Water effects
New effects can be implemented without requiring any changes in the main engine source code.
Occlusion Culling
Leadwerks Engine uses per-pixel hierarchal occlusion culling performed on the GPU. There's no need for complicated BSP systems or visibility compiling; If you can't see it, it doesn't get drawn.
Related Lessons: