Blender Git Commit Log

Git Commits -> Revision b4209b1

Revision b4209b1 by Clément Foucault (master)
March 14, 2018, 11:41 (GMT)
Clay: Refactor: Port clay to a deferred pipeline.

This means that rendering clay with AO only needs 1 geometry pass.
Thus greatly improving performance of poly heavy scene.

This also fix a self shadow issue in the AO, making low sample count
way better.

We also do not need to blit the depth anymore since we
are doing a fullscreen shading pass.

The constant cost of running the a deferred shading pass is negligeable.
This include quite a bit of code cleanup inside clay_engine.c.

The deferred pipeline is only enabled if at least one material needs it.
Multisampling is not supported yet.

Small hacks when doing deferred:
- We invert the normal before encoding it for precision.
- We put the facing direction into the sign of the mat_id.
- We dither the normal to fight the low bitdepth artifacts of the normal
buffer (which is 8bits per channel to reduce bandwidth usage).

Commit Details:

Full Hash: b4209b138f6bda863009568bf8dc19eb5cf8361c
Parent Commit: e22bc55
Lines Changed: +348, -192

1 Added Path:

/source/blender/draw/engines/clay/shaders/clay_prepass_frag.glsl (+44, -0) (View)

3 Modified Paths:

/source/blender/draw/CMakeLists.txt (+1, -0) (Diff)
/source/blender/draw/engines/clay/clay_engine.c (+243, -179) (Diff)
/source/blender/draw/engines/clay/shaders/clay_frag.glsl (+60, -13) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021