Finally it's time for another release of XEffects. This may actually be the last before I decide to officially integrate half of the feature set of the wrapper into Irrlicht (And scrap the rest).
New exciting features include:
- Screen Space Water Example -
Water that gets rendered in a post processing pass. This makes it pretty much totally independent from the actual scene, the only thing needed is for everything to get added into a depth pass so that the positions are known to the water when it's rendered. This water features bump mapped specular highlights, refraction (Special trick to get rid of artifacts without a clip plane), and smooth fading at shorelines.
Just to show how versatile this water is, I removed the terrain scene node from the example (Example Number 4) and added the small room instead, as you can see the water is still rendered adequately:
- Simple Shader Ray Tracing -
This is a bit of fun on the GPU. A very simple post-processing based shader that ray-traces 2 spheres and a plane. Unlike most demos similar to this it also features texture mapped spheres and planes. All the code is available in the shader files for you to study.
- VSM Shadow Mapping -
This is one of the reason I was so excited for the 1.6 Irrlicht release. FP render textures allow you to do many nice things and one of those is hassle-free rendering of VSM shadows (You can do it without but it is buggy and non-portable!). VSM shadows allow you to blur the shadow map before sampling it, and they are naturally bi-linearly filtered so never show any of the typical aliasing artifacts previously found in XEffects shadows. Give them a try!
Here is a close up of the VSM shadow on the tongue of the dragon, you can see it's super-smooth and there is no noticeable aliasing anywhere.
- API changes and improvements -
- All the built-in shaders are contained within the source code now. This also means you don't have to pass in a "shader folder" parameter to the EffectHandler constructor anymore, and loading times should be slightly quicker without having to read all the files.
- Demonstrated in examples 3 and 4, you now have the ability to set custom shader constants in post-processing effects and the ability to create custom pre/post render callbacks that get called before/after a post-processing pass will be/has been rendered.
- All the shadow mapping procedures now use floating point textures (Not only VSM). This generally means less artifacts and more precision. You also have the ability to select 32-bit per channel depth buffers (Recommended for VSM shadows).
- Few bug/glitch fixes here and there.
Cheers I hope you enjoy this release.