[Bf-committers] Viewport project

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Sep 23 03:13:51 CEST 2014

Nice blog post.

For reference, here is how I imagined one would make Cycles GLSL more like
modern PBR in games. It's stuff that you will find in e.g. recent SIGGRAPH
course notes, and should be pretty efficient.

For direct light you do pretty much the same as what GLSL shaders can do
now. Loop over lights and compute the direct light with the BSDF,  compute
shadows with shadow maps.

For indirect light you rely on an environment map, stored as a cube map.
This should have a mipmap or texture array, with roughness used to pick the
right image, from high resolution for sharp to low resolution or blurry for
diffuse. Shadowing for indirect light is approximated by AO which you just
multiply with the environment map. The environment map could be generated
by compiling the world shader nodes as a shader and rendering that to a
cube map.

The thing I like about this is that you can relate tricks like SSAO to the
physically based Cycles nodes and it makes it clear how it all fits
together. The materials and world could have a separate viewport socket to
allow users to have a different node setup in the viewport.

Beyond this it's possible to try to approximate area lights with blurring
shadows and increasing BSDF roughness, filtering the environment mipmaps in
such a way that they match specific BSDFs,  replacing a single environment
map with multiple light probes, roughness adjusted AO, screen space SSS,
and so on. But I suspect the basics will look pretty good + render fast,
and a lot of the building blocks for that are in place.

On Sep 22, 2014 4:19 PM, "Antony Riakiotakis" <kalast at gmail.com> wrote:

> Hi, I have posted a blog post on code.blender.org about the design and
> targets of the viewport project.
> http://code.blender.org/index.php/2014/09/viewport-project-targets-current-state-of-the-code/
> Feedback (and contributions!) are encouraged and welcome!
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers

More information about the Bf-committers mailing list