[Bf-committers] GSOC Project: Real-time compositing / SSAO / Cavity shading

Matthias Fauconneau matthias.fauconneau at gmail.com
Sat Mar 20 15:23:54 CET 2010

Cavity shading is an effect which allows artists to better perceive
bump and valleys on their objects. This effect can be computed in
real-time using Screen-Space Ambient Occlusion.
By extending the existing compositing nodes to support GLSL
compositing in the viewport, Blender could win three features in one.

Benefits to Blender:
Cavity shading is requested by blender sculptors and modelers on
blenderartists.org and IRC. It is also on the Durian wishlist.
SSAO can also be used as an approximate AO for rendering and in game engine.
GLSL compositing would help preview compositing effects and may
eventually be used to accelerate render.

3D View will support compositing effect.
Compositing node will be translated to GLSL.
A custom compositing node will compute SSAO.
Deferred material like Cavity shading will become possible.

Project Details:
The first step is to interface with the 3D View to create a
framebuffer and render with effects applied.
Building upon the GLSL material nodes (in blender/gpu/), It is
possible to translate the compositing node graphs into GLSL code.
The SSAO shader was already implemented as a compositing node[1]. It
was translated to C from a GLSL implementation. with GLSL compositing
nodes, the original shader can be used.
Finally, the cavity shader is simply a mapping of AO values to a color
ramp. Some work will have to be done to support multiple materials.

I'm a 18 year old student in my 1st licence year in physics, at
Université Paris-Sud 11
My main interest is real-time computer graphics.
I know how to use blender but I am no 3D artist.
I coded small projects like a quake3 .map renderer, a 2D platformer
with softbody physics and a comic coloring software.

I implemented a GLSL material node allowing the user to write it's own
GLSL shader.
This allowed me to get to know part of blender architecture.
screenshot -> http://imagebin.org/89652
patch -> http://pastebin.com/Q07TQn3F

PS: I'll be on #blendercoders as "Matthias-" for the Sunday IRC Meeting

[1] CPU SSAO compositing node by arkano22:
       thread: http://blenderartists.org/forum/showthread.php?t=175863
       patch: http://www.thehiddenfactory.com/arkano/cavityao.patch

More information about the Bf-committers mailing list