Blender Git Commit Log

Git Commits -> Revision 1558f5b

Revision 1558f5b by Lukas Stockner (master)
September 8, 2016, 23:39 (GMT)
Cycles: Don't run full shader evaluation for constant emission lamps

Most of the time, Lamps in Cycles are just a constant emission closure, no texturing etc. Therefore, running a full shader evaluation is wasteful.
To avoid that, Cycles now detects these constant emission shaders and stores their value in the lamp data along with a flag in the shader.
Then, at runtime, if this flag is set, the lamp code just uses this value and only runs the full shader evaluation if it is neccessary.

In scenes with a lot of lamps and with "Sample all direct/indirect" enabled, this saves up to 20% of rendering time in my tests.

Reviewers: #cycles

Differential Revision: https://developer.blender.org/D2193

Commit Details:

Full Hash: 1558f5b6602ebe8ba31455b1837b2594d5c7f264
Parent Commit: 6de08f6
Lines Changed: +41, -6

5 Modified Paths:

/intern/cycles/kernel/kernel_emission.h (+6, -0) (Diff)
/intern/cycles/kernel/kernel_types.h (+2, -1) (Diff)
/intern/cycles/render/light.cpp (+7, -5) (Diff)
/intern/cycles/render/shader.cpp (+22, -0) (Diff)
/intern/cycles/render/shader.h (+4, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021