The test scene has over 1100 000 triangles (256 spheres) and 324 pointlights! Hemispherical ambientlight, directional light and rim light. All surfaces has diffuse texture, normal and specular maps.
The test also uses FXAA Filter (due to no AA when doing deferred shading) and a bloom filter just because it’s pretty
Next stop is probably Spotlights, shadows… and uhm some kind of game to use all this stuff in
For the moment it’s just a SceneProcessor and 3 materials
Geometry and light volumes (also geometry) is added to the same rootNode.
The SceneProcessor forces the technique to GBuffer and then renders the scene, then render the opaque bucket with forced DefferedLight technique to another framebuffer.
GBuffer saves:
depth (32 bits)
normal (24 bits)
specular (8 bits)
diffuse/albedo (24 bits)
The final step is done in a new MainViewport where I just render a fullscreen quad and after this I let FilterPostProcessor FXAA and bloom filter do it’s magic.
Ideally I would make some changes to the core classes… it would be nice to use the same light classes for deferred and forward rendering (which I still gonna need for transparent stuff). I’m also wanna extend the renderManager with some methods.
There is still much to do, my current code is just slammed together and I’m sure there is plenty of room for improvements.