After the release of the 3.8.1 version of the Cryengine, I wanted to test the new feature SVOTI.
Two goals. First, showcase the feature as a tech demo, second, see if it's possible to have an high quality archviz with real time GI.
I decided to test it with an indoor scene, to try to reach the limits of the system. Indoors need precision.
I used the Baron Haussmann scene of Bertrand Benoit, optimized it for real time, and the GI system worked really nice instantly. After days of tweaks, optimizations, and a lot of help from Vladimir Kajalin (who made the system), the BaronHaussmann demo version 0.4.6 is available for download.
This version is stable, it works pretty well, but it lacks many feature I will introduce for the final release 1.0. For the moment, the sky intensity is not dynamic, the reflections from the voxels does not work yet, the cubemaps are static, and it miss furniture who will hopefully bring life to the apartment.
There is not a lot of images, and no video from me, because it's still very WIP, and I don't want to spread it until I consider it done.
The demo is heavily demanding, my goal is realism, and the optimization process is not complete. The SVOTI system is used at its best, high quality settings : minimum voxel size, 2 bounces, fully dynamic. You can access to the full information about the demo here. Or directly download Baron Haussmann 0.4.6
In this demo, it is possible to:
-Visit the apartment freely, the physic is optimized.
-Change to time of day, with right and left clic, and see how the GI reacts with the sun moving.
-See the apartment with GI disable, 1 bounce or 2 bounces.
-Zoom with [E], a raycast determine the distance and range of the depth of field.
-Activate/desactivate many lights in the apartment with [R] (dynamic GI)
Here is some flowgraph I made for the logic.
The global FG for the level looks like this:
Depth of field:
When [E] is pressed, I get the current fov, and modify it to 35 in 0.3 seconds. In the same time I activate the node dof, and open the gate to trace raycast every frame to get the distance. I found out that the raycast is not generated from the exact position of the camera, so I add one meter, and multiply this value by 1.5 to set the range. When [E] is released, I disable the dof node, and close the gate.
For every light there is a proximity trigger, when in, you can activate or not the light. When [R] is pressed, you change the gametoken value (bool) to activate or deactivate the light. In this example, I modify the material too, to change the diffuse color and add some glow.
For the release of the 3.8.3 of the Cryengine, I'll go with the version 0.5, which will add some lighting improvements and possibilities.