Page MenuHome

Light linking
Confirmed, NormalPublicTO DO

Tokens
"Love" token, awarded by PotatoCop."Love" token, awarded by Shimoon."Love" token, awarded by Alumx."Hungry Hippo" token, awarded by Reanimathor."Love" token, awarded by Chrischan."Love" token, awarded by Draise."Burninate" token, awarded by xdanic."Love" token, awarded by jc4d."Love" token, awarded by garyo123."Burninate" token, awarded by zinar."Burninate" token, awarded by juantxo."Love" token, awarded by harvester."Love" token, awarded by Linkun."Burninate" token, awarded by aditiapratama."Like" token, awarded by Alrob."Love" token, awarded by Kramon."Love" token, awarded by gottfried."Love" token, awarded by SteffenD."Love" token, awarded by biteworks."Love" token, awarded by mistajuliax."Love" token, awarded by navarroblaya."Love" token, awarded by bnzs.
Assigned To
None
Authored By

Description

Support to have a light to influence only a few objects. This would be done by specifying a collection per object, where only the lights in the collection influence the object.

There was an initial implementation in D1985, but it is no longer used in production. This implementation was geared towards branched path tracing and sample all lights.

An acceptable implementation should build its own light CDF or tree per light collection, otherwise importance sampling will be very poor with path tracing and many light scenarios.

Event Timeline

Dalai Felinto (dfelinto) renamed this task from Light group to Light groups.Aug 20 2019, 9:24 PM
Dalai Felinto (dfelinto) lowered the priority of this task from 90 to Normal.
Dalai Felinto (dfelinto) created this task.

Isn't this more commonly referred to as Light Linking in other applications? That is, the ability to associate lights with specific objects to illuminate? Light Groups are also a thing in some applications (Revit as one example) but AFAIK this refers simply to grouping multiple lights together in order to affect them as a combined set. Applications that support Light Linking generally let you associate either individual lights or groups of lights with one or more objects to illuminate.

Also for reference here's the one outstanding diff for Light Linking I could find which I believe is one of Tangent Animation's early mods that they submitted a few years ago: https://developer.blender.org/D1985

I believe we're mixing terms here? I've used the concept of light groups in Arnold in the past, as (I think) a precursor of custom AOVs, where the lights' influence gets output to a separate render pass per group. In which case this seems better covered by D4837.
@Dalai Felinto (dfelinto) 's task description is closer to what @Gavin Scott (Zoot) writes:

Applications that support Light Linking generally let you associate either individual lights or groups of lights with one or more objects to illuminate.

I believe we're mixing terms here?

There are a lot of representations in industry, that can be called Light Groups, like

I think the Light Groups concept term in Blender is not defined yet.
It can contain actually both Grouping Lights process and working with Lighting Groups process, interconnecting them in the most positive way.
This is good, because this allow to design a proper, solid workflow solution, based on production demands, and include the experience of ready-made solutions.

Light Groups in Blender is a workflow design task to do.

Brecht Van Lommel (brecht) renamed this task from Light groups to Light linking.Nov 26 2019, 4:29 PM

This task is about light linking. This feature in Blender Internal was called light groups, but we wouldn't call it that anymore. Per light AOVs are unrelated to this task.

Thanks for the clarification!

can we have this as two additional outputs on the light path node too? A object ID and a material ID output, which return the material/object ID the ray is currently hitting.

This would enable us to have different environment for certain objects based on their object id or material id. For example if you look at the image below of the world shader editor, i'm setting the envinronment to be the hdri for all objects except objects that have a material ID greater than 4, which instead reflect, get lit by, and refract a solid green colour.

It would also mean we could specify in the object shader editor, which materials are visible to other objects/shaders too (by using the object output into a mix shader which has the main material and a transparent bsdf connected to it, and the light path into the factor)