Light linking #68915

Closed
opened 2019-08-20 21:24:09 +02:00 by Dalai Felinto · 420 comments

Support to have a light to influence only a few objects.

This would be implemented by having a collection per light, where only the objects in the collection are illuminated by that light. This is compatible for example with light linking in USD.

On top of this basic data structure there a more convenient UI can be implemented, for example to automatically created a light linking collection from selected objects or selected collection, to view and edit the relation from the object -> light point of view instead of light -> object, etc.

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. A newer implemented was being worked on in D11636, however it is in very early stages.

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.

Support to have a light to influence only a few objects. This would be implemented by having a collection per light, where only the objects in the collection are illuminated by that light. This is compatible for example with light linking in USD. On top of this basic data structure there a more convenient UI can be implemented, for example to automatically created a light linking collection from selected objects or selected collection, to view and edit the relation from the object -> light point of view instead of light -> object, etc. There was an initial implementation in [D1985](https://archive.blender.org/developer/D1985), but it is no longer used in production. This implementation was geared towards branched path tracing and sample all lights. A newer implemented was being worked on in [D11636](https://archive.blender.org/developer/D11636), however it is in very early stages. 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.
Author
Owner

Added subscriber: @dfelinto

Added subscriber: @dfelinto
Dalai Felinto changed title from Light group to Light groups 2019-08-20 21:24:17 +02:00

Added subscriber: @AntonioNavarroBlaya

Added subscriber: @AntonioNavarroBlaya

Removed subscriber: @AntonioNavarroBlaya

Removed subscriber: @AntonioNavarroBlaya

Added subscriber: @GavinScott

Added subscriber: @GavinScott

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

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

Added subscriber: @AlbertoVelazquez

Added subscriber: @AlbertoVelazquez

Added subscriber: @lemenicier_julien

Added subscriber: @lemenicier_julien

Added subscriber: @frameshift

Added subscriber: @frameshift

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.
@dfelinto 's task description is closer to what @GavinScott 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? 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](https://archive.blender.org/developer/D4837). @dfelinto 's task description is closer to what @GavinScott writes: > Applications that support Light Linking generally let you associate either individual lights or groups of lights with one or more objects to illuminate.

Added subscriber: @1D_Inc

Added subscriber: @1D_Inc

In #68915#814479, @frameshift wrote:
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.

> In #68915#814479, @frameshift wrote: > I believe we're mixing terms here? There are a lot of representations in industry, that can be called Light Groups, like - [per Light AOVs (Arbitrary Output Variables) in Arnold ](https://youtu.be/FDxg6EvOrz4) or - [Corona Light Mix ](https://youtu.be/sPR7lv-q6lk) or - [LuxRender Light groups ](https://youtu.be/LD5YS8-0Rkg?t=73) or - [Revit Light Groups ](https://knowledge.autodesk.com/support/revit-products/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Revit-DocumentPresent/files/GUID-95718012-8003-4697-A568-87D26DAF073D-htm.html) 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 changed title from Light groups to Light linking 2019-11-26 16:29:37 +01:00

Added subscriber: @brecht

Added subscriber: @brecht

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.

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.

Added subscriber: @SteffenD

Added subscriber: @SteffenD

Added subscriber: @GottfriedHofmann

Added subscriber: @GottfriedHofmann

Added subscriber: @FinbarrORiordan

Added subscriber: @FinbarrORiordan

Added subscriber: @Memento

Added subscriber: @Memento

Added subscriber: @JulianPerez

Added subscriber: @JulianPerez

Added subscriber: @Dogway

Added subscriber: @Dogway

Added subscriber: @c2ba

Added subscriber: @c2ba

Added subscriber: @AditiaA.Pratama

Added subscriber: @AditiaA.Pratama

Added subscriber: @Lincoln

Added subscriber: @Lincoln

Thanks for the clarification!

Thanks for the clarification!

Added subscriber: @Thiagodesul

Added subscriber: @Thiagodesul

Added subscriber: @NizarAmous

Added subscriber: @NizarAmous

Added subscriber: @cschumann

Added subscriber: @cschumann

Added subscriber: @3di

Added subscriber: @3di

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.

image.png

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)

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. ![image.png](https://archive.blender.org/developer/F8333573/image.png) 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)

Added subscriber: @PawelSwierczynski

Added subscriber: @PawelSwierczynski

Added subscriber: @ephelion

Added subscriber: @ephelion

Added subscriber: @moisessalvador

Added subscriber: @moisessalvador

Any progress on this? It would be great to have, I neede this in production a month ago.

In #68915#869230, @3di wrote:
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.

image.png

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)

^This would be fantastic as well

Any progress on this? It would be great to have, I neede this in production a month ago. > In #68915#869230, @3di wrote: > 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. > > > ![image.png](https://archive.blender.org/developer/F8333573/image.png) > > > 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) ^This would be fantastic as well

Removed subscriber: @moisessalvador

Removed subscriber: @moisessalvador

Added subscriber: @Pewi

Added subscriber: @Pewi

As a long time 3dsmax user (since 1997) but now a loyal Blender user, this is a must-have feature. In 3dsmax this feature has always existed in lights.

This is how the workflow looks in Max:

  • Select a light
  • Click the "Exclude" button. This opens a dialog box.
  • Here user is presented with two options.
  • First a toggle for "include" and "exclude".
  • Second a switch between " illumination", "shadow casting" and "both".
  • Below this, a list of all objects in the scene is presented. User marks the objects wanted and move them using a button to the list for exclusion or inclusion.
  • Done

This same workflow works for most lights in max using most renderers.
In Blender, I think could be done using light nodes.

I'm not a coder. I'm just requesting a feature that is very necessary to give the user full control over lights in most scene situations.

Very best regards to all,
Jonas, Stockholm, Sweden

As a long time 3dsmax user (since 1997) but now a loyal Blender user, this is a must-have feature. In 3dsmax this feature has always existed in lights. This is how the workflow looks in Max: - Select a light - Click the "Exclude" button. This opens a dialog box. - Here user is presented with two options. - First a toggle for "include" and "exclude". - Second a switch between " illumination", "shadow casting" and "both". - Below this, a list of all objects in the scene is presented. User marks the objects wanted and move them using a button to the list for exclusion or inclusion. - Done This same workflow works for most lights in max using most renderers. In Blender, I think could be done using light nodes. I'm not a coder. I'm just requesting a feature that is very necessary to give the user full control over lights in most scene situations. Very best regards to all, Jonas, Stockholm, Sweden

Added subscriber: @GatisKurzemnieks

Added subscriber: @GatisKurzemnieks

How is this not a high priority task? This is absolutely essential for serious lighting work!

How is this not a high priority task? This is absolutely essential for serious lighting work!

It would make things much easier :)

It would make things much easier :)

Added subscriber: @pawel.palenica

Added subscriber: @pawel.palenica

Added subscriber: @PierreSchiller

Added subscriber: @PierreSchiller

Any updates on "light groups"? I guess in the end they will be called "light collections". Which serve as a "box" to put data (objects) in it, and get lit.
Collections and their elements do exist organized at RNA level in Blender, currenty.
The only turn around, would be : "Hey user, now since you always work within a collection, all the objects inside that collection will contain their own light sources. You can't -any longer- just put random bunch of lights everywhere. They need to be inside a collection. 3 collection with different objects? 3 different individual lights inside the collections!"

The workflow is already there, we just have to organize the new mentality to: collection = restriction of light.
You need to make a custom pass based on different lights in different collection? = use AOVs properties at shader level. Complex, yes, but doable.

Any updates on "light groups"? I guess in the end they will be called "light collections". Which serve as a "box" to put data (objects) in it, and get lit. Collections and their elements do exist organized at RNA level in Blender, currenty. The only turn around, would be : "Hey user, now *since you always work within a collection*, all the objects inside that collection will contain their own light sources. You can't -any longer- just put random bunch of lights everywhere. They need to be inside a collection. 3 collection with different objects? 3 different individual lights inside the collections!" The workflow is already there, we just have to organize the new mentality to: collection = restriction of light. You need to make a custom pass based on different lights in different collection? = use AOVs properties at shader level. Complex, yes, but doable.

In #68915#899918, @PierreSchiller wrote:
Any updates on "light groups"? I guess in the end they will be called "light collections".

Edgy.

"Hey user, now since you always work within a collection all the objects inside that collection will contain their own light sources"

"And also have instances of cumulative collections in scenes created by someone else, so deal with it somehow, no matter how much deadlineous it is now.
No more "Lights" and "Cameras" collections, parse entire scene to figure out how lights are distributed, learn python for that purposes already."

> In #68915#899918, @PierreSchiller wrote: > Any updates on "light groups"? I guess in the end they will be called "light collections". Edgy. > "Hey user, now *since you always work within a collection* all the objects inside that collection will contain their own light sources" "And also have instances of cumulative collections in scenes created by someone else, so deal with it somehow, no matter how much deadlineous it is now. No more "Lights" and "Cameras" collections, parse entire scene to figure out how lights are distributed, learn python for that purposes already."

Added subscriber: @ndeebook

Added subscriber: @ndeebook

In #68915#896235, @GatisKurzemnieks wrote:
How is this not a high priority task? This is absolutely essential for serious lighting work!

Completely agree. It could even be mentioned in the roadmap. This alone makes me walk away from Blender for any serious production work.

> In #68915#896235, @GatisKurzemnieks wrote: > How is this not a high priority task? This is absolutely essential for serious lighting work! Completely agree. It could even be mentioned in the roadmap. This alone makes me walk away from Blender for any serious production work.

In #68915#935061, @ndeebook wrote:

In #68915#896235, @GatisKurzemnieks wrote:
How is this not a high priority task? This is absolutely essential for serious lighting work!

Completely agree. It could even be mentioned in the roadmap. This alone makes me walk away from Blender for any serious production work.

There are many problems that make us leave Blender for any serious production work, and most of them were added recently.
The difference between production and development - there are no "scopes"in development to prioritize.
Features must be added properly, otherwise they reduce the potential of the program.

> In #68915#935061, @ndeebook wrote: >> In #68915#896235, @GatisKurzemnieks wrote: >> How is this not a high priority task? This is absolutely essential for serious lighting work! > > Completely agree. It could even be mentioned in the roadmap. This alone makes me walk away from Blender for any serious production work. There are many problems that make us leave Blender for any serious production work, and most of them were added recently. The difference between production and development - there are no "scopes"in development to prioritize. Features must be added properly, otherwise they reduce the potential of the program.

Added subscriber: @lsscpp

Added subscriber: @lsscpp

In #68915#869230, @3di wrote:
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.

image.png

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)

You already have them in Object info node

> In #68915#869230, @3di wrote: > 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. > > > ![image.png](https://archive.blender.org/developer/F8333573/image.png) > > > 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) You already have them in Object info node

Added subscriber: @BeckersC

Added subscriber: @BeckersC

Added subscriber: @FelipeDelRio

Added subscriber: @FelipeDelRio

Added subscriber: @filiperino

Added subscriber: @filiperino

Added subscriber: @DiegoCortes

Added subscriber: @DiegoCortes

Anything new? This should be a high priority task, as it is essential to further improve the lighting workflow :(

Anything new? This should be a high priority task, as it is essential to further improve the lighting workflow :(

Added subscriber: @HammadAsif

Added subscriber: @HammadAsif

Added subscriber: @mortom_ckm

Added subscriber: @mortom_ckm

@lsscpp wrote:

You already have them in Object info node

Yes, but they doesn't work with lights :(

Any one know anything about how works going on this subject?

@lsscpp wrote: > You already have them in Object info node Yes, but they doesn't work with lights :( Any one know anything about how works going on this subject?

This comment was removed by @mortom_ckm

*This comment was removed by @mortom_ckm*

Added subscriber: @renderluz-2

Added subscriber: @renderluz-2

In #68915#955393, @DiegoCortes wrote:
Anything new? This should be a high priority task, as it is essential to further improve the lighting workflow :(

I agree, I was looking for a way to do this and had hoped this was already implemented as thought it to be a core functionality, specially for NPR, sometimes you want place a light on a non photo realistic place for artistic purposes but it's reflected on other objects that you dont wish to affect, not being able to selective exclude those objects from being affected by the light really reduce creative freedom when it comes to lighting a scene.

> In #68915#955393, @DiegoCortes wrote: > Anything new? This should be a high priority task, as it is essential to further improve the lighting workflow :( I agree, I was looking for a way to do this and had hoped this was already implemented as thought it to be a core functionality, specially for NPR, sometimes you want place a light on a non photo realistic place for artistic purposes but it's reflected on other objects that you dont wish to affect, not being able to selective exclude those objects from being affected by the light really reduce creative freedom when it comes to lighting a scene.

Added subscriber: @astroblitz

Added subscriber: @astroblitz

Added subscriber: @Kobar

Added subscriber: @Kobar

Added subscriber: @wenna666

Added subscriber: @wenna666

Any progress updates? it's really a important feature.

Any progress updates? it's really a important feature.

Added subscriber: @stmalk

Added subscriber: @stmalk

Any updates so far? Anything for next iteration of 2.9? That is a must in a lot of archviz production, highly needed feature to exclude objects from light source.

Any updates so far? Anything for next iteration of 2.9? That is a must in a lot of archviz production, highly needed feature to exclude objects from light source.

thats my wish for christmas :)

thats my wish for christmas :)

Added subscriber: @AdamJanz

Added subscriber: @AdamJanz

Added subscriber: @yassyboy

Added subscriber: @yassyboy

Added subscriber: @taroumaso

Added subscriber: @taroumaso

Added subscriber: @Avion

Added subscriber: @Avion

Hey there,

i am working now on my 8th medium sized production project this year and every single time i encounter this issue ;)
I want to light a scene, place support lights and have to manually build invisible blockers for lights so that they don't spill into my scene.

I also come from a 3dsMax workflow. I really really miss this.
I am now compositing the lights and reflections out or build said light blockers among many workarounds.
But the time alone it consumes ....

PLEASE vote this up on the roadmap for the next release.

Hey there, i am working now on my 8th medium sized production project this year and every single time i encounter this issue ;) I want to light a scene, place support lights and have to manually build invisible blockers for lights so that they don't spill into my scene. I also come from a 3dsMax workflow. I really really miss this. I am now compositing the lights and reflections out or build said light blockers among many workarounds. But the time alone it consumes .... PLEASE vote this up on the roadmap for the next release.

@Avion There was a branch of Blender back in 2016 by Tangent Animation on Github that has this feature for Cycles. They used light linking in a production environment to light feature film shots, and indeed, it is a necessary function to add detail lighting without having those lights reflecting on unwanted surfaces. Currently, one must separate their scene into multiple render passes to achieve this which is unwieldy for many objects that require detail lighting. Unfortunately, the branch was from the 2.78 era. Really looking forward to this feature coming to Blender 2.9+ soon. Even having this feature for Eevee would be a huge plus, and would bring back that incredibly useful feature lost with Blender Internal renderer. You can vote on the feature here: https://blender.community/c/rightclickselect/5mfbbc/

@Avion There was a branch of Blender back in 2016 by Tangent Animation on Github that has this feature for Cycles. They used light linking in a production environment to light feature film shots, and indeed, it is a necessary function to add detail lighting without having those lights reflecting on unwanted surfaces. Currently, one must separate their scene into multiple render passes to achieve this which is unwieldy for many objects that require detail lighting. Unfortunately, the branch was from the 2.78 era. Really looking forward to this feature coming to Blender 2.9+ soon. Even having this feature for Eevee would be a huge plus, and would bring back that incredibly useful feature lost with Blender Internal renderer. You can vote on the feature here: https://blender.community/c/rightclickselect/5mfbbc/

Added subscriber: @Zeirus

Added subscriber: @Zeirus

@AdamJanz YESSSS, voted of course.

This feature is currently super high on my personal wish-list.

@AdamJanz YESSSS, voted of course. This feature is currently super high on my personal wish-list.

Removed subscriber: @AlbertoVelazquez

Removed subscriber: @AlbertoVelazquez

Yes, this should also help better with performance since separating everything in render layers or multiple renders just to render the SAME geometry is an overkill https://devtalk.blender.org/t/why-is-bvh-built-for-each-renderlayer/14670

I too encounter issues in production due to this missing feature. Listen to your professional users

Yes, this should also help better with performance since separating everything in render layers or multiple renders just to render the SAME geometry is an overkill https://devtalk.blender.org/t/why-is-bvh-built-for-each-renderlayer/14670 I too encounter issues in production due to this missing feature. Listen to your professional users

I don't know why it's not a top priority feature for Blender...

I don't know why it's not a top priority feature for Blender...

please make it high priority, is it really hard to implement?

please make it high priority, is it really hard to implement?

This is a very important feature. In my case, the lack of it stops me from switching to Blender at work. Hopefully we'll find out soon when to expect light linking in a blender.

This is a very important feature. In my case, the lack of it stops me from switching to Blender at work. Hopefully we'll find out soon when to expect light linking in a blender.

Added subscriber: @danilo.dias

Added subscriber: @danilo.dias

E-Cycles has a feature called light groups, but I think this more or less controls the ability to adjust isolated lights after a render, rather than having isolating lights affect only certain objects (which is what Blender Internal could do). However, I have not used E-Cycles before, so others would know better on this. I think the idea of light-linking received pushback from the devs initially because it was deemed a non-realistic technique and Cycles is a realistic path tracer. Nevertheless, the concept of light-linking is the only economical way I can see of providing specific accent lighting to a large quantity of isolated objects without using a massive amount of render passes. For example, for my current architectural project, I am lighting kitchen cabinet hardware independently and then rendering it in its own render pass, to avoid unwanted reflections of these lights in the cabinets themselves. This works okay for this scenario, where repetitive objects all can share the same render layer, albeit at the cost of extra render time. But if more passes were needed, the process would become very tedious very quickly.

E-Cycles has a feature called light groups, but I think this more or less controls the ability to adjust isolated lights after a render, rather than having isolating lights affect only certain objects (which is what Blender Internal could do). However, I have not used E-Cycles before, so others would know better on this. I think the idea of light-linking received pushback from the devs initially because it was deemed a non-realistic technique and Cycles is a realistic path tracer. Nevertheless, the concept of light-linking is the only economical way I can see of providing specific accent lighting to a large quantity of isolated objects without using a massive amount of render passes. For example, for my current architectural project, I am lighting kitchen cabinet hardware independently and then rendering it in its own render pass, to avoid unwanted reflections of these lights in the cabinets themselves. This works okay for this scenario, where repetitive objects all can share the same render layer, albeit at the cost of extra render time. But if more passes were needed, the process would become very tedious very quickly.
Added subscribers: @Stefan_Werner, @LukasStockner, @scorpion81, @juang3d

Light groups are present already in Cycles, just not in master, the light groups original patch was from @LukasStockner (https://developer.blender.org/D3607) , I added it to our build, BoneMaster, and it can be downloaded by anyone from graphicall.org, so you can test it if you want.
We also implemented several Cycles optimisations and accelerations too, in general they are patches developed by @LukasStockner and @Stefan_Werner , we also feature a new Voxel Mesher modifier, currently not available in 2.91 (need refactor), but available in 2.90 and 2.83, developed by the magician @scorpion81

2.91
https://blender.community/c/graphicall/Mlbbbc/

2.90:
https://blender.community/c/graphicall/Bpbbbc/

2.83 LTS:
https://blender.community/c/graphicall/kdbbbc/

But lightgroups it's not light linking, you cannot avoid the shadow casted by a light for example and such things, those are different features.

Light groups are present already in Cycles, just not in master, the light groups original patch was from @LukasStockner (https://developer.blender.org/D3607) , I added it to our build, BoneMaster, and it can be downloaded by anyone from graphicall.org, so you can test it if you want. We also implemented several Cycles optimisations and accelerations too, in general they are patches developed by @LukasStockner and @Stefan_Werner , we also feature a new Voxel Mesher modifier, currently not available in 2.91 (need refactor), but available in 2.90 and 2.83, developed by the magician @scorpion81 2.91 https://blender.community/c/graphicall/Mlbbbc/ 2.90: https://blender.community/c/graphicall/Bpbbbc/ 2.83 LTS: https://blender.community/c/graphicall/kdbbbc/ But lightgroups it's not light linking, you cannot avoid the shadow casted by a light for example and such things, those are different features.

@juang3d Thanks Juan for that info! That sounds like great additions; I will have to try those builds out. I'm sure the talented devs will find a way to implement light linking as well in time. So many great features being added to Blender these days- it's hard to keep up with them all! :-)

@juang3d Thanks Juan for that info! That sounds like great additions; I will have to try those builds out. I'm sure the talented devs will find a way to implement light linking as well in time. So many great features being added to Blender these days- it's hard to keep up with them all! :-)

Added subscriber: @Grady

Added subscriber: @Grady

For the benefit of anyone thinking of tackling this problem, could anyone with more knowledge on how lights in cycles and eevee currently work offer any suggestions on what would be the starting point for implementing this on a technical level?

For the benefit of anyone thinking of tackling this problem, could anyone with more knowledge on how lights in cycles and eevee currently work offer any suggestions on what would be the starting point for implementing this on a technical level?

The starting point would be the existing patch in D1985, rebasing it, and addressing my comments regarding how this implementation is inefficient. In particular, there should be multiple light distributions created to work efficiently with cases other than branched path tracing, and it needs to be ensured that BVH traversal performance is not impacted much.

The starting point would be the existing patch in [D1985](https://archive.blender.org/developer/D1985), rebasing it, and addressing my comments regarding how this implementation is inefficient. In particular, there should be multiple light distributions created to work efficiently with cases other than branched path tracing, and it needs to be ensured that BVH traversal performance is not impacted much.

Added subscriber: @dreamparacite

Added subscriber: @dreamparacite

Added subscriber: @APEC

Added subscriber: @APEC

Added subscriber: @Slowwkidd

Added subscriber: @Slowwkidd

Added subscriber: @Ekiwnox

Added subscriber: @Ekiwnox

Hope this feature will come soon in the main build of blender. It's so important for so many cases : Products images, architectures etc... This is just a must.

Hope this feature will come soon in the main build of blender. It's so important for so many cases : Products images, architectures etc... This is just a must.

Added subscriber: @Pipeliner

Added subscriber: @Pipeliner

Added subscriber: @Frederic-Cervini

Added subscriber: @Frederic-Cervini

Added subscriber: @JanErik

Added subscriber: @JanErik

it would be really nice if there would be new progress on this topic :)

it would be really nice if there would be new progress on this topic :)

new years wish! light linking bring blender to next level!

new years wish! light linking bring blender to next level!

My new years wish too! light linking is very important please!! :D

My new years wish too! light linking is very important please!! :D

Added subscriber: @JohannesLubke

Added subscriber: @JohannesLubke

Added subscriber: @TimBL

Added subscriber: @TimBL

Added subscriber: @VKey

Added subscriber: @VKey

Most anticipated feature atm for me. Volumes & stuff are nice to have but this is a must have. Thank you for your hard work Blender Team!

Most anticipated feature atm for me. Volumes & stuff are nice to have but this is a must have. Thank you for your hard work Blender Team!

Yes, I've just run into this issue again, where accent area lights placed along the length of a client's product are erasing the key light's shadow. Without light linking in EEVEE, one must use short custom distances on the accent lights so they cannot affect the key light's shadow. However, that is a poor workaround since it weakens the lights too much. It's extremely necessary to be able to isolate the influence of your accent lights for commercial product visualization. Thanks to the talented Blender devs for investigating a solution to this much needed feature!

Yes, I've just run into this issue again, where accent area lights placed along the length of a client's product are erasing the key light's shadow. Without light linking in EEVEE, one must use short custom distances on the accent lights so they cannot affect the key light's shadow. However, that is a poor workaround since it weakens the lights too much. It's extremely necessary to be able to isolate the influence of your accent lights for commercial product visualization. Thanks to the talented Blender devs for investigating a solution to this much needed feature!

Added subscriber: @nacho.diaz

Added subscriber: @nacho.diaz

Added subscriber: @Cyberduck

Added subscriber: @Cyberduck

Added subscriber: @Tasch

Added subscriber: @Tasch

Added subscriber: @ayberko

Added subscriber: @ayberko

Added subscriber: @MicheleFaccoli

Added subscriber: @MicheleFaccoli

I so need this feature to be able to even consider switching to blender.. Without it most of my product shots would be just too time consuming to do.

I so need this feature to be able to even consider switching to blender.. Without it most of my product shots would be just too time consuming to do.

This is a must have thing. I signed up to just give a token to this feature. That's all I'm going to say:D

This is a must have thing. I signed up to just give a token to this feature. That's all I'm going to say:D

Added subscriber: @monkriss

Added subscriber: @monkriss

This feature, above all, is the most important. Its one of the most used tools in 3DS (vray, corona, fstorm...) when trying to find the perfect lighting solution.

It would be good to make sure there is an INCLUDE and EXCLUDE option if you just want the light to influence only one object, or not that one object

This feature, above all, is the most important. Its one of the most used tools in 3DS (vray, corona, fstorm...) when trying to find the perfect lighting solution. It would be good to make sure there is an INCLUDE and EXCLUDE option if you just want the light to influence only one object, or not that one object

Added subscriber: @pacobg

Added subscriber: @pacobg

Added subscriber: @lucamonzon

Added subscriber: @lucamonzon

I can't move my workflow to blender without this feature :/

I can't move my workflow to blender without this feature :/

Removed subscriber: @dreamparacite

Removed subscriber: @dreamparacite

Removed subscriber: @Slowwkidd

Removed subscriber: @Slowwkidd

Added subscriber: @sid350

Added subscriber: @sid350

Added subscriber: @jinyicool

Added subscriber: @jinyicool

I can't move my workflow to blender without this feature

I can't move my workflow to blender without this feature

Maya
3dsMax
Cinema4D
Houdini
Modo
Blender

:S

✅ Maya ✅ 3dsMax ✅ Cinema4D ✅ Houdini ✅ Modo ❌ Blender :S

Added subscriber: @bdu

Added subscriber: @bdu

Added subscriber: @jimix85

Added subscriber: @jimix85

Added subscriber: @Rockbard

Added subscriber: @Rockbard

Blender is almost perfect. But that's an absolutely essential thing to have in any software.
+1 For this awesome feature. Thank you, developers! You guys are the best.

Blender is almost perfect. But that's an absolutely essential thing to have in any software. +1 For this awesome feature. Thank you, developers! You guys are the best.

Added subscriber: @msamilg-3

Added subscriber: @msamilg-3

This is an absolute must-have. Really hoping we will get this in 3.0. Please, make it real, dear Blender devs :)

This is an absolute must-have. Really hoping we will get this in 3.0. Please, make it real, dear Blender devs :)

Added subscriber: @N005

Added subscriber: @N005

Added subscriber: @Stinaus

Added subscriber: @Stinaus

Added subscriber: @MichelePoletto

Added subscriber: @MichelePoletto

I also switched to Blender from 3ds Max (Vray and Corona). Blender is a thousand times better on many aspects but this feature is a lack that is felt a lot in the product rendering and ArchViz.

I also look forward to this integration.

Thanks guys for the great job you are doing.

I also switched to Blender from 3ds Max (Vray and Corona). Blender is a thousand times better on many aspects but this feature is a lack that is felt a lot in the product rendering and ArchViz. I also look forward to this integration. Thanks guys for the great job you are doing.

In #68915#1134735, @MichelePoletto wrote:
Blender is a thousand times better on many aspects

Yes, Blender has lots of outstanding design solutions.

but this feature is a lack that is felt a lot in the product rendering and ArchViz.

This feature is heavily workflow-dependent, I think that's why BF is hiring a Rendering Software Engineer as well.

> In #68915#1134735, @MichelePoletto wrote: > Blender is a thousand times better on many aspects Yes, Blender has lots of outstanding design solutions. > but this feature is a lack that is felt a lot in the product rendering and ArchViz. This feature is heavily workflow-dependent, I think that's why BF is hiring a [Rendering Software Engineer ](https://www.blender.org/jobs/rendering-software-engineer/) as well.

Added subscriber: @JuanOlivares

Added subscriber: @JuanOlivares

This would be so great to have

This would be so great to have

Added subscriber: @mlrodrig

Added subscriber: @mlrodrig

Added subscriber: @marioamb

Added subscriber: @marioamb

Added subscriber: @GabrielMoro

Added subscriber: @GabrielMoro

Added subscriber: @DylanLobbregt

Added subscriber: @DylanLobbregt

Added subscriber: @Vasiliy

Added subscriber: @Vasiliy

This feature is sorely lacking

This feature is sorely lacking

Added subscriber: @piledog

Added subscriber: @piledog

Can we expect light linking for Blender 3.0? it's really a important feature.
or this GSOC proposal is the only hope? https://devtalk.blender.org/t/gsoc-2021-proposal-idea-light-linker-light-mixer/18185/14

Can we expect light linking for Blender 3.0? it's really a important feature. or this GSOC proposal is the only hope? https://devtalk.blender.org/t/gsoc-2021-proposal-idea-light-linker-light-mixer/18185/14

Added subscriber: @dresban

Added subscriber: @dresban

Added subscriber: @rsgnz

Added subscriber: @rsgnz

Added subscriber: @lightlinker

Added subscriber: @lightlinker

Coming from Maya this was a shocker Blender didn't have. I signed up here for the sole purpose of loving this ticket!

Coming from Maya this was a shocker Blender didn't have. I signed up here for the sole purpose of loving this ticket!

Added subscriber: @Justus

Added subscriber: @Justus

Added subscriber: @AndyBCX

Added subscriber: @AndyBCX

Added subscriber: @FrancoisRoussel-3

Added subscriber: @FrancoisRoussel-3

I'd suggest something slightly different from the OP. Rather than lock the lights to the collections they are in, I'd add a string to group items "virtually" (as in modo GROUPs, which are not the folders you place item into aka bleder collections, but a group you create virtually just to allow some specific things to happen on them. And lights should be allowed to INCLUDE those items, so you only light those, or EXCLUDE them, and light everything else. Allowing also to split between Direct, Specular and Reflection Rays, because for total control over the product lighting you might want to have certain rays affecting the model while hiding others.

I'd suggest something slightly different from the OP. Rather than lock the lights to the collections they are in, I'd add a string to group items "virtually" (as in modo GROUPs, which are not the folders you place item into aka bleder collections, but a group you create virtually just to allow some specific things to happen on them. And lights should be allowed to INCLUDE those items, so you only light those, or EXCLUDE them, and light everything else. Allowing also to split between Direct, Specular and Reflection Rays, because for total control over the product lighting you might want to have certain rays affecting the model while hiding others.

You mean something like applying tags to objects? Tags that lights can use to EXCLUDE or INCLUDE ONLY?

You mean something like applying tags to objects? Tags that lights can use to EXCLUDE or INCLUDE ONLY?

In #68915#1200916, @lsscpp wrote:
You mean something like applying tags to objects? Tags that lights can use to EXCLUDE or INCLUDE ONLY?

Yeah, a tag could work. I use this to split lighting on different items within the same scene for product shots. I have an entire lighting set dedicated to a mesh, and another lighting set for another mesh, and they dont conflict with one another. (vray for modo)

> In #68915#1200916, @lsscpp wrote: > You mean something like applying tags to objects? Tags that lights can use to EXCLUDE or INCLUDE ONLY? Yeah, a tag could work. I use this to split lighting on different items within the same scene for product shots. I have an entire lighting set dedicated to a mesh, and another lighting set for another mesh, and they dont conflict with one another. (vray for modo)

@MicheleFaccoli That is pretty much how Blender Internal Renderer (2.79b) used to work. It had the ability to BOTH limit light influence at the material level (by adding lights to a Light Group, then selecting that Group for your desired materials), AND limit lighting at the layer (collection) level (to only affect objects in the same collection as the light). Both ways are incredibly useful. I think adding lights to a Light Group (Collection), and having an option on objects (or materials!) to restrict lighting to that Light Group (similar to Blender Internal) would be great. However, there should also be an option when you right-click on a collection of objects to "Limit Lighting to -> (Light Group of your choice)". That way you have both per-object and per-collection light control. To avoid conflicts, any Light Group specified at the object (or material) level would override any Light Group specified at the collection level (this is also the override behavior Blender Internal used). :-)

image.png image.png

@MicheleFaccoli That is pretty much how Blender Internal Renderer (2.79b) used to work. It had the ability to BOTH limit light influence at the material level (by adding lights to a Light Group, then selecting that Group for your desired materials), AND limit lighting at the layer (collection) level (to only affect objects in the same collection as the light). Both ways are incredibly useful. I think adding lights to a Light Group (Collection), and having an option on objects (or materials!) to restrict lighting to that Light Group (similar to Blender Internal) would be great. However, there should also be an option when you right-click on a collection of objects to "Limit Lighting to -> (*Light Group of your choice*)". That way you have **both** per-object and per-collection light control. To avoid conflicts, any Light Group specified at the object (or material) level would **override** any Light Group specified at the collection level (this is also the override behavior Blender Internal used). :-) ![image.png](https://archive.blender.org/developer/F10262797/image.png) ![image.png](https://archive.blender.org/developer/F10262805/image.png)

In #68915#1201081, @AdamJanz wrote:
@MicheleFaccoli That is pretty much how Blender Internal Renderer (2.79b) used to work.

Sure.

when you right-click on a collection of objects to "Limit Lighting to -> (Light Group of your choice)".

It is implicit way, therefore, hard to manage (hundreds collections with different setups, and you will never met a deadline).
Complete system design is about management design as well.

> In #68915#1201081, @AdamJanz wrote: > @MicheleFaccoli That is pretty much how Blender Internal Renderer (2.79b) used to work. Sure. > when you right-click on a collection of objects to "Limit Lighting to -> (*Light Group of your choice*)". It is implicit way, therefore, hard to manage (hundreds collections with different setups, and you will never met a deadline). Complete system design is about management design as well.

In #68915#1201198, @1D_Inc wrote:

hard to manage (hundreds collections with different setups, and you will never met a deadline).
Complete system design is about management design as well.

Any time you have hundreds of collections there will likely be management issues. Of course, I am open to any design that allows a user to manage their Light Groups most efficiently. If there is an existing 3D application that does an extremely good job at this (better than the technique we had in Blender Internal), perhaps the design should be looked at and copied. However, I would say that having ANY form of light groups is better than having none at all. :-)

> In #68915#1201198, @1D_Inc wrote: >> hard to manage (hundreds collections with different setups, and you will never met a deadline). >> Complete system design is about management design as well. Any time you have hundreds of collections there will likely be management issues. Of course, I am open to any design that allows a user to manage their Light Groups most efficiently. If there is an existing 3D application that does an extremely good job at this (better than the technique we had in Blender Internal), perhaps the design should be looked at and copied. However, I would say that having ANY form of light groups is better than having none at all. :-)

In #68915#1201203, @AdamJanz wrote:

Any time you have hundreds of collections there will likely be management issues.

Collections were originally presented as an "infinite entity system", which is in line with the Common Layer paradigm found in most programs.
It would be strange to get a management system that works for about... twenty-two collections.

If there is an existing 3D application...

There are a lot of such applications, however, they are usually not taken into account.
In Autocad we are using thousands layers per file. It have massive spreadsheets dedeicated to layers, a separate UNDO engine for layers management and requires a lot of scripting to maintain.
The Common Layers paradigm requires addressing severe design constraints such as maintaining infinity.

> In #68915#1201203, @AdamJanz wrote: > Any time you have hundreds of collections there will likely be management issues. Collections were originally presented as an "infinite entity system", which is in line with the Common Layer paradigm found in most programs. It would be strange to get a management system that works for about... twenty-two collections. > If there is an existing 3D application... There are a lot of such applications, however, they are usually not taken into account. In Autocad we are using thousands layers per file. It have massive spreadsheets dedeicated to layers, a separate UNDO engine for layers management and requires a lot of scripting to maintain. The Common Layers paradigm requires addressing severe design constraints such as maintaining infinity.

Added subscriber: @sudashuo

Added subscriber: @sudashuo

We need this function

We need this function

Added subscriber: @vojtech.salek

Added subscriber: @vojtech.salek

Added subscriber: @fantastic_courbet

Added subscriber: @fantastic_courbet

Added subscriber: @ehq

Added subscriber: @ehq

Added subscriber: @in10siv

Added subscriber: @in10siv

Added subscriber: @WTF1TC

Added subscriber: @WTF1TC

Added subscriber: @Floreum

Added subscriber: @Floreum

Added subscriber: @Fabricio-Lima

Added subscriber: @Fabricio-Lima

Added subscriber: @nunocp

Added subscriber: @nunocp

Added subscriber: @nerjal

Added subscriber: @nerjal

In #68915#1202706, @sudashuo wrote:
We need this function

I agree, I'm making some non photo realistic design atm and, and yet I'm working like a real life photographer placing reflective panels to lit things as I need trying to avoid lighting parts I don't want lit, in the real world that is the only way to do things, but in CG land the limitation is crippling. I hope this gets implemented some time soon.

> In #68915#1202706, @sudashuo wrote: > We need this function I agree, I'm making some non photo realistic design atm and, and yet I'm working like a real life photographer placing reflective panels to lit things as I need trying to avoid lighting parts I don't want lit, in the real world that is the only way to do things, but in CG land the limitation is crippling. I hope this gets implemented some time soon.

! In #68915#1201785, @1D_Inc wrote:
In #68915#1201203, @AdamJanz wrote:

Any time you have hundreds of collections there will likely be management issues.

Collections were originally presented as an "infinite entity system", which is in line with the Common Layer paradigm found in most programs.
It would be strange to get a management system that works for about... twenty-two collections.

If there is an existing 3D application...

There are a lot of such applications, however, they are usually not taken into account.
In Autocad we are using thousands layers per file. It have massive spreadsheets dedeicated to layers, a separate UNDO engine for layers management and requires a lot of scripting to maintain.
The Common Layers paradigm requires addressing severe design constraints such as maintaining infinity.

First I want to extend a Thank you to all the hard working devs that implement all this great features.

Now on the topic at hand, I agree with you and with Adam, I mean I understand that for the system to work long term it needs to mesh properly with the collection system,
however that presents the problem of waiting until the perfect solution is coded.

As a user I rather get a usable light linking system in, so the people that need it can at least solve the most essential needs to add some accent lights in some to hard to manage locations
i.e places where no matter what you do you will end up contaminating some nearby object with the fake accent light.

If such a bare bone system is some how implemented then the user can use real work photography trickery of reflective planes to get most of the work in place, (hey, that is even desirable as for the most part users do want consistent lighting, light linking on most cases is used to accent a very specif area that is not being artistically lit as you want, not to lit the entire scene that way.) in some extreme cases having an infinity solution to manage the light occlusion should be properly thought of and a good proper amount of time should be spent implementing it, but, if there is a way to implement a less flexible system that works for just say: 20 collections, well I would take that in a heart beat, such a system would give me the flexibility to at least place some of the most hard lights/occluded objects on those collections and just try to manage the rest as best I could.
As it is right now we don't have any flexibility on this problem, its 100% real world photography workflow or the highway.

I would cast a vote for a simpler system that give us some tools to work, (if such thing can be implemented without taking too much time from the current devs that is,
if hacking this, is a very time consuming task akin to designing a final feature complete solution, then, well that's that, and we need to wait.)
But in case that is not the case, and the only problem is that the system created for now will be stable, but will only work with a limited amount of collections/objects
and can be implemented with minimum effort, then that is a much more desirable alternative than waiting for many many more months or maybe years until a perfect system is devised.

>>! In #68915#1201785, @1D_Inc wrote: >> In #68915#1201203, @AdamJanz wrote: > >> Any time you have hundreds of collections there will likely be management issues. > > Collections were originally presented as an "infinite entity system", which is in line with the Common Layer paradigm found in most programs. > It would be strange to get a management system that works for about... twenty-two collections. > >> If there is an existing 3D application... > There are a lot of such applications, however, they are usually not taken into account. > In Autocad we are using thousands layers per file. It have massive spreadsheets dedeicated to layers, a separate UNDO engine for layers management and requires a lot of scripting to maintain. > The Common Layers paradigm requires addressing severe design constraints such as maintaining infinity. First I want to extend a Thank you to all the hard working devs that implement all this great features. Now on the topic at hand, I agree with you and with Adam, I mean I understand that for the system to work long term it needs to mesh properly with the collection system, however that presents the problem of waiting until the perfect solution is coded. As a user I rather get a usable light linking system in, so the people that need it can at least solve the most essential needs to add some accent lights in some to hard to manage locations i.e places where no matter what you do you will end up contaminating some nearby object with the fake accent light. If such a bare bone system is some how implemented then the user can use real work photography trickery of reflective planes to get most of the work in place, (hey, that is even desirable as for the most part users do want consistent lighting, light linking on most cases is used to accent a very specif area that is not being artistically lit as you want, not to lit the entire scene that way.) in some extreme cases having an infinity solution to manage the light occlusion should be properly thought of and a good proper amount of time should be spent implementing it, but, if there is a way to implement a less flexible system that works for just say: 20 collections, well I would take that in a heart beat, such a system would give me the flexibility to at least place some of the most hard lights/occluded objects on those collections and just try to manage the rest as best I could. As it is right now we don't have any flexibility on this problem, its 100% real world photography workflow or the highway. I would cast a vote for a simpler system that give us some tools to work, (if such thing can be implemented without taking too much time from the current devs that is, if hacking this, is a very time consuming task akin to designing a final feature complete solution, then, well that's that, and we need to wait.) But in case that is not the case, and the only problem is that the system created for now will be stable, but will only work with a limited amount of collections/objects and can be implemented with minimum effort, then that is a much more desirable alternative than waiting for many many more months or maybe years until a perfect system is devised.

Added subscriber: @Funnybob

Added subscriber: @Funnybob

I would suggest a system that will be as simple as possible. The render man implementation of light linking is atrocious. You have to keep dealing with popup menues and manually managing lists items per items. You click, you click, you click non-stop. On the opposite side, Maya got it right. A simple user interface where highlighted objects means they are linked, and it supports hierarchy and shaders. We just need a similar system with collections too. I think it would be a major mistake to make a light linking system solely based on collection. I made a clip to explain all of this visually. Check it out! :-) https://youtu.be/jOExOniPJGs

I would suggest a system that will be as simple as possible. The render man implementation of light linking is atrocious. You have to keep dealing with popup menues and manually managing lists items per items. You click, you click, you click non-stop. On the opposite side, Maya got it right. A simple user interface where highlighted objects means they are linked, and it supports hierarchy and shaders. We just need a similar system with collections too. I think it would be a major mistake to make a light linking system solely based on collection. I made a clip to explain all of this visually. Check it out! :-) https://youtu.be/jOExOniPJGs

In #68915#1217153, @Funnybob wrote:
I would suggest a system that will be as simple as possible. The render man implementation of light linking is atrocious. You have to keep dealing with popup menues and manually managing lists items per items. You click, you click, you click non-stop. On the opposite side, Maya got it right. A simple user interface where highlighted objects means they are linked, and it supports hierarchy and shaders. We just need a similar system with collections too. I think it would be a major mistake to make a light linking system solely based on collection. I made a clip to explain all of this visually. Check it out! :-) https://youtu.be/jOExOniPJGs

The system in Maya is very similar to the corresponding one in 3DsMax, of witch I was a user for 20 years.
This is how the workflow looks in Max:

  • Select a light
  • Click the "Exclude" button. This opens a dialog box.
  • Here user is presented with two options.
  • First a toggle for "include" and "exclude".
  • Second a switch between " illumination", "shadow casting" and "both".
  • Below this, a list of all objects in the scene is presented. User marks the objects wanted and move them using a button to the list for exclusion or inclusion.
  • Done
    This same workflow works for most lights in max using most renderers.
> In #68915#1217153, @Funnybob wrote: > I would suggest a system that will be as simple as possible. The render man implementation of light linking is atrocious. You have to keep dealing with popup menues and manually managing lists items per items. You click, you click, you click non-stop. On the opposite side, Maya got it right. A simple user interface where highlighted objects means they are linked, and it supports hierarchy and shaders. We just need a similar system with collections too. I think it would be a major mistake to make a light linking system solely based on collection. I made a clip to explain all of this visually. Check it out! :-) https://youtu.be/jOExOniPJGs The system in Maya is very similar to the corresponding one in 3DsMax, of witch I was a user for 20 years. This is how the workflow looks in Max: - Select a light - Click the "Exclude" button. This opens a dialog box. - Here user is presented with two options. - First a toggle for "include" and "exclude". - Second a switch between " illumination", "shadow casting" and "both". - Below this, a list of all objects in the scene is presented. User marks the objects wanted and move them using a button to the list for exclusion or inclusion. - Done This same workflow works for most lights in max using most renderers.
Member

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker
Member

Please don’t mention other software solutions. Keep discussion to the technical parts of the patch and workflow that matches blenders principles.

It is easy to copy paste, but it is hard to make sure that it isn’t copyrighted. solutions that work for one software might not work as expected or desired on other software.

Please don’t mention other software solutions. Keep discussion to the technical parts of the patch and workflow that matches blenders principles. It is easy to copy paste, but it is hard to make sure that it isn’t copyrighted. solutions that work for one software might not work as expected or desired on other software.

To my knowledge you can't copyright a function, only the code that executes it. Otherwise you would never have libre office who's a complete copy of MS Word. And if you want to go this way, who was the first to introduce extrude, knife, outliners, bevels etc. I'm not talking about copy-pasting, I'm talking about taking a look at what has been done before, what works and what doesn't so it can inspire the developers. Cheers.

To my knowledge you can't copyright a function, only the code that executes it. Otherwise you would never have libre office who's a complete copy of MS Word. And if you want to go this way, who was the first to introduce extrude, knife, outliners, bevels etc. I'm not talking about copy-pasting, I'm talking about taking a look at what has been done before, what works and what doesn't so it can inspire the developers. Cheers.

In #68915#1217261, @Funnybob wrote:
To my knowledge you can't copyright a function, only the code that executes it. Otherwise you would never have libre office who's a complete copy of MS Word. And if you want to go this way, who was the first to introduce extrude, knife, outliners, bevels etc. I'm not talking about copy-pasting, I'm talking about taking a look at what has been done before, what works and what doesn't so it can inspire the developers. Cheers.

I agree with you, it does not sound plausible that the idea of excluding lights by having a dialog box that excludes or includes things into a light can be copyrighted, I have seen similar dialogs for a number of software, not for lights but to include or exclude something in relation to part of the operations the application does, the actual code or programmatic implementation that can be copyrighted, but at that you can´t just "grab" something from 3d Studio, because naturally the code in Blender is different, which creates the need to code the solution in the actual Blender API, but to discuss how others have done something is how you grow and find new ideas, that goes for well... everything and anything in the world :)

> In #68915#1217261, @Funnybob wrote: > To my knowledge you can't copyright a function, only the code that executes it. Otherwise you would never have libre office who's a complete copy of MS Word. And if you want to go this way, who was the first to introduce extrude, knife, outliners, bevels etc. I'm not talking about copy-pasting, I'm talking about taking a look at what has been done before, what works and what doesn't so it can inspire the developers. Cheers. I agree with you, it does not sound plausible that the idea of excluding lights by having a dialog box that excludes or includes things into a light can be copyrighted, I have seen similar dialogs for a number of software, not for lights but to include or exclude something in relation to part of the operations the application does, the actual code or programmatic implementation that can be copyrighted, but at that you can´t just "grab" something from 3d Studio, because naturally the code in Blender is different, which creates the need to code the solution in the actual Blender API, but to discuss how others have done something is how you grow and find new ideas, that goes for well... everything and anything in the world :)

Removed subscriber: @HammadAsif

Removed subscriber: @HammadAsif

Added subscriber: @HammadAsif

Added subscriber: @HammadAsif

Just look at Natron. It's a Nuke CC. It's identical at 95%. If you know Nuke, you know Natron. Even the hotkeys are the same.

Just look at Natron. It's a Nuke CC. It's identical at 95%. If you know Nuke, you know Natron. Even the hotkeys are the same.

Maybe if you copy the "concept" right to the most minute details and translate it into the Blender API that could be a bit of a problem...I mean UI details and all, as the the concept as a whole could be copy righted?
but if you just take parts of it, or get inspired by it, then I doubt that can be copy righted, is like the difference between taking parts of a number of recipes of other chefs for your cook book, and taking the whole thing and just change one ingredient, either way Im sure the Devs will correct us if that is really a problem.

Maybe if you copy the "concept" right to the most minute details and translate it into the Blender API that could be a bit of a problem...I mean UI details and all, as the the concept as a whole could be copy righted? but if you just take parts of it, or get inspired by it, then I doubt that can be copy righted, is like the difference between taking parts of a number of recipes of other chefs for your cook book, and taking the whole thing and just change one ingredient, either way Im sure the Devs will correct us if that is really a problem.

In #68915#1217256, @Jeroen-Bakker wrote:
Please don’t mention other software solutions.

Maya's implementation clearly works, as demonstrated in Robert's video. It's not necessary to completely re-invent the wheel when something already works well. One simply needs to look at the setup, then recreate a similar organization solution within Blender's environment.It would essentially be 2 Outliners (one for lights, one for objects + materials) side-by-side in a NEW Editor window type called, "Light Linking".

> In #68915#1217256, @Jeroen-Bakker wrote: > Please don’t mention other software solutions. Maya's implementation clearly works, as demonstrated in Robert's video. It's not necessary to completely re-invent the wheel when something already works well. One simply needs to look at the setup, then recreate a similar organization solution within Blender's environment.**It would essentially be 2 Outliners (one for lights, one for objects + materials) side-by-side in a NEW Editor window type called, "Light Linking".**

I think it's not so much a legal issue as it is a Blender policy as stated by Ton in a Tweet and blog post(?) in the last year or two (which I am unable to find after a brief search) that said that we should not post screen shots of competing product UI etc. or discuss duplicating competing features exactly, but just figure out what would be the best way to do things in Blender (my paraphrasing).

I think it's not so much a legal issue as it is a Blender policy as stated by Ton in a Tweet and blog post(?) in the last year or two (which I am unable to find after a brief search) that said that we should not post screen shots of competing product UI etc. or discuss duplicating competing features exactly, but just figure out what would be the best way to do things in Blender (my paraphrasing).

Added subscriber: @SakariNiittymaa

Added subscriber: @SakariNiittymaa

Well, Maya and Max solutions are technically possible (in static context for a system that does not support cumulativity) but both are far away from being good.
From the point of view of a workflow design they don't work well.

Well, Maya and Max solutions are technically possible (in static context for a system that does not support cumulativity) but both are far away from being good. From the point of view of a workflow design they don't work well.

Added subscriber: @Festivity

Added subscriber: @Festivity

Added subscriber: @2046411367

Added subscriber: @2046411367

Added subscriber: @niazique

Added subscriber: @niazique

Added subscriber: @colorbook

Added subscriber: @colorbook

Added subscriber: @Eqkoss

Added subscriber: @Eqkoss

Hi everyone !

I don't know how to dev in C/C++ but I know little things in python, so maybe I can help with the UI part.

As explained in the light group section Light Group I think light linking system should be over collection.

As mentioned before, many solution exist in other 3D software. All come with pros and cons.
To use the previous example, I agree that the Light Linking of Renderman requires a lot of action, just for simple things. But it has the merit of existing and functioning
For the Light Linking of Maya, I also agree that the system is better thought out. It’s convenient because because you can have access to every level of your hierarchy/collection and also your shader. That is cool yes ! BUT ! When you working on a production, you don't have 3 cube, 2 lights and 1 shading. You have tones of mesh, of lights and shaders to. So the windows looks through the hierarchy and takes really long time in that case which is really annoying.

All that to say that nothing is perfect but if I need to choose I prefere the Renderman Solution, than the Maya solution OR maybe it you be possible to have a mix of both :) What do you think ?

To keep the blender function I think it would be a great idea to use a UI like "vertex group"
image.png
If the active object is a mesh, we could have a list in the object property which would be the equivalent of "Object Centric"

  • The checkbox will allow to switch between link or unlink.
  • The Add button will add in the list all selected lights in the scene or in the outliner.
  • The Remove button will remove from the list all selected lights in the scene or in the outliner.

If the active object is a light, we could have the exact same light but it would be the equilvalent of "Light Centric"
In that case :

  • The checkbox will allow to switch between link or unlink.
  • The Add button will add in the list all selected meshes in the scene or in the outliner.
  • The Remove button will remove from the list all selected meshes in the scene or in the outliner.

The little downarrow menu could add a some extra functionnality like "Add all" or "Remove all", copy/past the list to transfert it through different mesh/light

This List could also be in the "Material Property", like that we could link or unlink light in a specific shading (Shading Centric ?)
By default all lights/objects/shaders should be selected in there associated list or the panel could be a checkbox tooto define if yes or no we want to enable or disable the light linking function on this light/mesh/object.
If it’s really necessary, this list could also be in the "Collections Property" to affect all mesh inside it.

I don't say this is the solution, I'm only trying to expose possibilities to design the Light Linking feature with the existing blender UI.

Hi everyone ! I don't know how to dev in C/C++ but I know little things in python, so maybe I can help with the UI part. As explained in the light group section [Light Group ](https://developer.blender.org/D12871) I think light linking system should be over collection. As mentioned before, many solution exist in other 3D software. All come with pros and cons. To use the previous example, I agree that the Light Linking of Renderman requires a lot of action, just for simple things. But it has the merit of existing and functioning For the Light Linking of Maya, I also agree that the system is better thought out. It’s convenient because because you can have access to every level of your hierarchy/collection and also your shader. That is cool yes ! BUT ! When you working on a production, you don't have 3 cube, 2 lights and 1 shading. You have tones of mesh, of lights and shaders to. So the windows looks through the hierarchy and takes really long time in that case which is really annoying. All that to say that nothing is perfect but if I need to choose I prefere the Renderman Solution, than the Maya solution OR maybe it you be possible to have a mix of both :) What do you think ? To keep the blender function I think it would be a great idea to use a UI like "vertex group" ![image.png](https://archive.blender.org/developer/F11464901/image.png) If the active object is a mesh, we could have a list in the object property which would be the equivalent of "Object Centric" - The checkbox will allow to switch between link or unlink. - The Add button will add in the list all selected lights in the scene or in the outliner. - The Remove button will remove from the list all selected lights in the scene or in the outliner. If the active object is a light, we could have the exact same light but it would be the equilvalent of "Light Centric" In that case : - The checkbox will allow to switch between link or unlink. - The Add button will add in the list all selected meshes in the scene or in the outliner. - The Remove button will remove from the list all selected meshes in the scene or in the outliner. The little downarrow menu could add a some extra functionnality like "Add all" or "Remove all", copy/past the list to transfert it through different mesh/light This List could also be in the "Material Property", like that we could link or unlink light in a specific shading (Shading Centric ?) By default all lights/objects/shaders should be selected in there associated list or the panel could be a checkbox tooto define if yes or no we want to enable or disable the light linking function on this light/mesh/object. If it’s really necessary, this list could also be in the "Collections Property" to affect all mesh inside it. I don't say this is the solution, I'm only trying to expose possibilities to design the Light Linking feature with the existing blender UI.

Hummm... sorry but I disagree with you. Popup and check boxes and buttons are to be avoided as much as possible, not just for light linking, for everything. In the outliner, when you pick something, there's no check box. You click on the item and it's highlighted. Popups are slow and you don't see all the options at the same time. I was actually surprised in Blender Today when Pablo showed that there was an option before to have button in the shader editor for switching between world, object and line style. I want it!

So let's keep it simple. Renderman's implementation is the worst. You click, you popup, it's everything that should be avoided. Maya's much simpler. You click to highlight. Light centric or object centric. If you select the top of a hierarchy, everything under it will have the same link. And you can override any part under the hierarchy if needed. So same in blender except that we also have Collection centric. This way we are convert for every situation in a very easy to use two column interface. If we want to keep it cleaner than Maya, then we had Shader Centric. So four modes.

By the way, light or objet centric are not exclusive, meaning that it's not one or the other. You can do some linking in object centric and others in light centric.

Hummm... sorry but I disagree with you. Popup and check boxes and buttons are to be avoided as much as possible, not just for light linking, for everything. In the outliner, when you pick something, there's no check box. You click on the item and it's highlighted. Popups are slow and you don't see all the options at the same time. I was actually surprised in Blender Today when Pablo showed that there was an option before to have button in the shader editor for switching between world, object and line style. I want it! So let's keep it simple. Renderman's implementation is the worst. You click, you popup, it's everything that should be avoided. Maya's much simpler. You click to highlight. Light centric or object centric. If you select the top of a hierarchy, everything under it will have the same link. And you can override any part under the hierarchy if needed. So same in blender except that we also have Collection centric. This way we are convert for every situation in a very easy to use two column interface. If we want to keep it cleaner than Maya, then we had Shader Centric. So four modes. By the way, light or objet centric are not exclusive, meaning that it's not one or the other. You can do some linking in object centric and others in light centric.

I did a mockup to explain what I think would be the best possible interface. No check boxes, no popups. Just four buttons on top to pick which "mode" you want to be in. Then just highlight what you want to link. We could also have search fields on both columns in case the scenes are super heavy and we don't want to scale forever to find something.

mockup.jpg

I did a mockup to explain what I think would be the best possible interface. No check boxes, no popups. Just four buttons on top to pick which "mode" you want to be in. Then just highlight what you want to link. We could also have search fields on both columns in case the scenes are super heavy and we don't want to scale forever to find something. ![mockup.jpg](https://archive.blender.org/developer/F11467130/mockup.jpg)

In #68915#1240258, @Funnybob wrote:
Hummm... sorry but I disagree with you. Popup and check boxes and buttons are to be avoided as much as possible, not just for light linking, for everything. In the outliner, when you pick something, there's no check box. You click on the item and it's highlighted. Popups are slow and you don't see all the options at the same time. I was actually surprised in Blender Today when Pablo showed that there was an option before to have button in the shader editor for switching between world, object and line style. I want it!

So let's keep it simple. Renderman's implementation is the worst. You click, you popup, it's everything that should be avoided. Maya's much simpler. You click to highlight. Light centric or object centric. If you select the top of a hierarchy, everything under it will have the same link. And you can override any part under the hierarchy if needed. So same in blender except that we also have Collection centric. This way we are convert for every situation in a very easy to use two column interface. If we want to keep it cleaner than Maya, then we had Shader Centric. So four modes.

By the way, light or objet centric are not exclusive, meaning that it's not one or the other. You can do some linking in object centric and others in light centric.

I understand your point of view but in my example there is no popup. There is checkbox and buttons yes but It’s just a derivative of what already exists (vertex groups, shape keys, etc), so I think this could be studied.

..."You click on the item and it's highlighted"...

By selecting objects or lights directly in the scene (context) or in the outliner, this is equal to what you explain at my opinion, except that I add a click "Add" or "Remove" to define what you want to do with it. But maybe a better way can be found to do this properly ?

You said popups are slow, I don't know but I trust you. My point is, having a menu like maya light linking would mean having a pop up... Moreover, as I mentioned before,, looking for items (mesh, light etc) through an entire view layer would be really slow to compute ... This is the case in Maya for example when a scene is huge (as often in a production) and it's worst if it's bad optimized.

You click to highlight. Light centric or object centric. If you select the top of a hierarchy, everything under it will have the same link. And you can override any part under the hierarchy if needed. So same in blender except that we also have Collection centric. This way we are convert for every situation in a very easy to use two column interface. If we want to keep it cleaner than Maya, then we had Shader Centric. So four modes.

This is the case in my example ... I simply split the differents parts in the associated properties... Which is, I think, the way how blender proceeds, am I wrong ?
This 4 panels could be read as "layer system". First the collection centric, then shading centric, then object and light centric. In this way it would work from the largest to the smallest.

By the way, light or objet centric are not exclusive, meaning that it's not one or the other. You can do some linking in object centric and others in light centric.

Yes I agree, but in my example, it's not one or the other. Maybe I don't explain myself well ?

Again, what I explained earlier is just an example. I don't claim to have found the solution ;) I'm just trying to adapt what may exist in other soft, in Blender. In any case, I prefer to have the light link even if it's a bit tedious at first to set up, rather than not at all.

> In #68915#1240258, @Funnybob wrote: > Hummm... sorry but I disagree with you. Popup and check boxes and buttons are to be avoided as much as possible, not just for light linking, for everything. In the outliner, when you pick something, there's no check box. You click on the item and it's highlighted. Popups are slow and you don't see all the options at the same time. I was actually surprised in Blender Today when Pablo showed that there was an option before to have button in the shader editor for switching between world, object and line style. I want it! > > So let's keep it simple. Renderman's implementation is the worst. You click, you popup, it's everything that should be avoided. Maya's much simpler. You click to highlight. Light centric or object centric. If you select the top of a hierarchy, everything under it will have the same link. And you can override any part under the hierarchy if needed. So same in blender except that we also have Collection centric. This way we are convert for every situation in a very easy to use two column interface. If we want to keep it cleaner than Maya, then we had Shader Centric. So four modes. > > By the way, light or objet centric are not exclusive, meaning that it's not one or the other. You can do some linking in object centric and others in light centric. I understand your point of view but in my example there is no popup. There is checkbox and buttons yes but It’s just a derivative of what already exists (vertex groups, shape keys, etc), so I think this could be studied. > ..."You click on the item and it's highlighted"... By selecting objects or lights directly in the scene (context) or in the outliner, this is equal to what you explain at my opinion, except that I add a click "Add" or "Remove" to define what you want to do with it. But maybe a better way can be found to do this properly ? You said popups are slow, I don't know but I trust you. My point is, having a menu like maya light linking would mean having a pop up... Moreover, as I mentioned before,, looking for items (mesh, light etc) through an entire view layer would be really slow to compute ... This is the case in Maya for example when a scene is huge (as often in a production) and it's worst if it's bad optimized. > You click to highlight. Light centric or object centric. If you select the top of a hierarchy, everything under it will have the same link. And you can override any part under the hierarchy if needed. So same in blender except that we also have Collection centric. This way we are convert for every situation in a very easy to use two column interface. If we want to keep it cleaner than Maya, then we had Shader Centric. So four modes. This is the case in my example ... I simply split the differents parts in the associated properties... Which is, I think, the way how blender proceeds, am I wrong ? This 4 panels could be read as "layer system". First the collection centric, then shading centric, then object and light centric. In this way it would work from the largest to the smallest. > By the way, light or objet centric are not exclusive, meaning that it's not one or the other. You can do some linking in object centric and others in light centric. Yes I agree, but in my example, it's not one or the other. Maybe I don't explain myself well ? Again, what I explained earlier is just an example. I don't claim to have found the solution ;) I'm just trying to adapt what may exist in other soft, in Blender. In any case, I prefer to have the light link even if it's a bit tedious at first to set up, rather than not at all.

Can you make a mockup please? It would be easier to understand. BTW in Maya you don’t need to select anything in the viewport. The lists will show you everything that’s available. So same as the outliner.

Can you make a mockup please? It would be easier to understand. BTW in Maya you don’t need to select anything in the viewport. The lists will show you everything that’s available. So same as the outliner.

In #68915#1240251, @Eqkoss wrote:

To keep the blender function I think it would be a great idea to use a UI like "vertex group"

Not sure if it is suitable solution.
Vertex group is a per-object property.
Light Groups are shared between several objects, like materials.
So you have a need to select same lightgroup objects to be able to detect them.

> In #68915#1240251, @Eqkoss wrote: > To keep the blender function I think it would be a great idea to use a UI like "vertex group" Not sure if it is suitable solution. Vertex group is a per-object property. Light Groups are shared between several objects, like materials. So you have a need to select same lightgroup objects to be able to detect them.

Added subscriber: @VDC

Added subscriber: @VDC

In #68915#1240302, @Funnybob wrote:
Can you make a mockup please? It would be easier to understand. BTW in Maya you don’t need to select anything in the viewport. The lists will show you everything that’s available. So same as the outliner.

I know how it works in Maya, I'm using it everyday at work :). I'm not trying to reproduce it, I'm trying to inspire from it.
See the pictures below:

State 1.png State 2.png

Order Priority would be something like Light Centric > or = Object Centric > Shader Centric > Collection Centric.

As a reminder, in the example there is no need to use the 4 panels. Only one can be used or several. It depends on the situation, whether there is a need to make an exception or not.

Light Groups are shared between several objects, like materials.

I'm not sure to well understanding your point. Do you speak about Light Groups or Light Linking because it's not the same thing... Here we speak about Light Linking.

Vertex group is a per-object property.

As light linking... no ?

> In #68915#1240302, @Funnybob wrote: > Can you make a mockup please? It would be easier to understand. BTW in Maya you don’t need to select anything in the viewport. The lists will show you everything that’s available. So same as the outliner. I know how it works in Maya, I'm using it everyday at work :). I'm not trying to reproduce it, I'm trying to inspire from it. `See the pictures below:` ![State 1.png](https://archive.blender.org/developer/F11472050/State_1.png) ![State 2.png](https://archive.blender.org/developer/F11472053/State_2.png) Order Priority would be something like ` Light Centric` > or = `Object Centric` > `Shader Centric` > `Collection Centric`. As a reminder, in the example there is no need to use the 4 panels. Only one can be used or several. It depends on the situation, whether there is a need to make an exception or not. > Light Groups are shared between several objects, like materials. I'm not sure to well understanding your point. Do you speak about Light Groups or Light Linking because it's not the same thing... Here we speak about Light Linking. > Vertex group is a per-object property. As light linking... no ?

In #68915#1240332, @Eqkoss wrote:

I'm not sure to well understanding your point. Do you speak about Light Groups or Light Linking because it's not the same thing... Here we speak about Light Linking.

Indeed, sorry, I meant linking.
Nice pictures, thank you.

Vertex group is a per-object property.

As light linking... no ?

Not exactly.
At the moment we have active object and its property that store other objects, so we handle them by names.
Any stored list of objects is a potential selection set.
It would be nice to have the ability to add them to selection for management purposes.
So it make sense to make 3 buttons - add, remove and select (listed objects in viewport).

> In #68915#1240332, @Eqkoss wrote: > I'm not sure to well understanding your point. Do you speak about Light Groups or Light Linking because it's not the same thing... Here we speak about Light Linking. Indeed, sorry, I meant linking. Nice pictures, thank you. >> Vertex group is a per-object property. > > As light linking... no ? Not exactly. At the moment we have active object and its property that store other objects, so we handle them by names. Any stored list of objects is a potential selection set. It would be nice to have the ability to add them to selection for management purposes. So it make sense to make 3 buttons - add, remove and select (listed objects in viewport).

I don't think it should be treated like a vertex group interface. It needs to be a general view of the entire scene otherwise it will be confusing and unmanageable. We don't need priorities. Keep it simple. I think the solution I suggested works perfectly. It's a clean and simple interface. You just select if you want to be in either of the four choices (light, object, collection or shader) and then highlight what is kinked with what. Can't be easier than that. Light linking is an editor, not something to be found in the object/light/collection/shader attribute.

Also, in Maya, lights come with a check box "illuminated by default" or something like that, meaning that the light will light everything so you don't have to link it to everything manually. In Blender, just to be different, it could be something like "use like linking". When it's ON, that means that you need to link it to something otherwise it will have no effet.

Also, this SHOULD be on a per render layer base. Maybe you want to link to only be on one layer, not all (should be the same for shaders actually, we should be able to assign shader on a per object and per layer base).

I don't think it should be treated like a vertex group interface. It needs to be a general view of the entire scene otherwise it will be confusing and unmanageable. We don't need priorities. Keep it simple. I think the solution I suggested works perfectly. It's a clean and simple interface. You just select if you want to be in either of the four choices (light, object, collection or shader) and then highlight what is kinked with what. Can't be easier than that. Light linking is an editor, not something to be found in the object/light/collection/shader attribute. Also, in Maya, lights come with a check box "illuminated by default" or something like that, meaning that the light will light everything so you don't have to link it to everything manually. In Blender, just to be different, it could be something like "use like linking". When it's ON, that means that you need to link it to something otherwise it will have no effet. Also, this SHOULD be on a per render layer base. Maybe you want to link to only be on one layer, not all (should be the same for shaders actually, we should be able to assign shader on a per object and per layer base).

Well, since light linking defines various hierarchical relationships, I guess it deserves a separate editor with add, remove and select abilities.
But it is important to take into account that more flexible is always less manageable and vice versa.

Well, since light linking defines various hierarchical relationships, I guess it deserves a separate editor with add, remove and select abilities. But it is important to take into account that more flexible is always less manageable and vice versa.

Added subscriber: @dat1

Added subscriber: @dat1

Will there be light linking also available for Eevee?

Will there be light linking also available for Eevee?

Will there be light linking also available for Eevee?

If I'm not wrong, Light Linking is only thinking for Eevee as it's tag only in the Cycles/Cycles Features sections. But it will probably be for Eevee too in the future.

This would be done by specifying a collection per object, where only the lights in the collection influence the object.

This is the instruction about how the light linking should work. So I guess we don't need a selection button. Is it really usefull to add a button which allow you to do what you can still do simply with a right click in the outliner ?

Would it be possible to create a differente collection system? Only for light linking with a different icon to differentiate it from classic collections. As it it would be easier to set up the light link with a shortcut like M in the viewport to quickly place an objet or a light in the "light linking collection" ?

> Will there be light linking also available for Eevee? If I'm not wrong, Light Linking is only thinking for Eevee as it's tag only in the Cycles/Cycles Features sections. But it will probably be for Eevee too in the future. > This would be done by specifying a collection per object, where only the lights in the collection influence the object. This is the instruction about how the light linking should work. So I guess we don't need a selection button. Is it really usefull to add a button which allow you to do what you can still do simply with a right click in the outliner ? Would it be possible to create a differente collection system? Only for light linking with a different icon to differentiate it from classic collections. As it it would be easier to set up the light link with a shortcut like M in the viewport to quickly place an objet or a light in the "light linking collection" ?

In #68915#1241488, @Eqkoss wrote:

This would be done by specifying a collection per object, where only the lights in the collection influence the object.

This is the instruction about how the light linking should work. So I guess we don't need a selection button. Is it really usefull to add a button which allow you to do what you can still do simply with a right click in the outliner ?

Does this mean that Light's linking will be something like this?
image.png

> In #68915#1241488, @Eqkoss wrote: >> This would be done by specifying a collection per object, where only the lights in the collection influence the object. > > This is the instruction about how the light linking should work. So I guess we don't need a selection button. Is it really usefull to add a button which allow you to do what you can still do simply with a right click in the outliner ? Does this mean that Light's linking will be something like this? ![image.png](https://archive.blender.org/developer/F11527424/image.png)

Does this mean that Light's linking will be something like this?
image.png

Well, yes, I guess! This is what I understand of the description on top of this topic. And this is not a bad idea. Thanks for the illustration! :)

With that method we could add exactly what we want inside, create as many light linking collections as we want.
If this is what they think to do, I think a custom icon to differenciate light linking collection from standard collection will be a great idea. Also the possibly to add shading inside and other collection will be a good idea. Like that we can have the same thing as we talk before : collection/shader/object and light.

> Does this mean that Light's linking will be something like this? > ![image.png](https://archive.blender.org/developer/F11527424/image.png) Well, yes, I guess! This is what I understand of the description on top of this topic. And this is not a bad idea. Thanks for the illustration! :) With that method we could add exactly what we want inside, create as many light linking collections as we want. If this is what they think to do, I think a custom icon to differenciate light linking collection from standard collection will be a great idea. Also the possibly to add shading inside and other collection will be a good idea. Like that we can have the same thing as we talk before : collection/shader/object and light.

image.png
To extend your previous example we could have something like that :

  • Red part is the basic Collection, what we have in the scene.
  • White part is the Light Linking Collection:
    • All objects, lights, collections, (shaders ?) in those groups are simply link.
    • All objects, collections (and shaders ?) in those "light linking collection" are affected only by the light(s) in the same "light linking collection"

This outliner could be a differente "outliner" or it could be in the standard outliner. I don't know what is better.

This way, we keep the collection system as everyone know. It's easy to setup, and easy to use, it's blender friendly. No need new button, simply the same features as the basic outliner.
As I said before, if this solution is approved, I think we should have a differente icons between basic collection and "light linking collection", to easly differenciate it. Give the possibility to store materials in the" light linking collection" should be also add because I think this feature doesn't exist at the moment. One more time, I think this is more what blender's devs expect and explain in the 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.

Also by default, every objects/collections/shaders which are not in a light linking collection should be illuminated (affected) by all lights in the current scene (view layer)

![image.png](https://archive.blender.org/developer/F11529101/image.png) To extend your previous example we could have something like that : - Red part is the basic Collection, what we have in the scene. - White part is the Light Linking Collection: - All objects, lights, collections, (shaders ?) in those groups are simply link. - All objects, collections (and shaders ?) in those "light linking collection" are affected only by the light(s) in the same "light linking collection" This outliner could be a differente "outliner" or it could be in the standard outliner. I don't know what is better. This way, we keep the collection system as everyone know. It's easy to setup, and easy to use, it's blender friendly. No need new button, simply the same features as the basic outliner. As I said before, if this solution is approved, I think we should have a differente icons between basic collection and "light linking collection", to easly differenciate it. Give the possibility to store materials in the" light linking collection" should be also add because I think this feature doesn't exist at the moment. One more time, I think this is more what blender's devs expect and explain in the 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. Also by default, every objects/collections/shaders which are not in a light linking collection should be illuminated (affected) by all lights in the current scene (view layer)

I think we should clarify an intendent purpose.
It is hard to design a system without understanding workflow demands.
Like is linkedlight collection's content is affected only by the linked lights, or linked lights and all other lights, including skylight.

The "only the lights in the collection influence the object" result seems to be quite achievable with lightgroups.

I think we should clarify an intendent purpose. It is hard to design a system without understanding workflow demands. Like is linkedlight collection's content is affected only by the linked lights, or linked lights and all other lights, including skylight. The "only the lights in the collection influence the object" result seems to be quite achievable with lightgroups.

In #68915#1241953, @Eqkoss wrote:
image.png

In #68915#1241964, @1D_Inc wrote:
Like is linkedlight collection's content is affected only by the linked lights, or linked lights and all other lights, including skylight.

In my example, only content inside my light link collection is affected by the light(s) inside this same collection. For example :
- In "Light Linking Collection.002", there are "Area", "Cube" and "Point". So in this situation my object "Cube", will be affected only by the lights "Area" and "Point" because they're all in the same light linking collection.
- In "Light Linking Collection.001", there are a collection "PROPS_COLLECTION" and two lights : "Spot" and "Sun", in this situation all objects inside "PROPS-COLLECTION" will be affected only by "Spot" and "Sun" because they are in the same Light Linking Collection.
- In the other case, all objects which are not in a light linking collection will be affected by all lights of the scene, which is the normal state.

To clarify, if not light linking collection are define, all objects, collections, shaders will have a normal state.
To complete my previous example, a button could be added in the collection property (but only for light linking collection) just to specify if yes or no we want our light linking collection be affected by our background/skylight/hdri. (I will try to do a picture later).

The "only the lights in the collection influence the object" result seems to be quite achievable with lightgroups.

Yes indeed, but lightgroup and light linking are not the same thing. Light Group is a feature that allow us to output the passes of one light (or a group of lights) to used it in compositing, giving us more control. Light Linking is a feature that allow us to define which light will affect which objects directly inside our scene, that way we don't need to output thousand of passes to have the control of each light in compositing. Both of this features are quite complementar but they are not the same. A perfect example was give before, in some production we have a specific lighting only to rim characters. without Light Linking it's really hard to have but because the lighting is never perfect we will out put those rim in a pass (Light Group) to give us the possibility to tweak it in compositing.

> In #68915#1241953, @Eqkoss wrote: > ![image.png](https://archive.blender.org/developer/F11529101/image.png) > In #68915#1241964, @1D_Inc wrote: > Like is linkedlight collection's content is affected only by the linked lights, or linked lights and all other lights, including skylight. In my example, only content inside my light link collection is affected by the light(s) inside this same collection. For example : - In "Light Linking Collection.002", there are "Area", "Cube" and "Point". So in this situation my object "Cube", will be affected only by the lights "Area" and "Point" because they're all in the same light linking collection. - In "Light Linking Collection.001", there are a collection "PROPS_COLLECTION" and two lights : "Spot" and "Sun", in this situation all objects inside "PROPS-COLLECTION" will be affected only by "Spot" and "Sun" because they are in the same Light Linking Collection. - In the other case, all objects which are not in a light linking collection will be affected by all lights of the scene, which is the normal state. To clarify, if not light linking collection are define, all objects, collections, shaders will have a normal state. To complete my previous example, a button could be added in the collection property (but only for light linking collection) just to specify if yes or no we want our light linking collection be affected by our background/skylight/hdri. (I will try to do a picture later). > The "only the lights in the collection influence the object" result seems to be quite achievable with lightgroups. Yes indeed, but lightgroup and light linking are not the same thing. Light Group is a feature that allow us to output the passes of one light (or a group of lights) to used it in compositing, giving us more control. Light Linking is a feature that allow us to define which light will affect which objects directly inside our scene, that way we don't need to output thousand of passes to have the control of each light in compositing. Both of this features are quite complementar but they are not the same. A perfect example was give before, in some production we have a specific lighting only to rim characters. without Light Linking it's really hard to have but because the lighting is never perfect we will out put those rim in a pass (Light Group) to give us the possibility to tweak it in compositing.

Removed subscriber: @Fabricio-Lima

Removed subscriber: @Fabricio-Lima

I am trying to imagine how difficult it would be to manage a scene set up by Collection RTOs, Light groups and Light linking simultaneously.

I am trying to imagine how difficult it would be to manage a scene set up by Collection RTOs, Light groups and Light linking simultaneously.

I agree. Keep it simple. I think the suggestion I made was clean and simple. Select your context and highlight what needs to be linked. That's it. All in one editor to have a master view of the scene. No need to mess up the outliner. No need to expand panes so see what's linked to what. Before I talked about a check box to tell the light if it should illuminate by default or not. When I think about it, we don't even need that. Lights illuminate everything by default. As soon as we link it, the light icon can change in a similar way to overrides.

Light linking is a very requested features and we don't want to screw it up by making it complex and unusable. Light groups? It's a render layer.

I agree. Keep it simple. I think the suggestion I made was clean and simple. Select your context and highlight what needs to be linked. That's it. All in one editor to have a master view of the scene. No need to mess up the outliner. No need to expand panes so see what's linked to what. Before I talked about a check box to tell the light if it should illuminate by default or not. When I think about it, we don't even need that. Lights illuminate everything by default. As soon as we link it, the light icon can change in a similar way to overrides. Light linking is a very requested features and we don't want to screw it up by making it complex and unusable. Light groups? It's a render layer.

Added subscriber: @Nico-Traber

Added subscriber: @Nico-Traber

Added subscriber: @NunoAlexandreConceicao

Added subscriber: @NunoAlexandreConceicao

In #68915#1240258, @Funnybob wrote:
Hummm... sorry but I disagree with you. Popup and check boxes and buttons are to be avoided as much as possible, not just for light linking, for everything. In the outliner, when you pick something, there's no check box. You click on the item and it's highlighted. Popups are slow and you don't see all the options at the same time. I was actually surprised in Blender Today when Pablo showed that there was an option before to have button in the shader editor for switching between world, object and line style. I want it!

I dont completely agree, both ways are not mutually exclusive, just like currently you can drag and drop a child in outliner, as alternative you can also do the same in the properties/relationship pannel. So I believe both your approach and Quentin's are correct, we need to have a more explicit way of doing things in the pannel interface, while keeping the simple way by using the outliner. This way it can be used in the cases where one or the other way fails at flexibility/usablity. If a user doesnt really grasps the logic in the outliner, he can do it in a more explicit way in the property pannel, per light or per object.

By the way, light or objet centric are not exclusive, meaning that it's not one or the other. You can do some linking in object centric and others in light centric.

Agree, it just depends on the situation, a user can have a scene with hundreds of objects but just a few lights, or hundreds of lights and just a few objects, or both. Having the choice of doing one or the other is what is really important.

> In #68915#1240258, @Funnybob wrote: > Hummm... sorry but I disagree with you. Popup and check boxes and buttons are to be avoided as much as possible, not just for light linking, for everything. In the outliner, when you pick something, there's no check box. You click on the item and it's highlighted. Popups are slow and you don't see all the options at the same time. I was actually surprised in Blender Today when Pablo showed that there was an option before to have button in the shader editor for switching between world, object and line style. I want it! > I dont completely agree, both ways are not mutually exclusive, just like currently you can drag and drop a child in outliner, as alternative you can also do the same in the properties/relationship pannel. So I believe both your approach and Quentin's are correct, we need to have a more explicit way of doing things in the pannel interface, while keeping the simple way by using the outliner. This way it can be used in the cases where one or the other way fails at flexibility/usablity. If a user doesnt really grasps the logic in the outliner, he can do it in a more explicit way in the property pannel, per light or per object. > > By the way, light or objet centric are not exclusive, meaning that it's not one or the other. You can do some linking in object centric and others in light centric. Agree, it just depends on the situation, a user can have a scene with hundreds of objects but just a few lights, or hundreds of lights and just a few objects, or both. Having the choice of doing one or the other is what is really important.

ideal workflow for me would be select objects and lights, press ctrl shift M to link to a 'light group collection' (similar to shit m which links to a geometry/empty collection), and that would be it. You could perhaps have a checkbox on the collection which specifies if it's to be treated as an include or an exclude. You can have the same lights and objects in multiple linked collections, so there are no limitations. A filter on the outliner would be nice to so you can specify what sort of containers you want to see in the outliner.

like this menu you get for shift m.
image.png

It's fast, it's using an established and understood system, and it shows a nice visual representation of which lights affect which objects. It's also easy to remove objects or lights just by unlinking from a collection.

ideal workflow for me would be select objects and lights, press ctrl shift M to link to a 'light group collection' (similar to shit m which links to a geometry/empty collection), and that would be it. You could perhaps have a checkbox on the collection which specifies if it's to be treated as an include or an exclude. You can have the same lights and objects in multiple linked collections, so there are no limitations. A filter on the outliner would be nice to so you can specify what sort of containers you want to see in the outliner. like this menu you get for shift m. ![image.png](https://archive.blender.org/developer/F11572694/image.png) It's fast, it's using an established and understood system, and it shows a nice visual representation of which lights affect which objects. It's also easy to remove objects or lights just by unlinking from a collection.

In #68915#1243304, @3di wrote:
ideal workflow for me would be select objects and lights, press ctrl shift M to link to a 'light group collection' (similar to shit m which links to a geometry/empty collection), and that would be it. You could perhaps have a checkbox on the collection which specifies if it's to be treated as an include or an exclude. You can have the same lights and objects in multiple linked collections, so there are no limitations. A filter on the outliner would be nice to so you can specify what sort of containers you want to see in the outliner.

like this menu you get for shift m.
image.png

It's fast, it's using an established and understood system, and it shows a nice visual representation of which lights affect which objects. It's also easy to remove objects or lights just by unlinking from a collection.

Agree, I think this can work, but needs something more to set this particular collection apart from any other collection that has lights and objects together.

> In #68915#1243304, @3di wrote: > ideal workflow for me would be select objects and lights, press ctrl shift M to link to a 'light group collection' (similar to shit m which links to a geometry/empty collection), and that would be it. You could perhaps have a checkbox on the collection which specifies if it's to be treated as an include or an exclude. You can have the same lights and objects in multiple linked collections, so there are no limitations. A filter on the outliner would be nice to so you can specify what sort of containers you want to see in the outliner. > > like this menu you get for shift m. > ![image.png](https://archive.blender.org/developer/F11572694/image.png) > > It's fast, it's using an established and understood system, and it shows a nice visual representation of which lights affect which objects. It's also easy to remove objects or lights just by unlinking from a collection. Agree, I think this can work, but needs something more to set this particular collection apart from any other collection that has lights and objects together.

This is how I'd do it. Extremely simple and intuitive.

image.png

This is how I'd do it. Extremely simple and intuitive. ![image.png](https://archive.blender.org/developer/F11574467/image.png)

I think that idea is good but needs improved upon. First the developer will probably need to consider a special kind of collection to deal with this since some fundamental issues need to be adressed.
First the logic shouldnt be exacly the same, for instance objects and light should only be linked in this kind of collection not moved. Another thing in you example that should be reconsidered are the visibility flags, in this case I dont think we need another flag for light:object inclusion or exclusion, you already have that and better with the camera icon visibilty per object/collection that will indicate if that object will be or not visible in the the render of that particular ligjt collection.
but noone better to comment this than an active developer here.

I think that idea is good but needs improved upon. First the developer will probably need to consider a special kind of collection to deal with this since some fundamental issues need to be adressed. First the logic shouldnt be exacly the same, for instance objects and light should only be linked in this kind of collection not moved. Another thing in you example that should be reconsidered are the visibility flags, in this case I dont think we need another flag for light:object inclusion or exclusion, you already have that and better with the camera icon visibilty per object/collection that will indicate if that object will be or not visible in the the render of that particular ligjt collection. but noone better to comment this than an active developer here.

In #68915#1243341, @3di wrote:
This is how I'd do it. Extremely simple and intuitive.

image.png

That is what I suggested just before, except for the include/exclude part which I forgot, my bad.
I'm pretty agree with that. I think having the possiblity to define if it's exlcude or include directly in the outliner is a good I don't. Not sure for the level. Maybe is it better to have it in the parent level not children .. I don't know what is the best.
That exclude/include features could be also add in the "collection properties" as a checkbox for example, only for control purpose. (as for visibility in objects properties for example)

In #68915#1243314, @NunoAlexandreConceicao wrote:

In #68915#1243304, @3di wrote:
ideal workflow for me would be select objects and lights, press ctrl shift M to link to a 'light group collection' (similar to shit m which links to a geometry/empty collection), and that would be it. You could perhaps have a checkbox on the collection which specifies if it's to be treated as an include or an exclude. You can have the same lights and objects in multiple linked collections, so there are no limitations. A filter on the outliner would be nice to so you can specify what sort of containers you want to see in the outliner.

like this menu you get for shift m.
image.png

It's fast, it's using an established and understood system, and it shows a nice visual representation of which lights affect which objects. It's also easy to remove objects or lights just by unlinking from a collection.

Agree, I think this can work, but needs something more to set this particular collection apart from any other collection that has lights and objects together.

That is also what I suggest few post before :). I agree to, this is a godd way to easly set up the light linking groups but this also can quickly be a big mess, so ... I don't know

And also guys, be careful, don’t confuse Light Linking and Light Groups which are two differentes think in Blender :) so in you good example @3di "kitchen light group collection" should be "kitchen light linking collection"

> In #68915#1243341, @3di wrote: > This is how I'd do it. Extremely simple and intuitive. > > ![image.png](https://archive.blender.org/developer/F11573665/image.png) That is what I suggested just before, except for the include/exclude part which I forgot, my bad. I'm pretty agree with that. I think having the possiblity to define if it's exlcude or include directly in the outliner is a good I don't. Not sure for the level. Maybe is it better to have it in the parent level not children .. I don't know what is the best. That exclude/include features could be also add in the "collection properties" as a checkbox for example, only for control purpose. (as for visibility in objects properties for example) > In #68915#1243314, @NunoAlexandreConceicao wrote: >> In #68915#1243304, @3di wrote: >> ideal workflow for me would be select objects and lights, press ctrl shift M to link to a 'light group collection' (similar to shit m which links to a geometry/empty collection), and that would be it. You could perhaps have a checkbox on the collection which specifies if it's to be treated as an include or an exclude. You can have the same lights and objects in multiple linked collections, so there are no limitations. A filter on the outliner would be nice to so you can specify what sort of containers you want to see in the outliner. >> >> like this menu you get for shift m. >> ![image.png](https://archive.blender.org/developer/F11572694/image.png) >> >> It's fast, it's using an established and understood system, and it shows a nice visual representation of which lights affect which objects. It's also easy to remove objects or lights just by unlinking from a collection. > > Agree, I think this can work, but needs something more to set this particular collection apart from any other collection that has lights and objects together. That is also what I suggest few post before :). I agree to, this is a godd way to easly set up the light linking groups but this also can quickly be a big mess, so ... I don't know And also guys, be careful, don’t confuse Light Linking and Light Groups which are two differentes think in Blender :) so in you good example @3di "kitchen light group collection" should be "kitchen light linking collection"

Oh did you, sorry I didn't read previous posts 👍 What's the difference between a light group and light linking?

Oh did you, sorry I didn't read previous posts 👍 What's the difference between a light group and light linking?

In #68915#1243351, @3di wrote:
Oh did you, sorry I didn't read previous posts 👍 What's the difference between a light group and light linking?

Light linking is what we are discussing here while light groups is what is convencionally considered Light AOVs or in Blender a render pass

> In #68915#1243351, @3di wrote: > Oh did you, sorry I didn't read previous posts 👍 What's the difference between a light group and light linking? Light linking is what we are discussing here while light groups is what is convencionally considered Light AOVs or in Blender a render pass

ah ok, light linking for excluding/including in render, light groups for editing light contributions via passes in comp. Got it, thanks.

ah ok, light linking for excluding/including in render, light groups for editing light contributions via passes in comp. Got it, thanks.

updated:

image.png

updated: ![image.png](https://archive.blender.org/developer/F11574594/image.png)

In #68915#1243357, @3di wrote:
updated:

image.png

As my previous comment thos lamps icons to exclude/include are redundant, you alteady have the visibility icons to the right of those. So either the lamp goes or one of the other two should be replaced

> In #68915#1243357, @3di wrote: > updated: > > ![image.png](https://archive.blender.org/developer/F11574594/image.png) As my previous comment thos lamps icons to exclude/include are redundant, you alteady have the visibility icons to the right of those. So either the lamp goes or one of the other two should be replaced

Removed subscriber: @GottfriedHofmann

Removed subscriber: @GottfriedHofmann

On a side note, the light collection could be double purposes, so that it can be used for light linking and light groups. A light collection with no geometry would be treated as a light group collection, whereas a light group with geometry and lights would be treated as a light linking collection.

On a side note, the light collection could be double purposes, so that it can be used for light linking and light groups. A light collection with no geometry would be treated as a light group collection, whereas a light group with geometry and lights would be treated as a light linking collection.

In #68915#1243370, @3di wrote:
On a side note, the light collection could be double purposes, so that it can be used for light linking and light groups. A light collection with no geometry would be treated as a light group collection, whereas a light group with geometry and lights would be treated as a light linking collection.

I agree was thinking the exact same thing now

> In #68915#1243370, @3di wrote: > On a side note, the light collection could be double purposes, so that it can be used for light linking and light groups. A light collection with no geometry would be treated as a light group collection, whereas a light group with geometry and lights would be treated as a light linking collection. I agree was thinking the exact same thing now

Here's my two cents about how I have always pictured Light Linking working in Blender according to what I needed in my past works:

  • Make it a constraint for Lamps. I think it's better manageable and you can pile up to better create and/or organize iterations via constraint/modifier ordering logic; useful if you got hundreds of objects per scene or more.

  • Additive and Subtractive mode for each constraint. This way you can include or exclude a few objects/collections/etc quickly without having to scroll through the outliner; also useful if you have tons of objects/collections

  • Possible linking modes are object/collection/material/camera. Object and collection are self explanatory. Material will make the light work only with the selected materials, useful if you don't want to navigate through collections looking for objects that share the same mat. Camera mode will make lights work only if seen in viewport cam/rendered by the selected camera.

  • Not sure if doable in the current state of Blender hardcode (also not pictured in my image), but an additional 'Influence' feature for each LL constraint would be awesome to test scene lighting iterations.

light-linking.png

Here's my two cents about how I have always pictured Light Linking working in Blender according to what I needed in my past works: - Make it a constraint for Lamps. I think it's better manageable and you can pile up to better create and/or organize iterations via constraint/modifier ordering logic; useful if you got hundreds of objects per scene or more. - Additive and Subtractive mode for each constraint. This way you can include or exclude a few objects/collections/etc quickly without having to scroll through the outliner; also useful if you have tons of objects/collections - Possible linking modes are object/collection/material/camera. Object and collection are self explanatory. Material will make the light work only with the selected materials, useful if you don't want to navigate through collections looking for objects that share the same mat. Camera mode will make lights work only if seen in viewport cam/rendered by the selected camera. - Not sure if doable in the current state of Blender hardcode (also not pictured in my image), but an additional 'Influence' feature for each LL constraint would be awesome to test scene lighting iterations. ![light-linking.png](https://archive.blender.org/developer/F11575031/light-linking.png)

Removed subscriber: @APEC

Removed subscriber: @APEC

In #68915#1243370, @3di wrote:
On a side note, the light collection could be double purposes, so that it can be used for light linking and light groups. A light collection with no geometry would be treated as a light group collection, whereas a light group with geometry and lights would be treated as a light linking collection.

Only if Light Groups will not support meshlights.

> In #68915#1243370, @3di wrote: > On a side note, the light collection could be double purposes, so that it can be used for light linking and light groups. A light collection with no geometry would be treated as a light group collection, whereas a light group with geometry and lights would be treated as a light linking collection. Only if Light Groups will not support meshlights.

In #68915#1243383, @1D_Inc wrote:

In #68915#1243370, @3di wrote:
On a side note, the light collection could be double purposes, so that it can be used for light linking and light groups. A light collection with no geometry would be treated as a light group collection, whereas a light group with geometry and lights would be treated as a light linking collection.

Only if Light Groups will not support meshlights.

would be ok if the mesh light only had the light material on it, but if there were other materials, then it should be considered a mesh, and therefore a light linking collection.

> In #68915#1243383, @1D_Inc wrote: >> In #68915#1243370, @3di wrote: >> On a side note, the light collection could be double purposes, so that it can be used for light linking and light groups. A light collection with no geometry would be treated as a light group collection, whereas a light group with geometry and lights would be treated as a light linking collection. > > Only if Light Groups will not support meshlights. would be ok if the mesh light only had the light material on it, but if there were other materials, then it should be considered a mesh, and therefore a light linking collection.

In #68915#1243383, @1D_Inc wrote:

In #68915#1243370, @3di wrote:
On a side note, the light collection could be double purposes, so that it can be used for light linking and light groups. A light collection with no geometry would be treated as a light group collection, whereas a light group with geometry and lights would be treated as a light linking collection.

Only if Light Groups will not support meshlights.

I agree with Paul ^^ Also guys there is still a topic about Light Group here Light Group , which is currently in development, give a look and give your ideas there, so please try to stay focus on light linking in this topic.

Also I'm not sure light linking constraint would be a good idea. It will be quickly a mess mixed with other operator, and this operator would be on object, lights, shader (which can't have operator at the moment) and collection (which can't have operator too).

Moreover, I think it's importante to keep in mind the instruction given by @dfelinto on top of the topic :

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.

Based on this instruction, I think Blender developers want to have a system with collection or close to actual collection.

As my previous comment thos lamps icons to exclude/include are redundant, you alteady have the visibility icons to the right of those. So either the lamp goes or one of the other two should be replaced

I'm not agree, Visibility icon is for visibility so we need to have a different icon for light linking.
Also, as someone mentioned it before (don't remeber how sorry) because the actual outliner can be really heavy (and quickly a mess), it would be maybe a good idea to have an "outliner only for Light Linking" as we can have for View Layer, Scenes, Orphan Data, BLender Files etc ... for example.

image.png

Same Editor "Outliner" but differents Display Mode

> In #68915#1243383, @1D_Inc wrote: >> In #68915#1243370, @3di wrote: >> On a side note, the light collection could be double purposes, so that it can be used for light linking and light groups. A light collection with no geometry would be treated as a light group collection, whereas a light group with geometry and lights would be treated as a light linking collection. > > Only if Light Groups will not support meshlights. I agree with Paul ^^ Also guys there is still a topic about Light Group here [Light Group ](https://developer.blender.org/D12871), which is currently in development, give a look and give your ideas there, so please try to stay focus on light linking in this topic. Also I'm not sure light linking constraint would be a good idea. It will be quickly a mess mixed with other operator, and this operator would be on object, lights, shader (which can't have operator at the moment) and collection (which can't have operator too). Moreover, I think it's importante to keep in mind the instruction given by @dfelinto on top of the topic : >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](https://archive.blender.org/developer/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. Based on this instruction, I think Blender developers want to have a system with collection or close to actual collection. > As my previous comment thos lamps icons to exclude/include are redundant, you alteady have the visibility icons to the right of those. So either the lamp goes or one of the other two should be replaced I'm not agree, Visibility icon is for visibility so we need to have a different icon for light linking. Also, as someone mentioned it before (don't remeber how sorry) because the actual outliner can be really heavy (and quickly a mess), it would be maybe a good idea to have an "outliner only for Light Linking" as we can have for View Layer, Scenes, Orphan Data, BLender Files etc ... for example. ![image.png](https://archive.blender.org/developer/F11577114/image.png) Same Editor "Outliner" but differents Display Mode

Removed subscriber: @Memento

Removed subscriber: @Memento

Added subscriber: @dalai-1

Added subscriber: @dalai-1

I like @nerjal idea, but if it's mandatory sticking to @dfelinto guidelines, I think the easiest way to implement light linking is a simple panel in the object properties, very similar to the collections one.

I like @nerjal idea, but if it's mandatory sticking to @dfelinto guidelines, I think the easiest way to implement light linking is a simple panel in the object properties, very similar to the collections one.

@dfelinto is not involved in the design of this, he created the task but the contents was written by me. I updated it now based on the latest discussions we had around D11636.

There are two parts to this, one is how the data structure is designed, and the other how is how the UI is presented for it. In terms of the data structures we will likely just have a collection per light object, that determines which other objects it illuminates, with some control over lighting being added or exclusive.

There's a reason that relation goes light -> object, which is that it's the best fit for a typical production setup where you link in the the same characters and props many times, but in each shot might set up different lights. If the relation would go from object -> light, you'd need to add overrides on the objects and things get more complicated. However you can still present both object -> light and light -> object relation views in the UI, while having a simpler underlying data structure, which is what other applications do. And you can have tools to easily create relations based on selected objects, etc.

The first iteration of this will likely be relative simple, and a more advanced UI would be in a second step. Add-ons can also present things in different ways.

I don't think a data structure and UI in the outliner as presented by @1D_Inc, @Eqkoss and @3di works well. In a production setup, if you want to for example add a light that adds a specular highlight on just the eyes of one character, you do not want to have to modify the collection hierarchy of that character in every shot. You want to leave the scene hierarchy unchanged, and instead adds some relations on top of it. Potentially something could be displayed or edited in the outliner, but I don't see it working well as part of the existing "Scenes" and "View Layer" views in the outliner.

I don't think we should support this at the material/shader level, it adds a lot of complexity and as far as I know it's not really a feature in other production renderers either. I don't think it makes a lot of sense anyway as a material can be re-used on many objects in the scene that may have little relation to each other. This is how it worked in Blender Internal, but I think that's the wrong design.

Shaders also have the same problem as object -> light relations in terms of overrides and setting up shots, but worse. Now if you want to light a character with a light particular to a shot, you have to override every material on that character and put the shot specific light in the shader nodes.

@dfelinto is not involved in the design of this, he created the task but the contents was written by me. I updated it now based on the latest discussions we had around [D11636](https://archive.blender.org/developer/D11636). There are two parts to this, one is how the data structure is designed, and the other how is how the UI is presented for it. In terms of the data structures we will likely just have a collection per light object, that determines which other objects it illuminates, with some control over lighting being added or exclusive. There's a reason that relation goes light -> object, which is that it's the best fit for a typical production setup where you link in the the same characters and props many times, but in each shot might set up different lights. If the relation would go from object -> light, you'd need to add overrides on the objects and things get more complicated. However you can still present both object -> light and light -> object relation views in the UI, while having a simpler underlying data structure, which is what other applications do. And you can have tools to easily create relations based on selected objects, etc. The first iteration of this will likely be relative simple, and a more advanced UI would be in a second step. Add-ons can also present things in different ways. I don't think a data structure and UI in the outliner as presented by @1D_Inc, @Eqkoss and @3di works well. In a production setup, if you want to for example add a light that adds a specular highlight on just the eyes of one character, you do not want to have to modify the collection hierarchy of that character in every shot. You want to leave the scene hierarchy unchanged, and instead adds some relations on top of it. Potentially something could be displayed or edited in the outliner, but I don't see it working well as part of the existing "Scenes" and "View Layer" views in the outliner. I don't think we should support this at the material/shader level, it adds a lot of complexity and as far as I know it's not really a feature in other production renderers either. I don't think it makes a lot of sense anyway as a material can be re-used on many objects in the scene that may have little relation to each other. This is how it worked in Blender Internal, but I think that's the wrong design. Shaders also have the same problem as object -> light relations in terms of overrides and setting up shots, but worse. Now if you want to light a character with a light particular to a shot, you have to override every material on that character and put the shot specific light in the shader nodes.

Removed subscriber: @dalai-1

Removed subscriber: @dalai-1

Oh, I understand. My screen mockup showed "Material" as a light linking option just out of a specific need but I expected this to be technically unviable. It does make sense to me in a scenario where I would want specific material to have a physical feature more or less eye-catchy without relying on postprocess or extra passes for compositing. Speaking only as an artist, it is not an impossible situation comp-wise and I was trying to contemplate every situation I could imagine being in

Oh, I understand. My screen mockup showed "Material" as a light linking option just out of a specific need but I expected this to be technically unviable. It does make sense to me in a scenario where I would want specific material to have a physical feature more or less eye-catchy without relying on postprocess or extra passes for compositing. Speaking only as an artist, it is not an impossible situation comp-wise and I was trying to contemplate every situation I could imagine being in

Thank you for explanations.
I thought that collections will get another light linkage RTO that will bring the ability to turn it into light linking collection, so you collect all lighting operands (lights and objects) to it and manage on and off states from shot to shot without changing hierarchy.

If it is not like that, we should to design a workaround infrastructure that fits USD format specifications.

Thank you for explanations. I thought that collections will get another light linkage RTO that will bring the ability to turn it into light linking collection, so you collect all lighting operands (lights and objects) to it and manage on and off states from shot to shot without changing hierarchy. If it is not like that, we should to design a workaround infrastructure that fits USD format specifications.

Added subscriber: @frogstomp-4

Added subscriber: @frogstomp-4

Hi, I am a little out of context but anyways ... lets just say some open source, lightweight game engine that works very well with blender has this solved with light culling and object light masks.

so.. imagine light culling slots:

light 1:
[x ][x ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]

light 2:
[ ][ ][ ][ ][ ][ ][ ][ ]

  • - [x ]

objects A light masks:

  • [x ]

object B:

[ ][ ][ ][ ][ ][ ][ ][ ]

  • - [ x]

object c:

[x ][ ][ ][ ][ ][ ][ ][ ]

  • - [ x]

object A will be lit by first light, object B by the second and object C by both lights.

Note that the number of slots is expendable in the system settings.
This way you have lots of control both from individual object and individual light settings.

EDIT: I read a bunch of comments about not pasting other software solutions. I simply disagree. This just opens the mind up for good practices. And by the way, lineart by @ChengduLittleA already uses such approach for intersection masking.

image.png

EDIT 2: removed copiright stuff from my comment to be compliant with guidelines.

Hi, I am a little out of context but anyways ... lets just say some open source, lightweight game engine that works very well with blender has this solved with light culling and object light masks. so.. imagine light culling slots: light 1: [x ][x ][ ][ ][ ][ ][ ][ ] [ ][ ][ ][ ][ ][ ][ ][ ] light 2: [ ][ ][ ][ ][ ][ ][ ][ ] - [ ]- [ ][x ][ ][ ][ ][ ][ ] objects A light masks: - [ ][x ][ ][ ][ ][ ][ ][ ] [ ][ ][ ][ ][ ][ ][ ][ ] object B: [ ][ ][ ][ ][ ][ ][ ][ ] - [ ]- [ ][ x][ ][ ][ ][ ][ ] object c: [x ][ ][ ][ ][ ][ ][ ][ ] - [ ]- [ ][ x][ ][ ][ ][ ][ ] object A will be lit by first light, object B by the second and object C by both lights. Note that the number of slots is expendable in the system settings. This way you have lots of control both from individual object and individual light settings. EDIT: I read a bunch of comments about not pasting other software solutions. I simply disagree. This just opens the mind up for good practices. And by the way, lineart by @ChengduLittleA already uses such approach for intersection masking. ![image.png](https://archive.blender.org/developer/F11596675/image.png) EDIT 2: removed copiright stuff from my comment to be compliant with guidelines.

Added subscriber: @ChengduLittleA

Added subscriber: @ChengduLittleA

EDIT: I read a bunch of comments about not pasting other software solutions. I simply disagree. This just opens the mind up for good practices. And by the way, lineart by @ChengduLittleA already uses such approach for intersection masking.

It’s not a matter of agreement, it’s a rule, and it’s related to copyright laws and enforcement, so it’s not a recommendation, it is forbidden with a reason.

Please remove those pictures, you can explain the same without mentioning other software and doing a quick mock-up representing what you want to explain, no matter if your inspiration comes from other software or not, just don’t use other software material to explain and propose the feature

> EDIT: I read a bunch of comments about not pasting other software solutions. I simply disagree. This just opens the mind up for good practices. And by the way, lineart by @ChengduLittleA already uses such approach for intersection masking. > It’s not a matter of agreement, it’s a rule, and it’s related to copyright laws and enforcement, so it’s not a recommendation, it is forbidden with a reason. Please remove those pictures, you can explain the same without mentioning other software and doing a quick mock-up representing what you want to explain, no matter if your inspiration comes from other software or not, just don’t use other software material to explain and propose the feature

@juang3d thanks, I corrected my comment with your guidelines.

@juang3d thanks, I corrected my comment with your guidelines.

Thanks a lot :)

Thanks a lot :)

Then that would mean every tutorial on YouTube is illegal? You can get inspired by any software you want. Otherwise that would mean that Blender invented every function in the software. We know it's not the case. What you cannot do is to copy/steal the actual code. There are no laws stopping you from mentioning another software. Open Office and Natron are carbon copies of Office and Nuke. But they don't use the original code. Autodesk has other things to do than reading Blender's development forums and sue the Foundation because someone made a snapshot of Maya. Are there any precedent where another software company tried to sue the Foundation over discussions on software development? Let's not get paranoid here. :-)

Then that would mean every tutorial on YouTube is illegal? You can get inspired by any software you want. Otherwise that would mean that Blender invented every function in the software. We know it's not the case. What you cannot do is to copy/steal the actual code. There are no laws stopping you from mentioning another software. Open Office and Natron are carbon copies of Office and Nuke. But they don't use the original code. Autodesk has other things to do than reading Blender's development forums and sue the Foundation because someone made a snapshot of Maya. Are there any precedent where another software company tried to sue the Foundation over discussions on software development? Let's not get paranoid here. :-)

There is a precedent. The point is that you are exposing Blender developers to legal risk, even if they do not post the comment or even see it. Choosing how much risk is acceptable or determining what is legal is not something you get to do for developers, so we have strict rules.
https://devtalk.blender.org/t/copyright-guidelines-for-devtalk/17331

There is a precedent. The point is that you are exposing Blender developers to legal risk, even if they do not post the comment or even see it. Choosing how much risk is acceptable or determining what is legal is not something you get to do for developers, so we have strict rules. https://devtalk.blender.org/t/copyright-guidelines-for-devtalk/17331

Thanks @brecht for the update and the explanation.

In #68915#1244063, @frogstomp-4 wrote:

image.png

Seems to be a good approch but I'm not sure to fully understand it . For light 1, you check first and second box but for object A and B you only check one of them ... :/ You don't need to check both ?

Also this set up looks a lot like Layer in the object properties Armature/Bones. Maybe this feature could be the starting point.

However, in my point of view, it’s not necessarily a good idea, at the moment this looks a lit bit messy for me. It will be maybe better if it's more visual.. I don't know, I am skeptical about this issue...
Also how do you decide if you want to exclude or include or neither ?

Thanks @brecht for the update and the explanation. > In #68915#1244063, @frogstomp-4 wrote: > > ![image.png](https://archive.blender.org/developer/F11596675/image.png) > Seems to be a good approch but I'm not sure to fully understand it . For light 1, you check first and second box but for object A and B you only check one of them ... :/ You don't need to check both ? Also this set up looks a lot like Layer in the object properties Armature/Bones. Maybe this feature could be the starting point. However, in my point of view, it’s not necessarily a good idea, at the moment this looks a lit bit messy for me. It will be maybe better if it's more visual.. I don't know, I am skeptical about this issue... Also how do you decide if you want to exclude or include or neither ?

I stand corrected. Thanks for the clarification @brecht

I stand corrected. Thanks for the clarification @brecht

You should consider using path expressions (such as in Guerilla, Gaffer and other solutions). This is how I've been working and is much more efficient than working with sets/collections of objects.

You should consider using path expressions (such as in Guerilla, Gaffer and other solutions). This is how I've been working and is much more efficient than working with sets/collections of objects.

@Funnybob let's just respect the rules and move on :)

so.. maybe someone can correct me if I see this wrong, but from user perspective, you want to do things with as little setup as possible.

Having a light cull system with all slots populated by default (meaning, everytime you add new light, it will light up everthing) would enable you to quickly remove specific object from light affection and vice versa.

So in my example, there are 16 slots for both, the light and object.

It is basically saying: I, the light with slots 1, 3, 4 will lit up object with either of the corresponding slots. The combos could further be produced by some boolean-ish settings like include, exclude, union (in lineart there is exact match for example)

@Funnybob let's just respect the rules and move on :) so.. maybe someone can correct me if I see this wrong, but from user perspective, you want to do things with as little setup as possible. Having a light cull system with all slots populated by default (meaning, everytime you add new light, it will light up everthing) would enable you to quickly remove specific object from light affection and vice versa. So in my example, there are 16 slots for both, the light and object. It is basically saying: I, the light with slots 1, 3, 4 will lit up object with either of the corresponding slots. The combos could further be produced by some boolean-ish settings like include, exclude, union (in lineart there is exact match for example)

Removed subscriber: @cschumann

Removed subscriber: @cschumann

@frogstomp-4 I will :-)

I don't like the idea of using slots because you are limited to 16 and if someone else take over the shot there's no way for him/her to understand what is linked to what. That's why I keep talking about a clean and simple editor. I suggested before that it could also use linking on shaders but it looks like it's not a viable option, which is ok with me since I never used it before in 22 years of using the other software I was talking about. So just a two column system, the first one for the context (light or object or collection) and the second one for what's going to be linked. And the links are just represented by highlights. I my experience, light linking is used as a exception. It's not like every light needs to be linked. It's usually used to add an extra rim light or highlight on one or a few objects. So for the first implementation maybe it could be just that. A simple way to link lights to object or collections.

@frogstomp-4 I will :-) I don't like the idea of using slots because you are limited to 16 and if someone else take over the shot there's no way for him/her to understand what is linked to what. That's why I keep talking about a clean and simple editor. I suggested before that it could also use linking on shaders but it looks like it's not a viable option, which is ok with me since I never used it before in 22 years of using the other software I was talking about. So just a two column system, the first one for the context (light or object or collection) and the second one for what's going to be linked. And the links are just represented by highlights. I my experience, light linking is used as a exception. It's not like every light needs to be linked. It's usually used to add an extra rim light or highlight on one or a few objects. So for the first implementation maybe it could be just that. A simple way to link lights to object or collections.

In large productions light linking is definitely not an exception.
And 16 slots is not enough to cover complex cases.

In large productions light linking is definitely not an exception. And 16 slots is not enough to cover complex cases.

number is arbitrary, could be 32 or 128 or anything. just recently VSE was updated to use 128 track instead of 32 limit.

But anyways, although this is for me the most visually understandable way that is also easy to debug... I would back off to make room for collection approach, as the lightlinking usually comes with some inheritance rules - this is not the case with collections. Honestly I need to go though all comments to envision all proposed solutions better :)

Initial idea was to prompt people here to check the other software, not to copy things, not to make copyright infringements, but simply not to develop something half way only to realize something what not very well thought out :)

number is arbitrary, could be 32 or 128 or anything. just recently VSE was updated to use 128 track instead of 32 limit. But anyways, although this is for me the most visually understandable way that is also easy to debug... I would back off to make room for collection approach, as the lightlinking usually comes with some inheritance rules - this is not the case with collections. Honestly I need to go though all comments to envision all proposed solutions better :) Initial idea was to prompt people here to check the other software, not to copy things, not to make copyright infringements, but simply not to develop something half way only to realize something what not very well thought out :)

In #68915#1244223, @frogstomp-4 wrote:
number is arbitrary, could be 32 or 128 or anything. just recently VSE was updated to use 128 track instead of 32 limit.

But anyways, although this is for me the most visually understandable way that is also easy to debug... I would back off to make room for collection approach, as the lightlinking usually comes with some inheritance rules - this is not the case with collections. Honestly I need to go though all comments to envision all proposed solutions better :)

Initial idea was to prompt people here to check the other software, not to copy things, not to make copyright infringements, but simply not to develop something half way only to realize something what not very well thought out :)

Nothing is stopping you to go to an image editor and draw/sketch on top of it and present the sketch not the original image.

> In #68915#1244223, @frogstomp-4 wrote: > number is arbitrary, could be 32 or 128 or anything. just recently VSE was updated to use 128 track instead of 32 limit. > > But anyways, although this is for me the most visually understandable way that is also easy to debug... I would back off to make room for collection approach, as the lightlinking usually comes with some inheritance rules - this is not the case with collections. Honestly I need to go though all comments to envision all proposed solutions better :) > > Initial idea was to prompt people here to check the other software, not to copy things, not to make copyright infringements, but simply not to develop something half way only to realize something what not very well thought out :) Nothing is stopping you to go to an image editor and draw/sketch on top of it and present the sketch not the original image.

In #68915#1244346, @NunoAlexandreConceicao wrote:
Nothing is stopping you to go to an image editor and draw/sketch on top of it and present the sketch not the original image.

Please don't, we have the strict rules for a reason, don't try to find some workaround where you are obviously still copying from another application.

> In #68915#1244346, @NunoAlexandreConceicao wrote: > Nothing is stopping you to go to an image editor and draw/sketch on top of it and present the sketch not the original image. Please don't, we have the strict rules for a reason, don't try to find some workaround where you are obviously still copying from another application.

I see no problem with cloning opensource software solutions in general - this is dangerous for proprietary solutions. From our experience, opensouce has lots of unexpected but incredibly efficient solutions to the industry level problems, and Blender is a nice example here.

For example, we proposed a mulilayer cloner stamp tool to GIMP to edit all PBR maps at once as a layers, it is ready after a year of a research and we would like it be copied by Krita which has awesome tiling checking feature as well.
Or copying Krita tiling checking feature by GIMP to obtain the ability to make seamless PBR maps.

But I don't like the proposed godot solution from practical point of view, since it proposes to create implicit management.
Slots paradigm stands for solution of a combinatirial task in dynamic context - this require explicit management.

For example, it is nice to use slots in QCD/Layers to manage objects sets visibility (an explicit property) to solve Multiref modeling, but in case of light linking you are managing such implicit properties as relationships which has no viewport feedback, so it will be easy to create some setup, but incredibly hard to read it back or parse for management purposes to make some required changes to it and get predictable result.

I see no problem with cloning opensource software solutions in general - this is dangerous for proprietary solutions. From our experience, opensouce has lots of unexpected but incredibly efficient solutions to the industry level problems, and Blender is a nice example here. For example, we proposed a mulilayer cloner stamp tool to GIMP to edit all PBR maps at once as a layers, it is ready after a year of a research and we would like it be copied by Krita which has awesome tiling checking feature as well. Or copying Krita tiling checking feature by GIMP to obtain the ability to make seamless PBR maps. But I don't like the proposed godot solution from practical point of view, since it proposes to create implicit management. Slots paradigm stands for solution of a combinatirial task in dynamic context - this require explicit management. For example, it is nice to use slots in QCD/Layers to manage objects sets visibility (an explicit property) to solve Multiref modeling, but in case of light linking you are managing such implicit properties as relationships which has no viewport feedback, so it will be easy to create some setup, but incredibly hard to read it back or parse for management purposes to make some required changes to it and get predictable result.

Hi everyone !

Based on our previous discussions and on what @brecht said before, I did a little mockup. This is a remake of my previous proposition, but I think, it match with the expectation.

State 1.png State 2.png

image.png

To explain me a little bit more, this solution is completely blender friendly and simple to used.

  • At first we have the None button which simply say that our mesh or our light have no light linking (that is what we have in blender with no light linking feature)
  • Include/Exlcude is to define if the object or light in the list is affected by/affect the active light or mesh.
  • Link button is to add the selected object/light to the list and Unlink button to remove the selected object/light to the list. Multiple object/light can be add or remove from the list.

I don't know how to use UI_List but I think we could have an UI_list instead of the current list. (what we have in my first example) The UI_List will give more fluidity and control.
Depending of which type of object is active the list contains light or mesh. This list could also be added to the collection property if we want to have the collection level in light linking.

image.png

To complet, we could have a menu who can be called by pressing "alt+L". This menu could be added to the "Object" Header menu or in "Object > Link/Tranfert Data" (directly available with ctrl+L shortcut) or in a new header menu "Lighting or Light Linking for example.

Also I found something on internet which look like this :
c.f : "How to get one UIList to control the contents of another UIList?" on blender stackexchange
(I don't know if I can share a link from this website so I Only give you the info to found it more simply)
image.png

As I said before, I don't know how to use UI_List but in this example the Ui_List on the left, "control" the UI_List on the right. I think that could be hijacked to create a double control panel as mentioned before (this is to illustrate the Maya control panel but in blender)

Here is my .py file of my simple UI (the "Active object is a MEST/LIGHT" label is only for comprehension purpose):
Light_Linking_UI.006.py

@brecht Do you think this could be a good starting UI ?

Hi everyone ! Based on our previous discussions and on what @brecht said before, I did a little mockup. This is a remake of my previous proposition, but I think, it match with the expectation. > ![State 1.png](https://archive.blender.org/developer/F11472050/State_1.png) ![State 2.png](https://archive.blender.org/developer/F11472053/State_2.png) ![image.png](https://archive.blender.org/developer/F11663899/image.png) To explain me a little bit more, this solution is completely blender friendly and simple to used. - At first we have the None button which simply say that our mesh or our light have no light linking (that is what we have in blender with no light linking feature) - Include/Exlcude is to define if the object or light in the list is affected by/affect the active light or mesh. - Link button is to add the selected object/light to the list and Unlink button to remove the selected object/light to the list. Multiple object/light can be add or remove from the list. I don't know how to use UI_List but I think we could have an UI_list instead of the current list. (what we have in my first example) The UI_List will give more fluidity and control. Depending of which type of object is active the list contains light or mesh. This list could also be added to the collection property if we want to have the collection level in light linking. ![image.png](https://archive.blender.org/developer/F11664039/image.png) To complet, we could have a menu who can be called by pressing "alt+L". This menu could be added to the "Object" Header menu or in "Object > Link/Tranfert Data" (directly available with ctrl+L shortcut) or in a new header menu "Lighting or Light Linking for example. Also I found something on internet which look like this : ***c.f** : "How to get one UIList to control the contents of another UIList?" on blender stackexchange* (I don't know if I can share a link from this website so I Only give you the info to found it more simply) ![image.png](https://archive.blender.org/developer/F11664124/image.png) As I said before, I don't know how to use UI_List but in this example the Ui_List on the left, "control" the UI_List on the right. I think that could be hijacked to create a double control panel as mentioned before (this is to illustrate the Maya control panel but in blender) Here is my .py file of my simple UI (the "Active object is a MEST/LIGHT" label is only for comprehension purpose): [Light_Linking_UI.006.py](https://archive.blender.org/developer/F11664185/Light_Linking_UI.006.py) @brecht Do you think this could be a good starting UI ?

This looks like a solution for a single light linking, am I right?

Light linking belongs to scene setup process, which is performed in static context, therefore names of links are important.
An example - highlight eyes of 3 characters, named A, B and C.
You will need 3 different light links, named as LLA, LLB and LLC to highlight their eyes.

UI_List may fit that requirement if light links will be in the left part, objects + lights will be in the right part, and if ui will have select object button and will be placed in scene properties section.

This looks like a solution for a single light linking, am I right? Light linking belongs to scene setup process, which is performed in static context, therefore names of links are important. An example - highlight eyes of 3 characters, named A, B and C. You will need 3 different light links, named as LLA, LLB and LLC to highlight their eyes. UI_List may fit that requirement if light links will be in the left part, objects + lights will be in the right part, and if ui will have select object button and will be placed in scene properties section.

In #68915#1246111, @1D_Inc wrote:
This looks like a solution for a single light linking, am I right?

My UI ? Or the double UI_list ?

Light linking belongs to scene setup process, which is performed in static context, therefore names of links are important.
An example - highlight eyes of 3 characters, named A, B and C.
You will need 3 different light links, named as LLA, LLB and LLC to highlight their eyes.

UI_List may fit that requirement if light links will be in the left part, objects + lights will be in the right part, and if ui will have select object button and will be placed in scene properties section.

I'm not sure to fully understand, but I will try to answer.
In my opinion it simply depend how the feature will be developped.

Here I did an Ui only for example, It's not a full compatible UI, because I don't know how the feature will be develop in back.
In my example there is only one list but we could have multiple list for multiple light linking (one list per light linking). The list could be assimilate as "Collection" but it's an "invisible collection"

You will need 3 different light links, named as LLA, LLB and LLC to highlight their eyes.

Also this example is a good one but also a bad one ^^
There is a lot of setup possible, maybe you want to have one light for each highlight. But you can also only have one light for all. So in this case only one list(light linking) is needed.

A feature/UI induces a methodology/workflow. I think it's an important point that everyone need to keep in mind

> In #68915#1246111, @1D_Inc wrote: > This looks like a solution for a single light linking, am I right? My UI ? Or the double UI_list ? > > Light linking belongs to scene setup process, which is performed in static context, therefore names of links are important. > An example - highlight eyes of 3 characters, named A, B and C. > You will need 3 different light links, named as LLA, LLB and LLC to highlight their eyes. > > UI_List may fit that requirement if light links will be in the left part, objects + lights will be in the right part, and if ui will have select object button and will be placed in scene properties section. I'm not sure to fully understand, but I will try to answer. In my opinion it simply depend how the feature will be developped. Here I did an Ui only for example, It's not a full compatible UI, because I don't know how the feature will be develop in back. In my example there is only one list but we could have multiple list for multiple light linking (one list per light linking). The list could be assimilate as "Collection" but it's an "invisible collection" > You will need 3 different light links, named as LLA, LLB and LLC to highlight their eyes. Also this example is a good one but also a bad one ^^ There is a lot of setup possible, maybe you want to have one light for each highlight. But you can also only have one light for all. So in this case only one list(light linking) is needed. A feature/UI induces a methodology/workflow. I think it's an important point that everyone need to keep in mind

I think if double UI_List solution has enough capacity to cover multiple light links demand, it will easily allow to handle a single one, named LLABC if it is needed.

I think if double UI_List solution has enough capacity to cover multiple light links demand, it will easily allow to handle a single one, named LLABC if it is needed.

In #68915#1246057, @Eqkoss wrote:
Hi everyone !

Based on our previous discussions and on what @brecht said before, I did a little mockup. This is a remake of my previous proposition, but I think, it match with the expectation.

State 1.png State 2.png

image.png

To explain me a little bit more, this solution is completely blender friendly and simple to used.

  • At first we have the None button which simply say that our mesh or our light have no light linking (that is what we have in blender with no light linking feature)
  • Include/Exlcude is to define if the object or light in the list is affected by/affect the active light or mesh.
  • Link button is to add the selected object/light to the list and Unlink button to remove the selected object/light to the list. Multiple object/light can be add or remove from the list.

I don't know how to use UI_List but I think we could have an UI_list instead of the current list. (what we have in my first example) The UI_List will give more fluidity and control.
Depending of which type of object is active the list contains light or mesh. This list could also be added to the collection property if we want to have the collection level in light linking.

image.png

To complet, we could have a menu who can be called by pressing "alt+L". This menu could be added to the "Object" Header menu or in "Object > Link/Tranfert Data" (directly available with ctrl+L shortcut) or in a new header menu "Lighting or Light Linking for example.

Also I found something on internet which look like this :
c.f : "How to get one UIList to control the contents of another UIList?" on blender stackexchange
(I don't know if I can share a link from this website so I Only give you the info to found it more simply)
image.png

As I said before, I don't know how to use UI_List but in this example the Ui_List on the left, "control" the UI_List on the right. I think that could be hijacked to create a double control panel as mentioned before (this is to illustrate the Maya control panel but in blender)

Here is my .py file of my simple UI (the "Active object is a MEST/LIGHT" label is only for comprehension purpose):
Light_Linking_UI.006.py

@brecht Do you think this could be a good starting UI ?

To me this looks over complicated, just needs to mention a collection of lights or objects and if its in included or exclusive mode, no need to specifically mention every single element, imagine lists of dozens or hundreds of lights/objects ?!

> In #68915#1246057, @Eqkoss wrote: > Hi everyone ! > > Based on our previous discussions and on what @brecht said before, I did a little mockup. This is a remake of my previous proposition, but I think, it match with the expectation. > >> ![State 1.png](https://archive.blender.org/developer/F11472050/State_1.png) ![State 2.png](https://archive.blender.org/developer/F11472053/State_2.png) > > ![image.png](https://archive.blender.org/developer/F11663899/image.png) > > To explain me a little bit more, this solution is completely blender friendly and simple to used. > - At first we have the None button which simply say that our mesh or our light have no light linking (that is what we have in blender with no light linking feature) > - Include/Exlcude is to define if the object or light in the list is affected by/affect the active light or mesh. > - Link button is to add the selected object/light to the list and Unlink button to remove the selected object/light to the list. Multiple object/light can be add or remove from the list. > > I don't know how to use UI_List but I think we could have an UI_list instead of the current list. (what we have in my first example) The UI_List will give more fluidity and control. > Depending of which type of object is active the list contains light or mesh. This list could also be added to the collection property if we want to have the collection level in light linking. > > ![image.png](https://archive.blender.org/developer/F11664039/image.png) > > To complet, we could have a menu who can be called by pressing "alt+L". This menu could be added to the "Object" Header menu or in "Object > Link/Tranfert Data" (directly available with ctrl+L shortcut) or in a new header menu "Lighting or Light Linking for example. > > Also I found something on internet which look like this : > ***c.f** : "How to get one UIList to control the contents of another UIList?" on blender stackexchange* > (I don't know if I can share a link from this website so I Only give you the info to found it more simply) > ![image.png](https://archive.blender.org/developer/F11664124/image.png) > > As I said before, I don't know how to use UI_List but in this example the Ui_List on the left, "control" the UI_List on the right. I think that could be hijacked to create a double control panel as mentioned before (this is to illustrate the Maya control panel but in blender) > > Here is my .py file of my simple UI (the "Active object is a MEST/LIGHT" label is only for comprehension purpose): > [Light_Linking_UI.006.py](https://archive.blender.org/developer/F11664185/Light_Linking_UI.006.py) > > @brecht Do you think this could be a good starting UI ? To me this looks over complicated, just needs to mention a collection of lights or objects and if its in included or exclusive mode, no need to specifically mention every single element, imagine lists of dozens or hundreds of lights/objects ?!

Hi @nunoconceicao. If the list is develop for the collection level, it's what I have in my UI.
Add All Lights and Meshes you want in the collection then Exclude or Include it :).
The per Light or per Object linking is only for Light Centric ou Object Centric, if you prefere. But in any case you can also do it at those level because with my simple UI, you have the possibility to add/remove multiple objects / Lights in one click. So it's easier to set up. We can also add a Copy/Paste list button to quickly copy a list in another list.
Remember that's only a simple UI example, it can be improved later :) I have a lot of thing in my head but not necessary the time to develop it ... :/

Hi @nunoconceicao. If the list is develop for the collection level, it's what I have in my UI. Add All Lights and Meshes you want in the collection then Exclude or Include it :). The per Light or per Object linking is only for Light Centric ou Object Centric, if you prefere. But in any case you can also do it at those level because with my simple UI, you have the possibility to add/remove multiple objects / Lights in one click. So it's easier to set up. We can also add a Copy/Paste list button to quickly copy a list in another list. Remember that's only a simple UI example, it can be improved later :) I have a lot of thing in my head but not necessary the time to develop it ... :/

Removed subscriber: @Tasch

Removed subscriber: @Tasch

I agree with Brecht about decoupling Light Linking from collection engine and putting it as a system on top of it - it is a wise choice since Light Linking has nothing to do with scene content management that Collections and Outliner are designed for.
Light Linking is a system for local light/mesh objects relationships.

I also like your double UI_List approach because all Light Links are located in one place (has a single access point) so you don't have to trace the entire scene or look through the entire outliner.
When you work with Light Links you are focused on them.

I agree with Brecht about decoupling Light Linking from collection engine and putting it as a system on top of it - it is a wise choice since Light Linking has nothing to do with scene content management that Collections and Outliner are designed for. Light Linking is a system for local light/mesh objects relationships. I also like your **double UI_List approach** because all Light Links are located in one place (has a single access point) so you don't have to trace the entire scene or look through the entire outliner. When you work with Light Links you are focused on them.

In #68915#1246945, @1D_Inc wrote:
I also like your double UI_List approach...

Little disclaimer : As I said before, this double ui_list is not a creation of me. I found it in blender stack exchange. But I agree, it's a pretty good interface if it's usable.

In #68915#1246945, @1D_Inc wrote:
I agree with Brecht about decoupling Light Linking from collection engine and putting it as a system on top of it - it is a wise choice since Light Linking has nothing to do with scene content management that Collections and Outliner are designed for.
Light Linking is a system for local light/mesh objects relationships.

I also agree with both of you. This is the reason why I try to use a list system in my UI to pass on top of collection/scène system. Now I have a better idea of what you talk before with your example LLA, LLB, LLC etc.
Thinking of that I will work on the UI to see if it's possible to found a solution to mix what I currently have with another list system which will give us the possibility to Group things together and include or exclude it. I think I maybe have the solution but I need to test it a little bit before and code forsur ahah

> In #68915#1246945, @1D_Inc wrote: > I also like your **double UI_List approach**... Little disclaimer : As I said before, this double ui_list is not a creation of me. I found it in blender stack exchange. But I agree, it's a pretty good interface if it's usable. > In #68915#1246945, @1D_Inc wrote: > I agree with Brecht about decoupling Light Linking from collection engine and putting it as a system on top of it - it is a wise choice since Light Linking has nothing to do with scene content management that Collections and Outliner are designed for. > Light Linking is a system for local light/mesh objects relationships. I also agree with both of you. This is the reason why I try to use a list system in my UI to pass on top of collection/scène system. Now I have a better idea of what you talk before with your example LLA, LLB, LLC etc. Thinking of that I will work on the UI to see if it's possible to found a solution to mix what I currently have with another list system which will give us the possibility to Group things together and include or exclude it. I think I maybe have the solution but I need to test it a little bit before and code forsur ahah

Hi everyone ! I'm back

I have work in a new UI. Hope this one will be better.

image.png

The red part correspond to the "collection centric" part.
In the Collection Properties you define/create your different "light linking filters". (I put the panel in collection properties for example purpose but it's maybe not the best placement. Maybe it should be better to place it in scene properties or layer properties like that we have acces to a "collection level")
And you define if the filter will be in incule or exclude mode, by clicking on the little Light Icon.
If you stay in None, all light linking will be ignored.

  • Plus icon : Add a new filter
  • Minus icon :Remove an existing filter
  • Arrow down icon : give access to other options (ordering, copy, paste ...)
    In the Object Properties you define in which "Light Linking Filter" your object (MESH and LIGHT) will be
    In the example our mesh is in LLA, LLC and LLD, our light is in LLA, LLB and Other. Because Our mesh and our light are in the same Light Linkg Filter (LLA), our light will only illuminate our mesh because the light linking filter(LLA) is in Include mode.
    For this example I only put one light and one mesh but if 3 lights are in LLB and 4 meshes are in LLB and LLB is in exclude mode then our 3 lights will not illuminate our 4 meshes because they are in the same Light Linking Filter.

The blue part is the object centric (if the active object is a mesh) or the light centric (if the active object is a light).
That part allow use to specify numbers of meshes which are affect or not by our light depending in which mode we are (include or exclude). This part could also looks like an UI_list who point to objects or lights but I don't know how to do it sorry.

image.png

Why I want to keep the blue part ? Because in my head we could had something like that:
In scene properties we create our light linking filter. In Colleciton, Object(Mesh and Light) we define in which Light Linking filter they are. That way, we can assign an entire Collection to a LLF and exclude only on object of this collection for exemple

Hi everyone ! I'm back I have work in a new UI. Hope this one will be better. ![image.png](https://archive.blender.org/developer/F11703508/image.png) The red part correspond to the "collection centric" part. In the Collection Properties you define/create your different "light linking filters". `(I put the panel in collection properties for example purpose but it's maybe not the best placement. Maybe it should be better to place it in scene properties or layer properties like that we have acces to a "collection level")` And you define if the filter will be in incule or exclude mode, by clicking on the little Light Icon. If you stay in None, all light linking will be ignored. - Plus icon : Add a new filter - Minus icon :Remove an existing filter - Arrow down icon : give access to other options (ordering, copy, paste ...) In the Object Properties you define in which "Light Linking Filter" your object (MESH and LIGHT) will be In the example our mesh is in LLA, LLC and LLD, our light is in LLA, LLB and Other. Because Our mesh and our light are in the same Light Linkg Filter (LLA), our light will only illuminate our mesh because the light linking filter(LLA) is in Include mode. For this example I only put one light and one mesh but if 3 lights are in LLB and 4 meshes are in LLB and LLB is in exclude mode then our 3 lights will not illuminate our 4 meshes because they are in the same Light Linking Filter. The blue part is the object centric (if the active object is a mesh) or the light centric (if the active object is a light). That part allow use to specify numbers of meshes which are affect or not by our light depending in which mode we are (include or exclude). This part could also looks like an UI_list who point to objects or lights but I don't know how to do it sorry. ![image.png](https://archive.blender.org/developer/F11703986/image.png) Why I want to keep the blue part ? Because in my head we could had something like that: In scene properties we create our light linking filter. In Colleciton, Object(Mesh and Light) we define in which Light Linking filter they are. That way, we can assign an entire Collection to a LLF and exclude only on object of this collection for exemple

In #68915#1246958, @Eqkoss wrote:

Little disclaimer : As I said before, this double ui_list is not a creation of me. I found it in blender stack exchange. But I agree, it's a pretty good interface is it's usable.

Yes, you didn't invented double UI_List, but the idea of using such a system for Light Linking is definitely yours =)

> In #68915#1246958, @Eqkoss wrote: > Little disclaimer : As I said before, this double ui_list is not a creation of me. I found it in blender stack exchange. But I agree, it's a pretty good interface is it's usable. Yes, you didn't invented double UI_List, but the idea of using such a system for Light Linking is definitely yours =)

In #68915#1247918, @Eqkoss wrote:
That way, we can assign an entire Collection to a LLF and exclude only on object of this collection for exemple

I agree with Collection level support - it is useful when you need to lightlink lots of objects.

But I am not sure about excluding option - it creates lots of implicit management.

If you need all collection's content except several objects, technically, you can place them to a subcollection and lightlink it directly - to get a predictable explicit setup, avoiding include/exclude implicit management and the necessity for making infrastructure for it.

It is hard to say how exactly such an implicit management is demanded, does it cover valuable part of demads and whether such a flexibility is not extensive.

> In #68915#1247918, @Eqkoss wrote: > That way, we can assign an entire Collection to a LLF and exclude only on object of this collection for exemple I agree with Collection level support - it is useful when you need to lightlink lots of objects. But I am not sure about excluding option - it creates lots of implicit management. If you need all collection's content except several objects, technically, you can place them to a subcollection and lightlink it directly - to get a predictable explicit setup, avoiding include/exclude implicit management and the necessity for making infrastructure for it. It is hard to say how exactly such an implicit management is demanded, does it cover valuable part of demads and whether such a flexibility is not extensive.

Added subscriber: @cschumann

Added subscriber: @cschumann

FYI, e-cycles now has light linking! :)

ll1.JPG

ll2.JPG

FYI, e-cycles now has light linking! :) ![ll1.JPG](https://archive.blender.org/developer/F11776857/ll1.JPG) ![ll2.JPG](https://archive.blender.org/developer/F11776866/ll2.JPG)

How about you have 2 different hdri in the shader editor and you only want 1 hdri affected 1 certain object and the other hdri another let's say whole collection?

Or how about a light linking based on materials too? Let's say you don't want to separate the eyes of a character to make it able to light link.
And how would you exclude the bounce lighting of another object?

How about you have 2 different hdri in the shader editor and you only want 1 hdri affected 1 certain object and the other hdri another let's say whole collection? Or how about a light linking based on materials too? Let's say you don't want to separate the eyes of a character to make it able to light link. And how would you exclude the bounce lighting of another object?

In #68915#1251362, @cschumann wrote:
FYI, e-cycles now has light linking! :)

Yeah! I see it. That is pretty cool. Just hoping Matthieu will give a help for the LL implementation in blender way now :) it could be really awesome.
Also he's solution is pretty cool but not visual enough for me, not explicit enough for work in production. String will be better than numbers in my opinion.

In #68915#1251528, @taroumaso wrote:
Or how about a light linking based on materials too?
And how would you exclude the bounce lighting of another object?

As Brecht mentioned it before :

I don't think we should support this at the material/shader level, it adds a lot of complexity and as far as I know it's not really a feature in other production renderers either. I don't think it makes a lot of sense anyway as a material can be re-used on many objects in the scene that may have little relation to each other. This is how it worked in Blender Internal, but I think that's the wrong design.

He also said to keep it "simple" so I'm trying to respect that :). As you said, even if you don't have the material level you could simply create a light linking filter and put it inside with my solution.

For the double hdri problem, I think of that few days ago. But at the Moment because I try to keep it simple, I only focus on collection and object/light. In any case, what we have for the object/light panel could be simply add to the background to have the environnement linking or maybe add a check box to decide to include env or not in the LL filter for example. But I think this feature will be maybe the next one, after a first development. I don't know.

Currently I'm re writting a new mockup to give a better view of my previous one.
I also try to give an interest to the double Ui_list which I think could be useful but maybe to heavy but it not easy at all.

> In #68915#1251362, @cschumann wrote: > FYI, e-cycles now has light linking! :) > Yeah! I see it. That is pretty cool. Just hoping Matthieu will give a help for the LL implementation in blender way now :) it could be really awesome. Also he's solution is pretty cool but not visual enough for me, not explicit enough for work in production. String will be better than numbers in my opinion. > In #68915#1251528, @taroumaso wrote: > Or how about a light linking based on materials too? > And how would you exclude the bounce lighting of another object? As Brecht mentioned it before : > I don't think we should support this at the material/shader level, it adds a lot of complexity and as far as I know it's not really a feature in other production renderers either. I don't think it makes a lot of sense anyway as a material can be re-used on many objects in the scene that may have little relation to each other. This is how it worked in Blender Internal, but I think that's the wrong design. He also said to keep it "simple" so I'm trying to respect that :). As you said, even if you don't have the material level you could simply create a light linking filter and put it inside with my solution. For the double hdri problem, I think of that few days ago. But at the Moment because I try to keep it simple, I only focus on collection and object/light. In any case, what we have for the object/light panel could be simply add to the background to have the environnement linking or maybe add a check box to decide to include env or not in the LL filter for example. But I think this feature will be maybe the next one, after a first development. I don't know. Currently I'm re writting a new mockup to give a better view of my previous one. I also try to give an interest to the double Ui_list which I think could be useful but maybe to heavy but it not easy at all.

In #68915#1251528, @taroumaso wrote:
How about you have 2 different hdri in the shader editor and you only want 1 hdri affected 1 certain object and the other hdri another let's say whole collection?

Or how about a light linking based on materials too? Let's say you don't want to separate the eyes of a character to make it able to light link.
And how would you exclude the bounce lighting of another object?

Don´t know, but it is keyable! :D

> In #68915#1251528, @taroumaso wrote: > How about you have 2 different hdri in the shader editor and you only want 1 hdri affected 1 certain object and the other hdri another let's say whole collection? > > Or how about a light linking based on materials too? Let's say you don't want to separate the eyes of a character to make it able to light link. > And how would you exclude the bounce lighting of another object? Don´t know, but it is keyable! :D

In #68915#1251528, @taroumaso wrote:
How about you have 2 different hdri in the shader editor and you only want 1 hdri affected 1 certain object and the other hdri another let's say whole collection?

Or how about a light linking based on materials too? Let's say you don't want to separate the eyes of a character to make it able to light link.
And how would you exclude the bounce lighting of another object?

I believe eventually the developers will have to shift the world lighting into an environment light primitive.

> In #68915#1251528, @taroumaso wrote: > How about you have 2 different hdri in the shader editor and you only want 1 hdri affected 1 certain object and the other hdri another let's say whole collection? > > Or how about a light linking based on materials too? Let's say you don't want to separate the eyes of a character to make it able to light link. > And how would you exclude the bounce lighting of another object? I believe eventually the developers will have to shift the world lighting into an environment light primitive.

Added subscriber: @pietrodichito

Added subscriber: @pietrodichito

Added subscriber: @lictex_1

Added subscriber: @lictex_1

Hi peoplenof the blender community!! Hope you're doing well!

Is there any news here :)?

I almost re write my previous mockup to be more clear. I also working on a double ui_list panel to do a new proposition but currently I don't have the time to dev since I work on a new production.

Is some one have new ideas? That could give a new point of view which could be really helpful :)

Hi peoplenof the blender community!! Hope you're doing well! Is there any news here :)? I almost re write my previous mockup to be more clear. I also working on a double ui_list panel to do a new proposition but currently I don't have the time to dev since I work on a new production. Is some one have new ideas? That could give a new point of view which could be really helpful :)

Hi)
At the moment it is hard to me to imagine a solution that could be possibly better than a double ui_list.

Hi) At the moment it is hard to me to imagine a solution that could be possibly better than a double ui_list.

I am also not sure that it makes much sense to provide anything else but double ui_list - I mean object and light data properties.
This allow to detect which LL active object belongs to, it is useful, but it is hard to say if it is much required, since working with LL is usually LL-centric, and double ui_list cover such a demand with select LL objects button, so you can view and manipulate (exclude/include) LL objects.

Collection case is even less clear though.

I am also not sure that it makes much sense to provide anything else but double ui_list - I mean object and light data properties. This allow to detect which LL active object belongs to, it is useful, but it is hard to say if it is much required, since working with LL is usually LL-centric, and double ui_list cover such a demand with select LL objects button, so you can view and manipulate (exclude/include) LL objects. Collection case is even less clear though.

Added subscriber: @MattCurtis

Added subscriber: @MattCurtis

Added subscriber: @AlexeyAdamitsky

Added subscriber: @AlexeyAdamitsky

Added subscriber: @SotirisKouvopoulos

Added subscriber: @SotirisKouvopoulos

Added subscriber: @ChAoS_O

Added subscriber: @ChAoS_O

Light linking is a rather complex task. As a Lighting Artist/TD with 20 years of industry experience i really have to deal a lot with that. So from my production POV my 2 Cents:

Please dont copy ancient workflows.
It would make sense not to scatter light linking over different places. Thats a major problem in houdini - pre solaris - workflows.
I personally think there is no really great solution out there and something like a nodegraph would be perfect to do this kinds of overrides.

Like dropping either a light, an object or a group into the graph and add special nodes like exclude/include illumination/shadow, groups, light filters, or overrides like color/temp. This would be easy to read for the user and can be extended with more nodes in the future. To give the user a complete overview there could be a summery node showing all the overrides.

Cheers

Light linking is a rather complex task. As a Lighting Artist/TD with 20 years of industry experience i really have to deal a lot with that. So from my production POV my 2 Cents: Please dont copy ancient workflows. It would make sense not to scatter light linking over different places. Thats a major problem in houdini - pre solaris - workflows. I personally think there is no really great solution out there and something like a nodegraph would be perfect to do this kinds of overrides. Like dropping either a light, an object or a group into the graph and add special nodes like exclude/include illumination/shadow, groups, light filters, or overrides like color/temp. This would be easy to read for the user and can be extended with more nodes in the future. To give the user a complete overview there could be a summery node showing all the overrides. Cheers

Added subscriber: @jeremybep

Added subscriber: @jeremybep

Added subscriber: @safaasgar

Added subscriber: @safaasgar
Contributor

Added subscriber: @KevinCBurke

Added subscriber: @KevinCBurke

Added subscriber: @Steven-6

Added subscriber: @Steven-6

Removed subscriber: @Steven-6

Removed subscriber: @Steven-6

Added subscriber: @Nurb2Kea

Added subscriber: @Nurb2Kea

e-cycles having light linking makes me want to cry because eevee nor cycles don't have any.

e-cycles having light linking makes me want to cry because eevee nor cycles don't have any.

Added subscriber: @Garek

Added subscriber: @Garek

Added subscriber: @el_diablo

Added subscriber: @el_diablo

In #68915#1270563, @ChAoS_O wrote:
Light linking is a rather complex task. As a Lighting Artist/TD with 20 years of industry experience i really have to deal a lot with that. So from my production POV my 2 Cents:

Please dont copy ancient workflows.
It would make sense not to scatter light linking over different places. Thats a major problem in houdini - pre solaris - workflows.
I personally think there is no really great solution out there and something like a nodegraph would be perfect to do this kinds of overrides.

Like dropping either a light, an object or a group into the graph and add special nodes like exclude/include illumination/shadow, groups, light filters, or overrides like color/temp. This would be easy to read for the user and can be extended with more nodes in the future. To give the user a complete overview there could be a summery node showing all the overrides.

Cheers

To support my friend's comments here, the Nodal graph which evaluates to a path expression would be the most future proof implementation IMHO. Btw, light linking is really a necessity when doing reusable setups for episodic work. I can't even phantom working with a renderer that does not support it.

> In #68915#1270563, @ChAoS_O wrote: > Light linking is a rather complex task. As a Lighting Artist/TD with 20 years of industry experience i really have to deal a lot with that. So from my production POV my 2 Cents: > > Please dont copy ancient workflows. > It would make sense not to scatter light linking over different places. Thats a major problem in houdini - pre solaris - workflows. > I personally think there is no really great solution out there and something like a nodegraph would be perfect to do this kinds of overrides. > > Like dropping either a light, an object or a group into the graph and add special nodes like exclude/include illumination/shadow, groups, light filters, or overrides like color/temp. This would be easy to read for the user and can be extended with more nodes in the future. To give the user a complete overview there could be a summery node showing all the overrides. > > Cheers To support my friend's comments here, the Nodal graph which evaluates to a path expression would be the most future proof implementation IMHO. Btw, light linking is really a necessity when doing reusable setups for episodic work. I can't even phantom working with a renderer that does not support it.

To support my friend's comments here, the Nodal graph which evaluates to a path expression would be the most future proof implementation IMHO. Btw, light linking is really a necessity when doing reusable setups for episodic work. I can't even phantom working with a renderer that does not support it.

You and many people, most lighting and compositing artists I know dont even consider using Blender/Cycles just for this limitation alone.

> To support my friend's comments here, the Nodal graph which evaluates to a path expression would be the most future proof implementation IMHO. Btw, light linking is really a necessity when doing reusable setups for episodic work. I can't even phantom working with a renderer that does not support it. You and many people, most lighting and compositing artists I know dont even consider using Blender/Cycles just for this limitation alone.

Removed subscriber: @jimix85

Removed subscriber: @jimix85

In #68915#1297777, @NunoAlexandreConceicao wrote:

To support my friend's comments here, the Nodal graph which evaluates to a path expression would be the most future proof implementation IMHO. Btw, light linking is really a necessity when doing reusable setups for episodic work. I can't even phantom working with a renderer that does not support it.

You and many people, most lighting and compositing artists I know dont even consider using Blender/Cycles just for this limitation alone.

Yeah, I completely agree with you. I'm a lighting artist and I'm working in the industry and I know for sure that lot of people don't want to use blender because light linking and light aov doesn't exist.

In fact that wrong, it's possible to do light aov and light linking in blender, it's pretty primitive and a little bit messy to do it but it's possible. As light aov will be implemented in blender 3.2 (if I'm not wrong) it's maybe possible to also implement light linking if we found a usable UI and if it's devlopped.

I also agree with the fact that light linking in a nodal system will be a good things. As blender said for blender 3.0 "everything node", this is the objectif. And light aov, light linking and lighting also should be nodal.

But in a first step I think just having light linking even if it's not nodal is primordial and we need to have. I do some proposition previously, I'm still working on it and trying to found a "good way" to implement it in a simple blender UI way.

Parallel to that I'm also trying to imagine a nodal way/interface (I'm only thinking about UI because I have no knowledge about C/C++). Because I don't have a lot of time after working, I'm hoping show you that in few weeks.

> In #68915#1297777, @NunoAlexandreConceicao wrote: > >> To support my friend's comments here, the Nodal graph which evaluates to a path expression would be the most future proof implementation IMHO. Btw, light linking is really a necessity when doing reusable setups for episodic work. I can't even phantom working with a renderer that does not support it. > > You and many people, most lighting and compositing artists I know dont even consider using Blender/Cycles just for this limitation alone. Yeah, I completely agree with you. I'm a lighting artist and I'm working in the industry and I know for sure that lot of people don't want to use blender because light linking and light aov doesn't exist. In fact that wrong, it's possible to do light aov and light linking in blender, it's pretty primitive and a little bit messy to do it but it's possible. As light aov will be implemented in blender 3.2 (if I'm not wrong) it's maybe possible to also implement light linking if we found a usable UI and if it's devlopped. I also agree with the fact that light linking in a nodal system will be a good things. As blender said for blender 3.0 "everything node", this is the objectif. And light aov, light linking and lighting also should be nodal. But in a first step I think just having light linking even if it's not nodal is primordial and we need to have. I do some proposition previously, I'm still working on it and trying to found a "good way" to implement it in a simple blender UI way. Parallel to that I'm also trying to imagine a nodal way/interface (I'm only thinking about UI because I have no knowledge about C/C++). Because I don't have a lot of time after working, I'm hoping show you that in few weeks.

Hi guys !

As mention before, this is a little presentation of what a light linking in nodal could be. This is a rough and lots of things can be added or simplify. This is based on what already exist in the shader graph.(Node color is simply for comprehension purpose)

  • Global Illumination simply said if the light illuminate all the scene it's a boolean value (can't be 0.1, 0.2, 0.003 etc only 0 or 1).
  • Include/Exclude is also a boolean value (can't be 0.1, 0.2, 0.003 etc only 0 or 1).
  • Combine Emission is dynamic, it's automatically create a new input "Emission" when the previous one is plug.
  • Collecioin Linking only look for Collections in the scene.
  • Geometry Linking only look for Geometries in the scene.

Light Nodal.png

Hi guys ! As mention before, this is a little presentation of what a light linking in nodal could be. This is a rough and lots of things can be added or simplify. This is based on what already exist in the shader graph.(Node color is simply for comprehension purpose) - Global Illumination simply said if the light illuminate all the scene it's a boolean value (can't be 0.1, 0.2, 0.003 etc only 0 or 1). - Include/Exclude is also a boolean value (can't be 0.1, 0.2, 0.003 etc only 0 or 1). - Combine Emission is dynamic, it's automatically create a new input "Emission" when the previous one is plug. - Collecioin Linking only look for Collections in the scene. - Geometry Linking only look for Geometries in the scene. ![Light Nodal.png](https://archive.blender.org/developer/F12835805/Light_Nodal.png)

Added subscriber: @makizar

Added subscriber: @makizar

Added subscriber: @Yuro

Added subscriber: @Yuro

Added subscriber: @etlaM21

Added subscriber: @etlaM21

Added subscriber: @zx

Added subscriber: @zx

Added subscriber: @htuncay-4

Added subscriber: @htuncay-4

**Each light (standard light & mesh light) needs a dropdown menu for everything that can be lit and is in the actual scene file (switched on/off) + linked groups or meshes from other blendfiles.
By defauls everything + groups gets added to this dropdown list of each light .

THEN: everything that gets selected will be visually marked in each Light Exlude List and be excluded from the light being lit.

These lights with each exclude dropdown list can be put into light groups for compositing etc.
(( I don't want to use several nodes for a cryptomask, to use this mask to mask out parts of lights...)) That's the worst solution ever in 2022 !

That's the basics of comparing of known solutions. **

//Those single node setups aren't a solution at all. Just think of any scene for the last blender movie.
If you manage all those lights and the light groups via nodes, you can hire another company to do this job.//

There are many solutions from other major 3d apps, that do it well for years.
I would compare all of them, get the best and fastest workflow solution out of it AND fit the coding around it.

**Because, if this is logistically and workflow friendly coded, the work with light linking and groups is done ONCE by the team and devs,
otherwise all users will spend every day a huge amount of time to incl., excl. & light grouping via nodes + many windows to tell what lightgroups. etc...
**
I already tested the light groups, and it's a lot of work. It works, that's ok so far.
Only thing I noticed is with a lightgroups setup, you change the name of the lightgroup after you applied a light to it, the new lightgroup name won't get updated for the light in that group.
But to much trouble for 3 lights + a few grading layers to change the lights...
And that's just the lights, the rest in the compositor comes into the game as well, and makes the updates in the compositor a lot slower.

And for example you do your denoising yourself, you have to include/integrate those lightgroups into the denoise tree, otherwise... :-)

Hope that makes sense!

**Each light (standard light & mesh light) needs a dropdown menu for everything that can be lit and is in the actual scene file (switched on/off) + linked groups or meshes from other blendfiles. By defauls everything + groups gets added to this dropdown list of each light . THEN: everything that gets selected will be visually marked in each Light Exlude List and be excluded from the light being lit. These lights with each exclude dropdown list can be put into light groups for compositing etc. (( I don't want to use several nodes for a cryptomask, to use this mask to mask out parts of lights...)) That's the worst solution ever in 2022 ! That's the basics of comparing of known solutions. ** //Those single node setups aren't a solution at all. Just think of any scene for the last blender movie. If you manage all those lights and the light groups via nodes, you can hire another company to do this job.// There are many solutions from other major 3d apps, that do it well for years. I would compare all of them, get the best and fastest workflow solution out of it AND fit the coding around it. **Because, if this is logistically and workflow friendly coded, the work with light linking and groups is done ONCE by the team and devs, otherwise all users will spend every day a huge amount of time to incl., excl. & light grouping via nodes + many windows to tell what lightgroups. etc... ** I already tested the light groups, and it's a lot of work. It works, that's ok so far. Only thing I noticed is with a lightgroups setup, you change the name of the lightgroup after you applied a light to it, the new lightgroup name won't get updated for the light in that group. But to much trouble for 3 lights + a few grading layers to change the lights... And that's just the lights, the rest in the compositor comes into the game as well, and makes the updates in the compositor a lot slower. And for example you do your denoising yourself, you have to include/integrate those lightgroups into the denoise tree, otherwise... :-) Hope that makes sense!

Added subscriber: @Fynn-Ribbeck

Added subscriber: @Fynn-Ribbeck

Added subscriber: @Gurra

Added subscriber: @Gurra

Maya have a pretty easy but elegant solution, a light centric list and an object centric list. In the light centric one you have a list of all the lights to the left where you select one or more lights and on the right you have a list where you can deselect or select objects to be light linked to the light on the left. In the object centric list it's the other way around; you select one or more object and in the light list you can deselect or select whichever lights you want to be linked to that/those objects. No sure if there are any better way than this to do it. I did try the one in E-Cycles and it wasn't nearly as easy to use as Mayas, and also it was bugged, started to kind of "bleed through" the bigger you made the light source.

Maya have a pretty easy but elegant solution, a light centric list and an object centric list. In the light centric one you have a list of all the lights to the left where you select one or more lights and on the right you have a list where you can deselect or select objects to be light linked to the light on the left. In the object centric list it's the other way around; you select one or more object and in the light list you can deselect or select whichever lights you want to be linked to that/those objects. No sure if there are any better way than this to do it. I did try the one in E-Cycles and it wasn't nearly as easy to use as Mayas, and also it was bugged, started to kind of "bleed through" the bigger you made the light source.

Added subscriber: @glencandle-3

Added subscriber: @glencandle-3

So I just read this thread and I feel like there is a solution being overlooked here:

  • In the properties tab for each light why not simply have a list of objects to exclude from being illuminated by said light?

  • Conversely you could also specify only objects that will be illuminated by said light.

Wouldn't this be the simplest solution to the problem here? (Not from a code perspective, of course, but as far as functionality.)

So I just read this thread and I feel like there is a solution being overlooked here: - In the properties tab for each light why not simply have a list of objects to exclude from being illuminated by said light? - Conversely you could also specify only objects that will be illuminated by said light. Wouldn't this be the simplest solution to the problem here? (Not from a code perspective, of course, but as far as functionality.)

@glencandle-3
So then managing many lights,, you have to go to each light instead of the manager that keeps all of the lights/objects in one place.
Also Gurra already explained using lights or objects.

Light manager working in many industry 3d apps in both ways already.

@glencandle-3 So then managing many lights,, you have to go to each light instead of the manager that keeps all of the lights/objects in one place. Also Gurra already explained using lights or objects. Light manager working in many industry 3d apps in both ways already.

Anytime a function, a tool or whatever is designed, it should be reduced to the most basic way to do it. If you want to move, scale or rotate an object, you select it and move/scale/rotate it.

Light linking should work the same way. What do you want to do? I want this light to only effect that object. It should be as simple as that. That can only be done with a simple and clean user interface.

The first thing to consider is that lights illuminate everything by default. If you want to do light linking, you first need to tell the light NOT to illuminate everything. Just a check box. Because if you want that light to illuminate only one object out of 5000, you don't want to uncheck 4999 objects.

So now you have a light that does nothing. And from the GUI, you just select the meshes, collections or shaders you want the light to affect. Yes, collections and shaders should be included in the light linking process.

The last thing I want is to have to go to the object properties, find a sub menu somewhere and do this one by one, like it's the case for light groups. It's unmanageable one huge scenes. A user interface is a must.

This is exactly what I talked about in my lastest YT clip. Some people in the comments wrote that E-Cycles and K-Cycles have interesting solutions for that. I don't use them so I can't tell.

Anytime a function, a tool or whatever is designed, it should be reduced to the most basic way to do it. If you want to move, scale or rotate an object, you select it and move/scale/rotate it. Light linking should work the same way. What do you want to do? I want this light to only effect that object. It should be as simple as that. That can only be done with a simple and clean user interface. The first thing to consider is that lights illuminate everything by default. If you want to do light linking, you first need to tell the light NOT to illuminate everything. Just a check box. Because if you want that light to illuminate only one object out of 5000, you don't want to uncheck 4999 objects. So now you have a light that does nothing. And from the GUI, you just select the meshes, collections or shaders you want the light to affect. Yes, collections and shaders should be included in the light linking process. The last thing I want is to have to go to the object properties, find a sub menu somewhere and do this one by one, like it's the case for light groups. It's unmanageable one huge scenes. A user interface is a must. This is exactly what I talked about in my lastest YT clip. Some people in the comments wrote that E-Cycles and K-Cycles have interesting solutions for that. I don't use them so I can't tell.

@Nurb2Kea a separate 'manager' sounds messy and over complicated in my opinion, but regardless if there was any kind of way to eliminate objects from lights it would make a world of difference

@Nurb2Kea a separate 'manager' sounds messy and over complicated in my opinion, but regardless if there was any kind of way to eliminate objects from lights it would make a world of difference

Added subscriber: @tempdevnova

Added subscriber: @tempdevnova

Hi, apart from wanting to say that I have been longing for this feature for a long time I also want to give some input from the user side:

As someone who works on large scenes with up to hundreds of objects I think that a layer system like what we had with Blender before collections were introduced (so prior to 2.8) would be very limiting and quite frankly a horrible experience for the user.
Having the objects included/excluded by the lights be listed like e.g. vertex group would be an option, but if there are many objects in this lists (possibly hundreds), the list would get ridiculously long and the user experience would probably be worse than with an layer system.
However this could be supplemented by a collection like system, so that the tab would become something like the outliner.
As for excluding/including lights, I think just adding one of the options is sufficient as objects that are not included are automatically excluded, meaning adding both options would just be redundant. Instead we could make it such that the user decides whether objects that are listed in the "light linking" tab should be included or excluded by an e.g. tickbox.

Hi, apart from wanting to say that I have been longing for this feature for a long time I also want to give some input from the user side: As someone who works on large scenes with up to hundreds of objects I think that a layer system like what we had with Blender before collections were introduced (so prior to 2.8) would be very limiting and quite frankly a horrible experience for the user. Having the objects included/excluded by the lights be listed like e.g. vertex group would be an option, but if there are many objects in this lists (possibly hundreds), the list would get ridiculously long and the user experience would probably be worse than with an layer system. However this could be supplemented by a collection like system, so that the tab would become something like the outliner. As for excluding/including lights, I think just adding one of the options is sufficient as objects that are not included are automatically excluded, meaning adding both options would just be redundant. Instead we could make it such that the user decides whether objects that are listed in the "light linking" tab should be included or excluded by an e.g. tickbox.

Some kind of editor like the outliner but for both light linking and light groups. Objects, lights, shading groups or collection can be "parented" to a "linking parent". The LG is to define if we want it do be rendered as a light group (otherwise it's light linking),

It will become messy thought with the render layers on top of that.

Screen Shot 2022-04-17 at 2.41.14 PM.jpg

Some kind of editor like the outliner but for both light linking and light groups. Objects, lights, shading groups or collection can be "parented" to a "linking parent". The LG is to define if we want it do be rendered as a light group (otherwise it's light linking), It will become messy thought with the render layers on top of that. ![Screen Shot 2022-04-17 at 2.41.14 PM.jpg](https://archive.blender.org/developer/F13006634/Screen_Shot_2022-04-17_at_2.41.14_PM.jpg)

An elegant solution would be to use a node based approach, specifically using light nodes. What I have in mind is something that works like the light path node where it would have a list of object to include and exclude and give a boolean value depending on whether or not the ray hitting the lamp is in that list or not. This output could then be used to drive the behaviour of the lamp, giving the artist great flexibility.
Of course this would mean that the list might become very long including possibly hundreds of objects which is why this should be supplemented by a collection like system, so that we would have something like an outliner within that node.

An elegant solution would be to use a node based approach, specifically using light nodes. What I have in mind is something that works like the light path node where it would have a list of object to include and exclude and give a boolean value depending on whether or not the ray hitting the lamp is in that list or not. This output could then be used to drive the behaviour of the lamp, giving the artist great flexibility. Of course this would mean that the list might become very long including possibly hundreds of objects which is why this should be supplemented by a collection like system, so that we would have something like an outliner within that node.

Added subscriber: @MrAlwis

Added subscriber: @MrAlwis

Are y'all still working on the UI or have y'all moved onto development of the logic?

Are y'all still working on the UI or have y'all moved onto development of the logic?

Added subscriber: @DanielVesterbaekJensen

Added subscriber: @DanielVesterbaekJensen

I think lightgroups and light linking would be two differente and separate things. Also a proposition about a "Collection" system have still made and this proposition was push out by Brecht(as tout CAN see 8n the next quotation) Don't know if it's the case or not but pls read previous post before posting :)

In #68915#1243582, @brecht wrote:
@dfelinto is not involved in the design of this, he created the task but the contents was written by me. I updated it now based on the latest discussions we had around D11636.

There are two parts to this, one is how the data structure is designed, and the other how is how the UI is presented for it. In terms of the data structures we will likely just have a collection per light object, that determines which other objects it illuminates, with some control over lighting being added or exclusive.

There's a reason that relation goes light -> object, which is that it's the best fit for a typical production setup where you link in the the same characters and props many times, but in each shot might set up different lights. If the relation would go from object -> light, you'd need to add overrides on the objects and things get more complicated. However you can still present both object -> light and light -> object relation views in the UI, while having a simpler underlying data structure, which is what other applications do. And you can have tools to easily create relations based on selected objects, etc.

The first iteration of this will likely be relative simple, and a more advanced UI would be in a second step. Add-ons can also present things in different ways.

I don't think a data structure and UI in the outliner as presented by @1D_Inc, @Eqkoss and @3di works well. In a production setup, if you want to for example add a light that adds a specular highlight on just the eyes of one character, you do not want to have to modify the collection hierarchy of that character in every shot. You want to leave the scene hierarchy unchanged, and instead adds some relations on top of it. Potentially something could be displayed or edited in the outliner, but I don't see it working well as part of the existing "Scenes" and "View Layer" views in the outliner.

I don't think we should support this at the material/shader level, it adds a lot of complexity and as far as I know it's not really a feature in other production renderers either. I don't think it makes a lot of sense anyway as a material can be re-used on many objects in the scene that may have little relation to each other. This is how it worked in Blender Internal, but I think that's the wrong design.

In reference to this instruction, I think the first step (to keep it as simple as possible) is to only create an exclude mode first. (I think this was suggest before).
In fact all lights are include by default.
The interface to manage it, could be a simple tag system. I will try to made a little mockup to five a visual to this proposition and a better explanation

I think lightgroups and light linking would be two differente and separate things. Also a proposition about a "Collection" system have still made and this proposition was push out by Brecht(as tout CAN see 8n the next quotation) Don't know if it's the case or not but pls read previous post before posting :) > In #68915#1243582, @brecht wrote: > @dfelinto is not involved in the design of this, he created the task but the contents was written by me. I updated it now based on the latest discussions we had around [D11636](https://archive.blender.org/developer/D11636). > > There are two parts to this, one is how the data structure is designed, and the other how is how the UI is presented for it. In terms of the data structures we will likely just have a collection per light object, that determines which other objects it illuminates, with some control over lighting being added or exclusive. > > There's a reason that relation goes light -> object, which is that it's the best fit for a typical production setup where you link in the the same characters and props many times, but in each shot might set up different lights. If the relation would go from object -> light, you'd need to add overrides on the objects and things get more complicated. However you can still present both object -> light and light -> object relation views in the UI, while having a simpler underlying data structure, which is what other applications do. And you can have tools to easily create relations based on selected objects, etc. > > The first iteration of this will likely be relative simple, and a more advanced UI would be in a second step. Add-ons can also present things in different ways. > > I don't think a data structure and UI in the outliner as presented by @1D_Inc, @Eqkoss and @3di works well. In a production setup, if you want to for example add a light that adds a specular highlight on just the eyes of one character, you do not want to have to modify the collection hierarchy of that character in every shot. You want to leave the scene hierarchy unchanged, and instead adds some relations on top of it. Potentially something could be displayed or edited in the outliner, but I don't see it working well as part of the existing "Scenes" and "View Layer" views in the outliner. > > I don't think we should support this at the material/shader level, it adds a lot of complexity and as far as I know it's not really a feature in other production renderers either. I don't think it makes a lot of sense anyway as a material can be re-used on many objects in the scene that may have little relation to each other. This is how it worked in Blender Internal, but I think that's the wrong design. In reference to this instruction, I think the first step (to keep it as simple as possible) is to only create an exclude mode first. (I think this was suggest before). In fact all lights are include by default. The interface to manage it, could be a simple tag system. I will try to made a little mockup to five a visual to this proposition and a better explanation

In my opinion

  • Light Groups are ok to be handled with tagging system - maybe utilize 2.7 groups chassis, which is a tagging system which was originally designed for similar purposes, solving tasks like "select objects that belongs to the Light Group of an active object" or "assign Light Group from active object to selected objects". The only difference is that Light Groups are not cumulative - you cannot place the same object to several Light Groups, which is reasonable since this allow to avoid doubling lights in compositing. This way Light Groups are structurally closer to Common Groups system (like in Inkscape or Sketchup) but without ability grouping groups.

  • Light Linking is better to be handled with double ui list, since it is a cross-hierarchical system that operates with named lights-objects dependencies, but it is cumulative as well, so you can place the same object into different Light Links. This way Light Linking is structurally closer to tagging systems such as 2.7 groups system.

In my opinion - Light Groups are ok to be handled with tagging system - maybe utilize 2.7 groups chassis, which is a tagging system which was originally designed for similar purposes, solving tasks like "select objects that belongs to the Light Group of an active object" or "assign Light Group from active object to selected objects". The only difference is that Light Groups are not cumulative - you cannot place the same object to several Light Groups, which is reasonable since this allow to avoid doubling lights in compositing. This way Light Groups are structurally closer to Common Groups system (like in Inkscape or Sketchup) but without ability grouping groups. - Light Linking is better to be handled with double ui list, since it is a cross-hierarchical system that operates with named lights-objects dependencies, but it is cumulative as well, so you can place the same object into different Light Links. This way Light Linking is structurally closer to tagging systems such as 2.7 groups system.

With all those inspirations we should not forget that, however it will be implemented it must be animatable as well.
(Thinking of fade transitions etc.)

And it needs a manager like the outliner for example, otherwise you won't be able to manage big scenes if you have to select each light and/or object in one or two sidebars.

With all those inspirations we should not forget that, however it will be implemented it must be ***animatable*** as well. (Thinking of fade transitions etc.) And it needs a manager like the outliner for example, otherwise you won't be able to manage big scenes if you have to select each light and/or object in one or two sidebars.

Removed subscriber: @Rockbard

Removed subscriber: @Rockbard

Added subscriber: @MrJ-2

Added subscriber: @MrJ-2

In reference to this instruction, I think the first step (to keep it as simple as possible) is to only create an exclude mode first. (I think this was suggest before).
In fact all lights are include by default.

I humbly disagree with this notion. Having the ability to only link a certain light to an object via an Include list will in many cases be WAY faster than excluding all other lights. It's been years since I last used C4D, but I seem to remember that it had both an include and exclude list, and I found it extremely intuitive and easy to work with. Oversimplification will do the feature a disservice in my opinion.

> In reference to this instruction, I think the first step (to keep it as simple as possible) is to only create an exclude mode first. (I think this was suggest before). > In fact all lights are include by default. I humbly disagree with this notion. Having the ability to only link a certain light to an object via an Include list will in many cases be WAY faster than excluding all other lights. It's been years since I last used C4D, but I seem to remember that it had both an include and exclude list, and I found it extremely intuitive and easy to work with. Oversimplification will do the feature a disservice in my opinion.

Added subscriber: @blackpepperjam

Added subscriber: @blackpepperjam

Added subscriber: @NEEO

Added subscriber: @NEEO

Hi dear dev!
Lighting link is a basic function that every DDC must have. I've been a user of maya for many years, its lighting link UI design is very easy to understand, it would be best if we can refer to it.
BTW, I'm curious what's going on here from 2019 till now? why hasn't blender had this basic feature in 3 years?

Hi dear dev! Lighting link is a basic function that every DDC must have. I've been a user of maya for many years, its lighting link UI design is very easy to understand, it would be best if we can refer to it. BTW, I'm curious what's going on here from 2019 till now? why hasn't blender had this basic feature in 3 years?

This comment was removed by @NEEO

*This comment was removed by @NEEO*

It’s kinda forbidden to reference other software, but I like this light linking way of working. Blender could improve on it by making the selection easy to understand with icon toggles, same as the outliner. This turning blue thing is confusing and just looks like a random selection. It’s a clear opportunity for Blender to build the best and hopefully visual solution.

It’s kinda forbidden to reference other software, but I like this light linking way of working. Blender could improve on it by making the selection easy to understand with icon toggles, same as the outliner. This turning blue thing is confusing and just looks like a random selection. It’s a clear opportunity for Blender to build the best and hopefully visual solution.

In #68915#1367653, @NEEO wrote:
Hi dear dev!
Lighting link is a basic function that every DDC must have. I've been a user of maya for many years, its lighting link UI design is very easy to understand, it would be best if we can refer to it.
BTW, I'm curious what's going on here from 2019 till now? why hasn't blender had this basic feature in 3 years?

Hi Neo,

We already talk about that Idea on previous posts.
The main point is that we can't just copy past that.
Also create a double ui list is not simple as that, it need to create a light linking UI and dev adapted to Blender and as you can know, blender is not programming as maya or other software.
It's also difficult to create a proper UI without the backend programmation because it's often staying at the speculation step.

Moreover, do not post images from other software. If I'm not wrong, it's forbidden, so carefull :)

As I mentionned on previous posts, creating a double ui list for light linking (or other template) is in my todo liste, but I don't have the time to work on it at the moment and that's not so easy... I Hope someone will create and share some Idea(code) here.

> In #68915#1367653, @NEEO wrote: > Hi dear dev! > Lighting link is a basic function that every DDC must have. I've been a user of maya for many years, its lighting link UI design is very easy to understand, it would be best if we can refer to it. > BTW, I'm curious what's going on here from 2019 till now? why hasn't blender had this basic feature in 3 years? Hi Neo, We already talk about that Idea on previous posts. The main point is that we can't just copy past that. Also create a double ui list is not simple as that, it need to create a light linking UI and dev adapted to Blender and as you can know, blender is not programming as maya or other software. It's also difficult to create a proper UI without the backend programmation because it's often staying at the speculation step. Moreover, do not post images from other software. If I'm not wrong, it's forbidden, so carefull :) As I mentionned on previous posts, creating a double ui list for light linking (or other template) is in my todo liste, but I don't have the time to work on it at the moment and that's not so easy... I Hope someone will create and share some Idea(code) here.

Resources are limited, many other features made it, for example Light Groups and NME for 3.2, there is one person working on this that cannot dedicate full time, if you can find a developer that want to help, you are mostly welcome, we all agree that it is an important feature, but resources are required for it to be developed and this is as important as other features :)

Regarding the Maya reference, no, it cannot be used as a reference due to copy right matters, so if you want to explain your vision of how the feature may work it will be great, but you have to explain it from the ground up, no references to other softwares at all.

P.S.: please @NEEO delete those pictures, they are breaking the rules :)

Resources are limited, many other features made it, for example Light Groups and NME for 3.2, there is one person working on this that cannot dedicate full time, if you can find a developer that want to help, you are mostly welcome, we all agree that it is an important feature, but resources are required for it to be developed and this is as important as other features :) Regarding the Maya reference, no, it cannot be used as a reference due to copy right matters, so if you want to explain your vision of how the feature may work it will be great, but you have to explain it from the ground up, no references to other softwares at all. P.S.: please @NEEO delete those pictures, they are breaking the rules :)

IMHO the UI for light linking should be represented in Nodes, in the same way we handle objects/collections in GN, the lights already have a nodes UI and it can be leveraged for this.

IMHO the UI for light linking should be represented in Nodes, in the same way we handle objects/collections in GN, the lights already have a nodes UI and it can be leveraged for this.

IMHO the UI for light linking should be represented in Nodes

That could be a complete mess for complex jobs. How would you handle parented objects? Like I want the light linked only on the windshield but not the reste of the car.

> IMHO the UI for light linking should be represented in Nodes That could be a complete mess for complex jobs. How would you handle parented objects? Like I want the light linked only on the windshield but not the reste of the car.

In #68915#1367658, @juang3d wrote:
IMHO the UI for light linking should be represented in Nodes, in the same way we handle objects/collections in GN, the lights already have a nodes UI and it can be leveraged for this.

I think the idea is rather good, it echoes the geometry nodes and the will of Blender: "everything nodes".
I don’t know much but I know that this system already exists in other softwares like Guerilla (and Houdini?)
From what I know, it seems a little less "friendly users", however it seems to be more dynamic.
However, it must not be easy to implement.
In terms of nodes, I also agree with you, there are already nodes for lights that have in my opinion no usefulness (or at least I never needed them). It may indeed be appropriate to exploit them.
it refers to a proposal I made earlier, which, I agree, is not perfect:

In #68915#1297857, @Eqkoss wrote:
Hi guys !

As mention before, this is a little presentation of what a light linking in nodal could be. This is a rough and lots of things can be added or simplify. This is based on what already exist in the shader graph.(Node color is simply for comprehension purpose)

  • Global Illumination simply said if the light illuminate all the scene it's a boolean value (can't be 0.1, 0.2, 0.003 etc only 0 or 1).
  • Include/Exclude is also a boolean value (can't be 0.1, 0.2, 0.003 etc only 0 or 1).
  • Combine Emission is dynamic, it's automatically create a new input "Emission" when the previous one is plug.
  • Collecioin Linking only look for Collections in the scene.
  • Geometry Linking only look for Geometries in the scene.

Light Nodal.png

> In #68915#1367658, @juang3d wrote: > IMHO the UI for light linking should be represented in Nodes, in the same way we handle objects/collections in GN, the lights already have a nodes UI and it can be leveraged for this. I think the idea is rather good, it echoes the geometry nodes and the will of Blender: "everything nodes". I don’t know much but I know that this system already exists in other softwares like Guerilla (and Houdini?) From what I know, it seems a little less "friendly users", however it seems to be more dynamic. However, it must not be easy to implement. In terms of nodes, I also agree with you, there are already nodes for lights that have in my opinion no usefulness (or at least I never needed them). It may indeed be appropriate to exploit them. it refers to a proposal I made earlier, which, I agree, is not perfect: > In #68915#1297857, @Eqkoss wrote: > Hi guys ! > > As mention before, this is a little presentation of what a light linking in nodal could be. This is a rough and lots of things can be added or simplify. This is based on what already exist in the shader graph.(Node color is simply for comprehension purpose) > > - Global Illumination simply said if the light illuminate all the scene it's a boolean value (can't be 0.1, 0.2, 0.003 etc only 0 or 1). > - Include/Exclude is also a boolean value (can't be 0.1, 0.2, 0.003 etc only 0 or 1). > - Combine Emission is dynamic, it's automatically create a new input "Emission" when the previous one is plug. > - Collecioin Linking only look for Collections in the scene. > - Geometry Linking only look for Geometries in the scene. > > ![Light Nodal.png](https://archive.blender.org/developer/F12835805/Light_Nodal.png)

there are already nodes for lights that have in my opinion no usefulness

You might want to check this out: https://www.youtube.com/watch?v=C4UM57HAt0E&t=4s

> there are already nodes for lights that have in my opinion no usefulness You might want to check this out: https://www.youtube.com/watch?v=C4UM57HAt0E&t=4s

In #68915#1367668, @Funnybob wrote:

there are already nodes for lights that have in my opinion no usefulness

You might want to check this out: https://www.youtube.com/watch?v=C4UM57HAt0E&t=4s

Indeed make sens !
But never used it, thanks for the link mate :)

> In #68915#1367668, @Funnybob wrote: >> there are already nodes for lights that have in my opinion no usefulness > You might want to check this out: https://www.youtube.com/watch?v=C4UM57HAt0E&t=4s Indeed make sens ! But never used it, thanks for the link mate :)

In #68915#1367665, @Funnybob wrote:

IMHO the UI for light linking should be represented in Nodes

That could be a complete mess for complex jobs. How would you handle parented objects? Like I want the light linked only on the windshield but not the reste of the car.

GN can be quite complex, managing a big amount of objects / instances / geometry sources / curves / point clouds, and it’s very manageable, pretty clear and easy to manage.

Besides remember that the node tree is per light, so we are talking from a light to object perspective here, in the end it’s pretty similar to what other packages do, but node based.

Also if you want to manage big amount of lights as one nothing stops the system to have an aggregator to manage that “group” of lights in conjunction instead of using the light node tree.

Nodes can be quite flexible :)

> In #68915#1367665, @Funnybob wrote: >> IMHO the UI for light linking should be represented in Nodes > > That could be a complete mess for complex jobs. How would you handle parented objects? Like I want the light linked only on the windshield but not the reste of the car. GN can be quite complex, managing a big amount of objects / instances / geometry sources / curves / point clouds, and it’s very manageable, pretty clear and easy to manage. Besides remember that the node tree is per light, so we are talking from a light to object perspective here, in the end it’s pretty similar to what other packages do, but node based. Also if you want to manage big amount of lights as one nothing stops the system to have an aggregator to manage that “group” of lights in conjunction instead of using the light node tree. Nodes can be quite flexible :)

Removed subscriber: @cschumann

Removed subscriber: @cschumann

In #68915#1367677, @juang3d wrote:

In #68915#1367665, @Funnybob wrote:

IMHO the UI for light linking should be represented in Nodes

That could be a complete mess for complex jobs. How would you handle parented objects? Like I want the light linked only on the windshield but not the reste of the car.

GN can be quite complex, managing a big amount of objects / instances / geometry sources / curves / point clouds, and it’s very manageable, pretty clear and easy to manage.

Besides remember that the node tree is per light, so we are talking from a light to object perspective here, in the end it’s pretty similar to what other packages do, but node based.

Also if you want to manage big amount of lights as one nothing stops the system to have an aggregator to manage that “group” of lights in conjunction instead of using the light node tree.

Nodes can be quite flexible :)

Really good explanation, I agree with that.

Moreover, nothing prevents to extend it later to object to light perpespective (if usefull)

> In #68915#1367677, @juang3d wrote: >> In #68915#1367665, @Funnybob wrote: >>> IMHO the UI for light linking should be represented in Nodes >> >> That could be a complete mess for complex jobs. How would you handle parented objects? Like I want the light linked only on the windshield but not the reste of the car. > > GN can be quite complex, managing a big amount of objects / instances / geometry sources / curves / point clouds, and it’s very manageable, pretty clear and easy to manage. > > Besides remember that the node tree is per light, so we are talking from a light to object perspective here, in the end it’s pretty similar to what other packages do, but node based. > > Also if you want to manage big amount of lights as one nothing stops the system to have an aggregator to manage that “group” of lights in conjunction instead of using the light node tree. > > Nodes can be quite flexible :) Really good explanation, I agree with that. Moreover, nothing prevents to extend it later to object to light perpespective (if usefull)

Just wanted to throw in that as long as the low-level implementation allows one to express all the needed lighting relationships, and it has a good Python API interface, then it should be possible to write add-ons that allow creation and display of the information in whatever way the add-on implementer(s) think best. I would thus suggest focusing at first on the low-level functionality and get that implementation out there with a minimal UI (or even no UI) and let people experiment and find out what works well, rather than feeling like you need to invent the perfect UI which will be all things to all users from the beginning.

Just wanted to throw in that as long as the low-level implementation allows one to express all the needed lighting relationships, and it has a good Python API interface, then it should be possible to write add-ons that allow creation and display of the information in whatever way the add-on implementer(s) think best. I would thus suggest focusing at first on the low-level functionality and get that implementation out there with a minimal UI (or even no UI) and let people experiment and find out what works well, rather than feeling like you need to invent the perfect UI which will be all things to all users from the beginning.

OOOh, I didn't expect so many replies overnight, thank you to everyone who cared about this dev thread. BTW, sry, I'm not familiar with the rules here, I'm sure the maya screenshots have been deleted.
Maybe we can look at K-CYCLES and E-CYCYLES, which completed the development of the light link earlier and implemented it as UI.
Seriously, I was really surprised to see the 'light groups' appear as node, which undoubtedly made it difficult for ordinary users to understand. Of course, it does not include those who are good at using nodes.
Maybe "everything nodes" encourage people to explore nodes, but it's getting extreme. Yes, I mean 'light groups' is catastrophic, hate to say that but it definitely add time cost, when a new blender user is using these basic functions, they’ll check the UI for the first time, definitely not the nodes, many people will dread including me when blender becomes a ‘pure node editor’.
The software must be user friendly, right?

OOOh, I didn't expect so many replies overnight, thank you to everyone who cared about this dev thread. BTW, sry, I'm not familiar with the rules here, I'm sure the maya screenshots have been deleted. Maybe we can look at K-CYCLES and E-CYCYLES, which completed the development of the light link earlier and implemented it as UI. Seriously, I was really surprised to see the 'light groups' appear as node, which undoubtedly made it difficult for ordinary users to understand. Of course, it does not include those who are good at using nodes. Maybe "everything nodes" encourage people to explore nodes, but it's getting extreme. Yes, I mean 'light groups' is catastrophic, hate to say that but it definitely add time cost, when a new blender user is using these basic functions, they’ll check the UI for the first time, definitely not the nodes, many people will dread including me when blender becomes a ‘pure node editor’. The software must be user friendly, right?

In #68915#1367828, @NEEO wrote:
Maybe we can look at K-CYCLES and E-CYCYLES, which completed the development of the light link earlier and implemented it as UI.

I would suggest to mainly look at E-Cycles because K-Cycles light linking is more like a post processed/composited effect(Once path tracing is done only then it shows the result) whereas E-cycles seems to have light linking that the path tracer acknowledges as it is rendering however the UI of E-cycles is not exactly user friendly.

> In #68915#1367828, @NEEO wrote: > Maybe we can look at K-CYCLES and E-CYCYLES, which completed the development of the light link earlier and implemented it as UI. I would suggest to mainly look at E-Cycles because K-Cycles light linking is more like a post processed/composited effect(Once path tracing is done only then it shows the result) whereas E-cycles seems to have light linking that the path tracer acknowledges as it is rendering however the UI of E-cycles is not exactly user friendly.
Member

Added subscriber: @heabeoun

Added subscriber: @heabeoun

In #68915#1367970, @MrAlwis wrote:

In #68915#1367828, @NEEO wrote:
Maybe we can look at K-CYCLES and E-CYCYLES, which completed the development of the light link earlier and implemented it as UI.

I would suggest to mainly look at E-Cycles because K-Cycles light linking is more like a post processed/composited effect(Once path tracing is done only then it shows the result) whereas E-cycles seems to have light linking that the path tracer acknowledges as it is rendering however the UI of E-cycles is not exactly user friendly.

Thanks for the info, they're actually pretty bad UI look, feel and logic, but they're the only Cycles mod that includes Light Links right now, even though I had to pay for it.
P.S. maya light links UI is the best design so far, there is no shame in borrowing from it.

> In #68915#1367970, @MrAlwis wrote: >> In #68915#1367828, @NEEO wrote: >> Maybe we can look at K-CYCLES and E-CYCYLES, which completed the development of the light link earlier and implemented it as UI. > > I would suggest to mainly look at E-Cycles because K-Cycles light linking is more like a post processed/composited effect(Once path tracing is done only then it shows the result) whereas E-cycles seems to have light linking that the path tracer acknowledges as it is rendering however the UI of E-cycles is not exactly user friendly. Thanks for the info, they're actually pretty bad UI look, feel and logic, but they're the only Cycles mod that includes Light Links right now, even though I had to pay for it. P.S. maya light links UI is the best design so far, there is no shame in borrowing from it.

GN is great, It gives more room for free creation on a low level basis, but some work that relies on UI to be done quickly and intuitively, they just shouldn't all become nodes, it's unwise to add unnecessary complexity to the actual work just for the slogan 'everything nodes'.
Please don't make blender more and more like a coder tool, it should be an artist's brush.
Maybe I'm too used to the rules of maya and c4d, but time will tell.

GN is great, It gives more room for free creation on a low level basis, but some work that relies on UI to be done quickly and intuitively, they just shouldn't all become nodes, it's unwise to add unnecessary complexity to the actual work just for the slogan 'everything nodes'. Please don't make blender more and more like a coder tool, it should be an artist's brush. Maybe I'm too used to the rules of maya and c4d, but time will tell.

Removed subscriber: @tempdevnova

Removed subscriber: @tempdevnova

In #68915#1367828, @NEEO wrote:
Maybe "everything nodes" encourage people to explore nodes, but it's getting extreme.

I could not agree with this more. PLEASE don't over complicate this! A simple INCLUDE/EXCLUDE list with an object picker is all we need.

Want to include entire Collections? Great, just put everything in the same collection. Project can be as simple or complicated as you want to get... without the need for an excessive interface.

> In #68915#1367828, @NEEO wrote: > Maybe "everything nodes" encourage people to explore nodes, but it's getting extreme. I could not agree with this more. PLEASE don't over complicate this! A simple INCLUDE/EXCLUDE list with an object picker is all we need. Want to include entire Collections? Great, just put everything in the same collection. Project can be as simple or complicated as you want to get... without the need for an excessive interface.
Contributor

Removed subscriber: @KevinCBurke

Removed subscriber: @KevinCBurke

Added subscriber: @dursunumit

Added subscriber: @dursunumit

Added subscriber: @Nebulon1212

Added subscriber: @Nebulon1212

Why not start small and work up. If you want to keep it simple for now and avoid having light linking scattered all over the interface, why not just make it part of the object properties like in LightWave (image attached).

Then people could just right-click on the object from Blender's Outliner to bring up a panel that lets you check or uncheck the light that you'd like to exclude.{F13165291} (As I add more lights, they populate the list and it's per-object).

I'm sure, at this point, people would like to have any form of light linking -- even a rudimentary one.

Why not start small and work up. If you want to keep it simple for now and avoid having light linking scattered all over the interface, why not just make it part of the object properties like in LightWave (image attached). Then people could just right-click on the object from Blender's Outliner to bring up a panel that lets you check or uncheck the light that you'd like to exclude.{F13165291} (As I add more lights, they populate the list and it's per-object). I'm sure, at this point, people would like to have any form of light linking -- even a rudimentary one.

In #68915#1374747, @Nebulon1212 wrote:
Why not start small and work up. If you want to keep it simple for now and avoid having light linking scattered all over the interface, why not just make it part of the object properties like in LightWave (image attached).

Then people could just right-click on the object from Blender's Outliner to bring up a panel that lets you check or uncheck the light that you'd like to exclude.{F13165291} (As I add more lights, they populate the list and it's per-object).

I'm sure, at this point, people would like to have any form of light linking -- even a rudimentary one.

I don't think it's smart, when there're too many lights and objects, it will definitely increase the amount of mouse clicks, imagine you have to click on each light or object's property, this may be hundreds of times mouse repeat operation! We just need to add a double list to the render bar, simple, easy and clear, that's all, this is the best way to handle it till this moment.
idea made by someone, just don't do this👇🏼
416C86CB-6EDA-4DB7-81AC-CF810E4A75B0.png

> In #68915#1374747, @Nebulon1212 wrote: > Why not start small and work up. If you want to keep it simple for now and avoid having light linking scattered all over the interface, why not just make it part of the object properties like in LightWave (image attached). > > Then people could just right-click on the object from Blender's Outliner to bring up a panel that lets you check or uncheck the light that you'd like to exclude.{F13165291} (As I add more lights, they populate the list and it's per-object). > > I'm sure, at this point, people would like to have any form of light linking -- even a rudimentary one. I don't think it's smart, when there're too many lights and objects, it will definitely increase the amount of mouse clicks, imagine you have to click on each light or object's property, this may be hundreds of times mouse repeat operation! We just need to add a double list to the render bar, simple, easy and clear, that's all, this is the best way to handle it till this moment. idea made by someone, just don't do this👇🏼 ![416C86CB-6EDA-4DB7-81AC-CF810E4A75B0.png](https://archive.blender.org/developer/F13166157/416C86CB-6EDA-4DB7-81AC-CF810E4A75B0.png)

What does “add a double list to the render bar” mean? What is the render bar?

If the image in your comment is to illustrate what you mean then yes, that is 100% the way to do it. An include/exclude list in the Light properties. This really would be a game changer.

What does “add a double list to the render bar” mean? What is the render bar? If the image in your comment is to illustrate what you mean then yes, that is 100% the way to do it. An include/exclude list in the Light properties. This really would be a game changer.

Sorry, I mean we can add a double list called ‘light linking’ with drop-down in the 'render properties' bar, most of the rendering functions are here, it's also UI logical.
ABB74679-248D-4D2E-873E-B8B242A582E0.jpeg

Sorry, I mean we can add a double list called ‘light linking’ with drop-down in the 'render properties' bar, most of the rendering functions are here, it's also UI logical. ![ABB74679-248D-4D2E-873E-B8B242A582E0.jpeg](https://archive.blender.org/developer/F13166298/ABB74679-248D-4D2E-873E-B8B242A582E0.jpeg)

I don’t see how putting it in the render properties makes sense. You nailed in that second image above, stick an include/exclude list under Light Linking in the Light properties. Simple and powerful.

I don’t see how putting it in the render properties makes sense. You nailed in that second image above, stick an include/exclude list under Light Linking in the Light properties. Simple and powerful.

This feature is a must for an advanced rendering engine.

This feature is a must for an advanced rendering engine.

In #68915#1374800, @NEEO wrote:

In #68915#1374747, @Nebulon1212 wrote:
Why not start small and work up. If you want to keep it simple for now and avoid having light linking scattered all over the interface, why not just make it part of the object properties like in LightWave (image attached).

Then people could just right-click on the object from Blender's Outliner to bring up a panel that lets you check or uncheck the light that you'd like to exclude.{F13165291} (As I add more lights, they populate the list and it's per-object).

I'm sure, at this point, people would like to have any form of light linking -- even a rudimentary one.

I don't think it's smart, when there're too many lights and objects, it will definitely increase the amount of mouse clicks, imagine you have to click on each light or object's property, this may be hundreds of times mouse repeat operation! We just need to add a double list to the render bar, simple, easy and clear, that's all, this is the best way to handle it till this moment.
idea made by someone, just don't do this👇🏼
416C86CB-6EDA-4DB7-81AC-CF810E4A75B0.png

this is right.

> In #68915#1374800, @NEEO wrote: >> In #68915#1374747, @Nebulon1212 wrote: >> Why not start small and work up. If you want to keep it simple for now and avoid having light linking scattered all over the interface, why not just make it part of the object properties like in LightWave (image attached). >> >> Then people could just right-click on the object from Blender's Outliner to bring up a panel that lets you check or uncheck the light that you'd like to exclude.{F13165291} (As I add more lights, they populate the list and it's per-object). >> >> I'm sure, at this point, people would like to have any form of light linking -- even a rudimentary one. > > I don't think it's smart, when there're too many lights and objects, it will definitely increase the amount of mouse clicks, imagine you have to click on each light or object's property, this may be hundreds of times mouse repeat operation! We just need to add a double list to the render bar, simple, easy and clear, that's all, this is the best way to handle it till this moment. > idea made by someone, just don't do this👇🏼 > ![416C86CB-6EDA-4DB7-81AC-CF810E4A75B0.png](https://archive.blender.org/developer/F13166157/416C86CB-6EDA-4DB7-81AC-CF810E4A75B0.png) this is right.

In #68915#1374813, @glencandle-3 wrote:
I don’t see how putting it in the render properties makes sense. You nailed in that second image above, stick an include/exclude list under Light Linking in the Light properties. Simple and powerful.

The meaning I can centrally manage light links here without click properties for each light, it clearly lists exclude and include options, includes all objects and lights in the scene, all operations here, maximize reduction mouse click and makes life easy.

> In #68915#1374813, @glencandle-3 wrote: > I don’t see how putting it in the render properties makes sense. You nailed in that second image above, stick an include/exclude list under Light Linking in the Light properties. Simple and powerful. The meaning I can centrally manage light links here without click properties for each light, it clearly lists exclude and include options, includes all objects and lights in the scene, all operations here, maximize reduction mouse click and makes life easy.

If you have seen maya light linking UI you'll understand that this is a very clever design.

If you have seen maya light linking UI you'll understand that this is a very clever design.

Removed subscriber: @Stinaus

Removed subscriber: @Stinaus

In #68915#1374927, @NEEO wrote:
The meaning I can centrally manage light links here without click properties for each light, it clearly lists exclude and include options, includes all objects and lights in the scene, all operations here, maximize reduction mouse click and makes life easy.

In my opinion this still makes the process over complicated, especially for smaller scale projects, VFX/motion graphics/etc. How many times do you have hundreds of lights in a scene!? I think it is much more common to have only a few lights.

Anecdotally: Imagine you have your scene molded and you start placing your lights. It would be a huge benefit to be able to tweak the light settings (type of light, intensity, color, etc) and include/exclude objects to illuminate, all in one interface, without having to click away. This is a lot easier than your proposed method.

Your solution is very Maya, I will grant you that, but then again Maya is an over-complicated team sport (which is I why I stopped using it) and Blender is better suited for individual artists; so let's just please focus on simplicity.

We can always start here and add a central Light Linking tab later, no?

> In #68915#1374927, @NEEO wrote: > The meaning I can centrally manage light links here without click properties for each light, it clearly lists exclude and include options, includes all objects and lights in the scene, all operations here, maximize reduction mouse click and makes life easy. In my opinion this still makes the process over complicated, especially for smaller scale projects, VFX/motion graphics/etc. How many times do you have hundreds of lights in a scene!? I think it is much more common to have only a few lights. Anecdotally: Imagine you have your scene molded and you start placing your lights. It would be a huge benefit to be able to tweak the light settings (type of light, intensity, color, etc) and include/exclude objects to illuminate, all in one interface, without having to click away. This is a lot easier than your proposed method. Your solution is very Maya, I will grant you that, but then again Maya is an over-complicated team sport (which is I why I stopped using it) and Blender is better suited for individual artists; so let's just please focus on simplicity. We can always start here and add a central Light Linking tab later, no?

In #68915#1375094, @glencandle-3 wrote:

In #68915#1374927, @NEEO wrote:
The meaning I can centrally manage light links here without click properties for each light, it clearly lists exclude and include options, includes all objects and lights in the scene, all operations here, maximize reduction mouse click and makes life easy.

In my opinion this still makes the process over complicated, especially for smaller scale projects, VFX/motion graphics/etc. How many times do you have hundreds of lights in a scene!? I think it is much more common to have only a few lights.

Anecdotally: Imagine you have your scene molded and you start placing your lights. It would be a huge benefit to be able to tweak the light settings (type of light, intensity, color, etc) and include/exclude objects to illuminate, all in one interface, without having to click away. This is a lot easier than your proposed method.

Your solution is very Maya, I will grant you that, but then again Maya is an over-complicated team sport (which is I why I stopped using it) and Blender is better suited for individual artists; so let's just please focus on simplicity.

We can always start here and add a central Light Linking tab later, no?

I have to take this idea with a grain of salt, I just created a medium scale scene that uses 16 lights and you never know how many lights for your next project.
The e-cycles light link makes the mouse run fast and I have to click repeatedly the LL ID of each light and object to make sure it's correct, which is a nightmare as a maya user. (I'm not a fan of maya, but it has advantages)
In any case, I firmly believe that unified operation in a panel without switching is the fastest.
BTW, it looks like the developers have their own ideas and timelines, until then we'll just have to wait or use a 3rd party solution, just hope it won't be another 3 years.

> In #68915#1375094, @glencandle-3 wrote: >> In #68915#1374927, @NEEO wrote: >> The meaning I can centrally manage light links here without click properties for each light, it clearly lists exclude and include options, includes all objects and lights in the scene, all operations here, maximize reduction mouse click and makes life easy. > > In my opinion this still makes the process over complicated, especially for smaller scale projects, VFX/motion graphics/etc. How many times do you have hundreds of lights in a scene!? I think it is much more common to have only a few lights. > > Anecdotally: Imagine you have your scene molded and you start placing your lights. It would be a huge benefit to be able to tweak the light settings (type of light, intensity, color, etc) and include/exclude objects to illuminate, all in one interface, without having to click away. This is a lot easier than your proposed method. > > Your solution is very Maya, I will grant you that, but then again Maya is an over-complicated team sport (which is I why I stopped using it) and Blender is better suited for individual artists; so let's just please focus on simplicity. > > We can always start here and add a central Light Linking tab later, no? I have to take this idea with a grain of salt, I just created a medium scale scene that uses 16 lights and you never know how many lights for your next project. The e-cycles light link makes the mouse run fast and I have to click repeatedly the LL ID of each light and object to make sure it's correct, which is a nightmare as a maya user. (I'm not a fan of maya, but it has advantages) In any case, I firmly believe that unified operation in a panel without switching is the fastest. BTW, it looks like the developers have their own ideas and timelines, until then we'll just have to wait or use a 3rd party solution, just hope it won't be another 3 years.

Any temporary solutions has a problem of crating legacy that is always hard to enhance and maintain.

Any solution with no single access point (like per light setup) has a problem of a setup readability, so it is fast to create, but hard to tweak/edit. The complexity of such a setup grows accordingly to lights count, and is especially critical during collaboration.

Any temporary solutions has a problem of crating legacy that is always hard to enhance and maintain. Any solution with no single access point (like per light setup) has a problem of a setup readability, so it is fast to create, but hard to tweak/edit. The complexity of such a setup grows accordingly to lights count, and is especially critical during collaboration.

The way E-Cycles uses Light Linking is the worst way I have ever seen in a 3D App.
We all have to make sure to not end up with a rubbish solution like E-Cycles is using / offering.
Otherwise you'll be in bad dudu with heavy scenes. Or can you remember what kinda light 3, 11, 45, 47, 89 is !?

Also it's really time to start light linking development, otherwise it will take significant longer to become industry standard .... (not to talk about industry standard keymap.....)

The way E-Cycles uses Light Linking is the worst way I have ever seen in a 3D App. We all have to make sure to not end up with a rubbish solution like E-Cycles is using / offering. Otherwise you'll be in bad dudu with heavy scenes. Or can you remember what kinda light 3, 11, 45, 47, 89 is !? Also it's really time to start light linking development, otherwise it will take significant longer to become industry standard .... (not to talk about industry standard keymap.....)

Yes, it was discussed that dynamic context management system paradign doesnot fit light linking, since names are important there, so context of this system should be static (name-based).

Also it is important to prevent "feature hunger" - a wish for having a desired feature at any cost bypassing proper design, that includes taking into account not only the possibility of fast creating setups, but convenient handling already created setups (proper data management).

Yes, it was discussed that dynamic context management system paradign doesnot fit light linking, since names are important there, so context of this system should be static (name-based). Also it is important to prevent "feature hunger" - a wish for having a desired feature at any cost bypassing proper design, that includes taking into account not only the possibility of fast creating setups, but convenient handling already created setups (proper data management).

In #68915#1385946, @Nurb2Kea wrote:
The way E-Cycles uses Light Linking is the worst way I have ever seen in a 3D App.
We all have to make sure to not end up with a rubbish solution like E-Cycles is using / offering.
Otherwise you'll be in bad dudu with heavy scenes. Or can you remember what kinda light 3, 11, 45, 47, 89 is !?

Also it's really time to start light linking development, otherwise it will take significant longer to become industry standard .... (not to talk about industry standard keymap.....)

yeah, I'm avoiding B3D in large projects just because of the lack of light linking.

> In #68915#1385946, @Nurb2Kea wrote: > The way E-Cycles uses Light Linking is the worst way I have ever seen in a 3D App. > We all have to make sure to not end up with a rubbish solution like E-Cycles is using / offering. > Otherwise you'll be in bad dudu with heavy scenes. Or can you remember what kinda light 3, 11, 45, 47, 89 is !? > > Also it's really time to start light linking development, otherwise it will take significant longer to become industry standard .... (not to talk about industry standard keymap.....) yeah, I'm avoiding B3D in large projects just because of the lack of light linking.

Added subscriber: @ckohl_art

Added subscriber: @ckohl_art

Added subscriber: @sgariepy.3d

Added subscriber: @sgariepy.3d

Added subscriber: @Canopy

Added subscriber: @Canopy

Just want to chip in here to say that it'd be really useful to be able to be more specific about how the light behaves with certain objects rather than just a blanket "this object is affected by this light" - for eg whether a specific object will occlude a light, whether the object can receive direct illumination or only indirect etc.

Just want to chip in here to say that it'd be really useful to be able to be more specific about how the light behaves with certain objects rather than just a blanket "this object is affected by this light" - for eg whether a specific object will occlude a light, whether the object can receive direct illumination or only indirect etc.

Added subscriber: @hoxabel

Added subscriber: @hoxabel

I think maybe there's some over-thinking going on here.

The example from LightWave is simple and it works. Speaking as someone who has worked in the trenches and used to be part of the film union, I can tell you that a typical case for light-linking is not as complicated as some might think it is.

Usually, you just need to exclude a wall from the light solution. The approach of unchecking the offending light from the object's properties panel is the correct approach.

Starting from the light properties and unchecking objects is a backwards approach.

Keep in mind that the majority of the features in LightWave were direct requests from Hollywood studios for getting the job done efficiently, and yes -- that includes Digital Domain.

An additional note: The above assumes people want to keep certain lights from casting onto specific objects. It doesn't address cases where you want a light to pass through an object while shadows are enabled. That point is addressed in my later comment. Just thought I'd mention that in case some users are looking to light linking as a way to take care of the latter as well.

I think maybe there's some over-thinking going on here. The example from LightWave is simple and it works. Speaking as someone who has worked in the trenches and used to be part of the film union, I can tell you that a typical case for light-linking is not as complicated as some might think it is. Usually, you just need to exclude a wall from the light solution. The approach of unchecking the offending light from the object's properties panel is the correct approach. Starting from the light properties and unchecking objects is a backwards approach. Keep in mind that the majority of the features in LightWave were direct requests from Hollywood studios for getting the job done efficiently, and yes -- that includes Digital Domain. An additional note: The above assumes people want to keep certain lights from casting onto specific objects. It doesn't address cases where you want a light to pass through an object while shadows are enabled. That point is addressed in my later comment. Just thought I'd mention that in case some users are looking to light linking as a way to take care of the latter as well.

In #68915#1422004, @Nebulon1212 wrote:
I think maybe there's some over-thinking going on here.

The example from LightWave is simple and it works. Speaking as someone who has worked in the trenches and used to be part of the film union, I can tell you that a typical case for light-linking is not as complicated as some might think it is.

Usually, you just need to exclude a wall from the light solution. The approach of unchecking the offending light from the object's properties panel is the correct approach.

Starting from the light properties and unchecking objects is a backwards approach.

Keep in mind that the majority of the features in LightWave were direct requests from Hollywood studios for getting the job done efficiently, and yes -- that includes Digital Domain.

How to select all the walls that has a specific light excluded in a scene you has got from someone that was previous in production pipeline?

> In #68915#1422004, @Nebulon1212 wrote: > I think maybe there's some over-thinking going on here. > > The example from LightWave is simple and it works. Speaking as someone who has worked in the trenches and used to be part of the film union, I can tell you that a typical case for light-linking is not as complicated as some might think it is. > > Usually, you just need to exclude a wall from the light solution. The approach of unchecking the offending light from the object's properties panel is the correct approach. > > Starting from the light properties and unchecking objects is a backwards approach. > > Keep in mind that the majority of the features in LightWave were direct requests from Hollywood studios for getting the job done efficiently, and yes -- that includes Digital Domain. How to select all the walls that has a specific light excluded in a scene you has got from someone that was previous in production pipeline?

Added subscriber: @AbrahamCastilla

Added subscriber: @AbrahamCastilla

In my humble opinion, I think that Blender already has a good system for managing objects by collections, I think that it should follow the same functionality as the rest of Blender, and not make a specific interface.
Simply add a checkbox in the light properties: "Only collection". And managing one or a thousand lights is simple, "ALT+MouseCLick" activates the option on all selected lights.
For handling collections "M" or "SHIT+M" and generate or add to the collection with all lights selected and objects selected, and affecting sub-collections of objects.
Independently, each light can have its tree of nodes of how the light will react on the objects it illuminates.
If then you want to generate a specific section in the outliner, such as "Library Overrides", with specific functions, that is already separate, or even add some type of icon in the Collection Outliner such as "Indirect Only".
The collection system and Outliner already have their own object and collection search and management system for the problems you are raising.
I think it would be the most intuitive and correct.

In my humble opinion, I think that Blender already has a good system for managing objects by collections, I think that it should follow the same functionality as the rest of Blender, and not make a specific interface. Simply add a checkbox in the light properties: "Only collection". And managing one or a thousand lights is simple, "ALT+MouseCLick" activates the option on all selected lights. For handling collections "M" or "SHIT+M" and generate or add to the collection with all lights selected and objects selected, and affecting sub-collections of objects. Independently, each light can have its tree of nodes of how the light will react on the objects it illuminates. If then you want to generate a specific section in the outliner, such as "Library Overrides", with specific functions, that is already separate, or even add some type of icon in the Collection Outliner such as "Indirect Only". The collection system and Outliner already have their own object and collection search and management system for the problems you are raising. I think it would be the most intuitive and correct.

This comment was removed by @Nebulon1212

*This comment was removed by @Nebulon1212*

Taking into account the feedback above regarding collections and the possibility that someone might actually want to exclude a thousand lights from casting onto an object, perhaps the following as a rough mock-up of what I'm thinking of...Blnd_Light-Linking.jpg

For the collection that's checked, all lights within that collection would no longer cast onto the selected object.

I.e.:

  • Select the object in Outliner
  • Click on Object Data Properties
  • Expand [Light Linking]
  • Check items that you don't want casting light onto that particular object.

With any luck, it would be a feature that would work in both Eevee and Cycles.

The above would take care of keeping checked lights from hitting a specific object. However, for the case where you want a light to pass through an object (like a lightbulb) and still cast shadows onto another object (tell the light inside the bulb object to ignore the lightbulb object so that the lightbulb doesn't block the light)...

That would mean you'd be looking at a second panel (one in Light Properties this time) that would provide the option to exclude objects(s).

In LW3D it looks like this (two panels):
{F13568621}

And in Maya it looks like this (Object-Centric and Light-Centric):
{F13565667}

{F13565668}

Two approaches to the same thing.

A good explanation of both scenarios in Maya is outlined in this quick video:
https://www.youtube.com/watch?v=4NG6bOM5QTc

Taking into account the feedback above regarding collections and the possibility that someone might actually want to exclude a thousand lights from casting onto an object, perhaps the following as a rough mock-up of what I'm thinking of...![Blnd_Light-Linking.jpg](https://archive.blender.org/developer/F13565132/Blnd_Light-Linking.jpg) For the collection that's checked, all lights within that collection would no longer cast onto the selected object. I.e.: - Select the object in Outliner - Click on Object Data Properties - Expand [Light Linking] - Check items that you don't want casting light onto that particular object. With any luck, it would be a feature that would work in both Eevee and Cycles. The above would take care of keeping checked lights from hitting a specific object. However, for the case where you want a light to pass through an object (like a lightbulb) and still cast shadows onto another object (tell the light inside the bulb object to ignore the lightbulb object so that the lightbulb doesn't block the light)... That would mean you'd be looking at a second panel (one in Light Properties this time) that would provide the option to exclude objects(s). In LW3D it looks like this (two panels): {F13568621} And in Maya it looks like this (Object-Centric and Light-Centric): {F13565667} {F13565668} Two approaches to the same thing. A good explanation of both scenarios in Maya is outlined in this quick video: https://www.youtube.com/watch?v=4NG6bOM5QTc

That interface encompasses certain solutions to a panel dedicated to light linking. However, I think that following the Blender philosophy, that panel should be in the Outliner editor, in an extra section.
The ideal would be to be able to make a quick and easy configuration, let's see the case of LineArt: you can limit by scene, object or collections. Then in the LineArt object you have the complete configuration. Finally a dedicated panel in object properties, on those objects that can support LineArt, to access complex settings per object.
This way of working is fast and versatile, you only configure what is necessary without navigating through lists and panels, in addition to being able to support multi-object configuration (although currently the LineArt object panel does not yet support multi-object configuration, XD ).
You can translate all of this into light linking, and then, if you like, a dedicated editor complete with lists for lights and objects in the Outliner editor, like "Orphan data" or "Library override".

That interface encompasses certain solutions to a panel dedicated to light linking. However, I think that following the Blender philosophy, that panel should be in the Outliner editor, in an extra section. The ideal would be to be able to make a quick and easy configuration, let's see the case of LineArt: you can limit by scene, object or collections. Then in the LineArt object you have the complete configuration. Finally a dedicated panel in object properties, on those objects that can support LineArt, to access complex settings per object. This way of working is fast and versatile, you only configure what is necessary without navigating through lists and panels, in addition to being able to support multi-object configuration (although currently the LineArt object panel does not yet support multi-object configuration, XD ). You can translate all of this into light linking, and then, if you like, a dedicated editor complete with lists for lights and objects in the Outliner editor, like "Orphan data" or "Library override".

Added subscriber: @Austin-Berenyi

Added subscriber: @Austin-Berenyi

Added subscriber: @JohanTriHandoyo

Added subscriber: @JohanTriHandoyo

Added subscriber: @alFrame

Added subscriber: @alFrame

Object to Light linking is the number one thing I miss coming from Maya! (Well, besides viewport move undo). I spent a lot of time in the light linking dialog in Maya. It is great, it works, it's simple and direct! I would really like to see this in Blender. But not based on collections. Make it independent and directly down to the mesh, no matter in which collection the mesh is.

Object to Light linking is the number one thing I miss coming from Maya! (Well, besides viewport move undo). I spent a lot of time in the light linking dialog in Maya. It is great, it works, it's simple and direct! I would really like to see this in Blender. But not based on collections. Make it independent and directly down to the mesh, no matter in which collection the mesh is.

Hi guys, little disclaimer,

As far as I know, screenshots from other software are not allowed here. So pls be carefull, and delete them.
If you want to illustrate it, pls dis a mockup or code it directly in python. That will be more usefull than a simple image :)

Hi guys, little disclaimer, As far as I know, screenshots from other software are not allowed here. So pls be carefull, and delete them. If you want to illustrate it, pls dis a mockup or code it directly in python. That will be more usefull than a simple image :)

Added subscriber: @Jonah-S-Oskow-Schoenbrod

Added subscriber: @Jonah-S-Oskow-Schoenbrod

Hi! Just wanted to say that having the ability to tell an object to only see a particular light (not by creating render passes) is an extremely powerful tool for me, particularly in commercial workflow, where I do not have time to export and comp multiple passes when I have clients sitting the meeting room waiting for a render. I.e. That rim light needs to hit the that one object, but nothing else. Should be simple (for the user ha). I shouldn't have to set up a a fake shader/normals solution either. (Additionally, having the ability to tell an object that its shadows should be darker was also very helpful, not just that it has or doesn't have them)

Thanks.

Hi! Just wanted to say that having the ability to tell an object to only see a particular light (not by creating render passes) is an extremely powerful tool for me, particularly in commercial workflow, where I do not have time to export and comp multiple passes when I have clients sitting the meeting room waiting for a render. I.e. That rim light needs to hit the that one object, but nothing else. Should be simple (for the user ha). I shouldn't have to set up a a fake shader/normals solution either. (Additionally, having the ability to tell an object that its shadows should be darker was also very helpful, not just that it has or doesn't have them) Thanks.

As far as I know, screenshots from other software are not allowed here.

May I ask why? Imho that’s ridiculous, besides any legal reason to do so.

> As far as I know, screenshots from other software are not allowed here. May I ask why? Imho that’s ridiculous, besides any legal reason to do so.

Added subscriber: @DuarteRamos

Added subscriber: @DuarteRamos

In #68915#1437565, @alFrame wrote:

As far as I know, screenshots from other software are not allowed here.

May I ask why? Imho that’s ridiculous, besides any legal reason to do so.

It is not a matter of opinion, please just respect the rules.
This has been requested to no end , and yet from time to time it comes up again.
There is a full [Blender Artists thread ]] about it, and even an [ https:*www.youtube.com/watch?v=SlB2S54pa9I | official video from Pablo Vasquez explaining why.

> In #68915#1437565, @alFrame wrote: >> As far as I know, screenshots from other software are not allowed here. > > May I ask why? Imho that’s ridiculous, besides any legal reason to do so. It is not a matter of opinion, please just respect the rules. This has been [requested to no end ](https://developer.blender.org/T38384#372542), and yet from time to time it comes up again. There is a full [Blender Artists thread ]] about it, and even an [[ https:*www.youtube.com/watch?v=SlB2S54pa9I | official video from Pablo Vasquez ](https:*blenderartists.org/t/legal-harassment-of-blender-foundation/1244580) explaining why.

So yeah. Legal issue. Completely understand. Thanks!

So yeah. Legal issue. Completely understand. Thanks!

Added subscriber: @Peter-Gerace

Added subscriber: @Peter-Gerace

I can’t count how many times this has become a major issue that has required composing tricks to fix. It’s the only thing that really makes me consider trying another program. It really seems like something so fundamental, and I was shocked when I realized it wasn’t something I could just solve in the shader editor or by using collections.

I can’t count how many times this has become a major issue that has required composing tricks to fix. It’s the only thing that really makes me consider trying another program. It really seems like something so fundamental, and I was shocked when I realized it wasn’t something I could just solve in the shader editor or by using collections.

As someone who probably can’t contribute to anything by way of code, is there something I can do to help with this project through testing, debugging, or anything else?

As someone who probably can’t contribute to anything by way of code, is there something I can do to help with this project through testing, debugging, or anything else?

Removed subscriber: @frameshift

Removed subscriber: @frameshift

Added subscriber: @YesungYoon

Added subscriber: @YesungYoon

Added subscriber: @Sonatine69

Added subscriber: @Sonatine69

Added subscriber: @Dangry

Added subscriber: @Dangry

I thought about a way to do this. A new mode (like edit, object, sculpt etc) called light linking. First step is to turn on light linking on the light itself to tell it that it won't light everything by default. Then you choose a color that would represent it. When you switch to light linking mode, everything is grey shaded. The light icon will take the color that was previously chosen. From there, you can select object directly in the viewport to create the link. You could also do it from the outliner, with collections too. I think it's a very visual way of seeing light linking and to my knowledge no other 3D software is using that method. So no need to deal with lists and stuff. It becomes complicated if you have too many links. You can't put that many colored squares in the outliner but maybe there could be a + sign (like when you have many objects) and when hovering over it, it could show all the colors. This would work only one light at a time though as you could only display one color at a time the light linking mode.

[EDIT]: I forgot to add the torus on the top image. It should be there and white

lightLinking.jpg

I thought about a way to do this. A new mode (like edit, object, sculpt etc) called light linking. First step is to turn on light linking on the light itself to tell it that it won't light everything by default. Then you choose a color that would represent it. When you switch to light linking mode, everything is grey shaded. The light icon will take the color that was previously chosen. From there, you can select object directly in the viewport to create the link. You could also do it from the outliner, with collections too. I think it's a very visual way of seeing light linking and to my knowledge no other 3D software is using that method. So no need to deal with lists and stuff. It becomes complicated if you have too many links. You can't put that many colored squares in the outliner but maybe there could be a + sign (like when you have many objects) and when hovering over it, it could show all the colors. This would work only one light at a time though as you could only display one color at a time the light linking mode. [EDIT]: I forgot to add the torus on the top image. It should be there and white ![lightLinking.jpg](https://archive.blender.org/developer/F13912993/lightLinking.jpg)

In #68915#1445736, @Funnybob wrote:
I thought about a way to do this. A new mode (like edit, object, sculpt etc) called light linking. First step is to turn on light linking on the light itself to tell it that it won't light everything by default. Then you choose a color that would represent it. When you switch to light linking mode, everything is grey shaded. The light icon will take the color that was previously chosen. From there, you can select object directly in the viewport to create the link. You could also do it from the outliner, with collections too. I think it's a very visual way of seeing light linking and to my knowledge no other 3D software is using that method. So no need to deal with lists and stuff. It becomes complicated if you have too many links. You can't put that many colored squares in the outliner but maybe there could be a + sign (like when you have many objects) and when hovering over it, it could show all the colors. This would work only one light at a time though as you could only display one color at a time the light linking mode.

[EDIT]: I forgot to add the torus on the top image. It should be there and white

lightLinking.jpg

This is cluttering up the outline very quick as you said.
I guess we need a list editor window (similar to the outliner). All the scene stuff in this list by default is illuminated and color marked as illuminated .
So you can select a light / emmisive in this List editor.
The stuff that should not get illuminated you can unmark by click in this list. This list can be shown/sorted by illuminated or not illuminated scene stuff.
This way we are open (have the ground stone) to more advanced lighting scenarios LATER in blender development. (interaction with other lights, reflection, refraction, etc)

Same as we know from other software.
And this is nothing we would implement for the industry, but for every user, for example want to backlit it's logo/mesh/volume ....
This is no copying. We have so many things in blender that is done the same way as in other software. Or did we find another way to save a file !? I don't think so.
And finding another way just for blender means making it more complicated for what reason...???

ps: we don't need many different charging cables for EVERY phone on the market!!!

> In #68915#1445736, @Funnybob wrote: > I thought about a way to do this. A new mode (like edit, object, sculpt etc) called light linking. First step is to turn on light linking on the light itself to tell it that it won't light everything by default. Then you choose a color that would represent it. When you switch to light linking mode, everything is grey shaded. The light icon will take the color that was previously chosen. From there, you can select object directly in the viewport to create the link. You could also do it from the outliner, with collections too. I think it's a very visual way of seeing light linking and to my knowledge no other 3D software is using that method. So no need to deal with lists and stuff. It becomes complicated if you have too many links. You can't put that many colored squares in the outliner but maybe there could be a + sign (like when you have many objects) and when hovering over it, it could show all the colors. This would work only one light at a time though as you could only display one color at a time the light linking mode. > > [EDIT]: I forgot to add the torus on the top image. It should be there and white > > ![lightLinking.jpg](https://archive.blender.org/developer/F13912993/lightLinking.jpg) This is cluttering up the outline very quick as you said. I guess we need a list editor window (similar to the outliner). All the scene stuff in this list by default is illuminated and color marked as illuminated . So you can select a light / emmisive in this List editor. The stuff that should not get illuminated you can unmark by click in this list. This list can be shown/sorted by illuminated or not illuminated scene stuff. This way we are open (have the ground stone) to more advanced lighting scenarios LATER in blender development. (interaction with other lights, reflection, refraction, etc) Same as we know from other software. And this is nothing we would implement for the industry, but for every user, for example want to backlit it's logo/mesh/volume .... This is no copying. We have so many things in blender that is done the same way as in other software. Or did we find another way to save a file !? I don't think so. And finding another way just for blender means making it more complicated for what reason...??? ps: we don't need many different charging cables for EVERY phone on the market!!!

Hi! This is a proposal on the Light Linking and Light Panel reestructure.

1- The "Light Panel" shouldn't always require having a selected light for it to appear. It's always there and you can select the light you're working on from a dropdown list.

2- "Sync by Selection" can be on or off, so if it's on it would always show the last selected light (with the clear indication you're working on that specific light).

3- This Panel doubles down as a "Light Linking" panel. It works directly with the outliner + with selections (the easier workflow).

4- On the Outliner you can have a "Light Linking Mode" (Lamp icon?), that syncs the light you're currently working on with the "Light Toggles Interface" that is added to the outliner.
This would give you clickable toggles for "on and off" on Collections and objects. Same principle to the current visibility. Option to override by object if they differ from the collection selection on the menu.

5- Since this is an "activatable (?)" mode you could have an Outliner open just for Light Linking on while still working on the outliner with it turned off. This would make use of the panels that already exist and are familiar without cluttering the interface. Options to work from the "Object or Collection Perspective". Meaning the lights in the scene are automatically added to their dropdowns (you could see which lights affect the object and toggle those on and off from there too).

On my workflow this could work, but there are more to be studied. Hope you like it!

Hi! This is a proposal on the Light Linking and Light Panel reestructure. 1- The **"Light Panel"** shouldn't always require having a selected light for it to appear. It's always there and you can select the light you're working on from a dropdown list. 2- "Sync by Selection" can be on or off, so if it's on it would always show the last selected light (with the clear indication you're working on that specific light). 3- This Panel doubles down as a **"Light Linking"** panel. It works directly with the outliner + with selections (the easier workflow). 4- On the Outliner you can have a **"Light Linking Mode"** (Lamp icon?), that syncs the light you're currently working on with the **"Light Toggles Interface"** that is added to the outliner. This would give you clickable toggles for "on and off" on Collections and objects. Same principle to the current visibility. Option to override by object if they differ from the collection selection on the menu. 5- Since this is an "activatable (?)" mode you could have an Outliner open just for Light Linking on while still working on the outliner with it turned off. This would make use of the **panels that already exist** and are familiar without cluttering the interface. Options to work from the "Object or Collection Perspective". Meaning the lights in the scene are automatically added to their dropdowns (you could see which lights affect the object and toggle those on and off from there too). On my workflow this could work, but there are more to be studied. Hope you like it!

Added subscriber: @Nominous

Added subscriber: @Nominous

I just found this out. k-Cycles nailed it. All I could wish for and more.

https://www.youtube.com/watch?v=M-MZ3sMtE5A&t=565s

I just found this out. k-Cycles nailed it. All I could wish for and more. https://www.youtube.com/watch?v=M-MZ3sMtE5A&t=565s

In #68915#1453057, @Funnybob wrote:
I just found this out. k-Cycles nailed it. All I could wish for and more.

https://www.youtube.com/watch?v=M-MZ3sMtE5A&t=565s

What a shame he is not contributing to this...

> In #68915#1453057, @Funnybob wrote: > I just found this out. k-Cycles nailed it. All I could wish for and more. > > https://www.youtube.com/watch?v=M-MZ3sMtE5A&t=565s What a shame he is not contributing to this...

In #68915#1453057, @Funnybob wrote:
I just found this out. k-Cycles nailed it. All I could wish for and more.

https://www.youtube.com/watch?v=M-MZ3sMtE5A&t=565s

Doy you mean light groups or light linking?

> In #68915#1453057, @Funnybob wrote: > I just found this out. k-Cycles nailed it. All I could wish for and more. > > https://www.youtube.com/watch?v=M-MZ3sMtE5A&t=565s Doy you mean light groups or light linking?

Both! :-) Fast, easy to use, fully featured.

Both! :-) Fast, easy to use, fully featured.

In #68915#1453361, @Funnybob wrote:
Both! :-) Fast, easy to use, fully featured.

Indeed, looks promising. There are two possible issues that came into mind:

  • there is no selection buttons yet. You can create subset of data but cant select it - without selection ability such a system will be "easy to set but hard to edit" one.

  • Light groups are supposed to be non-cumulative, while light linking are supposed to be cumulative (allow same objects in different sets). I may mistake but I am not sure light linking based on light groups are fully featured.

Anyway, indeed an interesting concept.

> In #68915#1453361, @Funnybob wrote: > Both! :-) Fast, easy to use, fully featured. Indeed, looks promising. There are two possible issues that came into mind: - there is no selection buttons yet. You can create subset of data but cant select it - without selection ability such a system will be "easy to set but hard to edit" one. - Light groups are supposed to be non-cumulative, while light linking are supposed to be cumulative (allow same objects in different sets). I may mistake but I am not sure light linking based on light groups are fully featured. Anyway, indeed an interesting concept.

Good points. What's stopping us from using it is the use of an external render farm. So we badly need a local solution. I saw on Twitter that k-cycles is supposed to release the code because of the GPL license but refuses to do so. Would have been interesting to take a peek at it. But that's for another discussion somewhere else.

Good points. What's stopping us from using it is the use of an external render farm. So we badly need a local solution. I saw on Twitter that k-cycles is supposed to release the code because of the GPL license but refuses to do so. Would have been interesting to take a peek at it. But that's for another discussion somewhere else.

Added subscriber: @alvaroperez

Added subscriber: @alvaroperez
Brecht Van Lommel added this to the Render & Cycles project 2023-02-07 19:08:06 +01:00

Hello!

I'm Pau, a Lighter working in the animation industry, passionate about Blender.

I have read the entire thread and, knowing there's no crowd pleasing design on how light linking could be implemented, I left my take on it on right click select. It works unlike any other software: It isn't that much of a bilateral link between an object and a light rather than a light masking out an object or vice versa. It's based on how light rays can already be masked based on other parameters, such as light length, depth or component and should be able to solve any situations where light linking would be needed.

A head's up: no new modes, no messy UI, no fiddling with collections.

I hope you can take a minute to review it, I'd love to hear your feedback on it.

Thanks!

https://blender.community/c/rightclickselect/JQlJ/

Hello! I'm Pau, a Lighter working in the animation industry, passionate about Blender. I have read the entire thread and, knowing there's no crowd pleasing design on how light linking could be implemented, I left my take on it on right click select. It works unlike any other software: It isn't that much of a bilateral link between an object and a light rather than a light masking out an object or vice versa. It's based on how light rays can already be masked based on other parameters, such as light length, depth or component and should be able to solve any situations where light linking would be needed. A head's up: no new modes, no messy UI, no fiddling with collections. I hope you can take a minute to review it, I'd love to hear your feedback on it. Thanks! https://blender.community/c/rightclickselect/JQlJ/

Two notes on that:

  • The only thing I've seen in the thread that this doesn't cover is its possible USD compatibility. I simply have no idea about USD standards at all.

  • I want to acknowledge that my proposal is accidentally similar, although simplified and more documented, to what @3di proposed 3 years ago.

Two notes on that: - The only thing I've seen in the thread that this doesn't cover is its possible USD compatibility. I simply have no idea about USD standards at all. - I want to acknowledge that my proposal is accidentally similar, although simplified and more documented, to what @3di proposed 3 years ago.

I really like this comcept. it's really BLender like and it's not a rip off of another software's concept.

I really like this comcept. it's really BLender like and it's not a rip off of another software's concept.

Fantastic idea @homspau, I like it.

Fantastic idea @homspau, I like it.
Philipp Oeser removed the
Interest
Render & Cycles
label 2023-02-09 13:59:51 +01:00
Member

@homspau I don't think doing the object-based approach where you get a output based on the sampled light is possible, due to the order in which the path is traced. The evaluation of the object's shader happens before light picking, and the evaluation of the bounce throughput happens before indirect light queries (for MIS).

The light-based approach should work (at least from a technical level), from what I can tell. Both for direct and indirect light evaluation, we have the information which object was hit before, so we can query it in the shader.

The part where it gets tricky is accounting for this in the light picking logic. For example, imagine you have a super-powerful light that is only supposed to affect one object - since the light tree is for the entire scene, it'd have to either give a high weight to that light, which means that all other objects will end up picking this light a lot only to then end up with zero contribution, or give a low weight to that light, which means that the one object that should be affected rarely samples it, leading to noise.

Then again, any sort of logic in the light shader is currently a limitation of the light tree - if you have e.g. falloff control, it won't account for that either.

@weizhen, this topic might be interesting for you as well :)

@homspau I don't think doing the object-based approach where you get a output based on the sampled light is possible, due to the order in which the path is traced. The evaluation of the object's shader happens before light picking, and the evaluation of the bounce throughput happens before indirect light queries (for MIS). The light-based approach should work (at least from a technical level), from what I can tell. Both for direct and indirect light evaluation, we have the information which object was hit before, so we can query it in the shader. The part where it gets tricky is accounting for this in the light picking logic. For example, imagine you have a super-powerful light that is only supposed to affect one object - since the light tree is for the entire scene, it'd have to either give a high weight to that light, which means that all other objects will end up picking this light a lot only to then end up with zero contribution, or give a low weight to that light, which means that the one object that *should* be affected rarely samples it, leading to noise. Then again, any sort of logic in the light shader is currently a limitation of the light tree - if you have e.g. falloff control, it won't account for that either. @weizhen, this topic might be interesting for you as well :)

Hi @LukasStockner! Thanks for the reply and for the great explanations (I think my artsy brain gets it, so congrats!).

The only thing I don't get is the 4th paragraph. If the shader logic in the light tree works, shouldn't the falloff control via light path node (image 3 in the proposal) plus the proposed light masks work together?

I get how only light based masking would be possible and light picking would be an issue. Yet again, light falloff control via light path node should also encounter the same issue with light picking, isn't it? I get how in extreme cases can become a burden but I've been using this in production without noticing any regression.

That being said, can I ask for your thoughts on implementing something like this?

How hard is it? (I have no clue at all) Should it be a different conversation than looking for a traditional light linking implementation?

I think the interest in this feature would be there, as it would make possible to solve most of the scenarios where light linking would be needed and more.

Thanks again!

Hi @LukasStockner! Thanks for the reply and for the great explanations (I think my artsy brain gets it, so congrats!). The only thing I don't get is the 4th paragraph. If the shader logic in the light tree works, shouldn't the falloff control via light path node (image 3 in the proposal) plus the proposed light masks work together? I get how only light based masking would be possible and light picking would be an issue. Yet again, light falloff control via light path node should also encounter the same issue with light picking, isn't it? I get how in extreme cases can become a burden but I've been using this in production without noticing any regression. That being said, can I ask for your thoughts on implementing something like this? How hard is it? (I have no clue at all) Should it be a different conversation than looking for a traditional light linking implementation? I think the interest in this feature would be there, as it would make possible to solve most of the scenarios where light linking would be needed and more. Thanks again!

My friends who want to subscribe to this thread are getting an error. many people get errors, why?

My friends who want to subscribe to this thread are getting an error. many people get errors, why?
Author
Owner

@dursunumit could you please ask them to report that as an issue in https://projects.blender.org/infrastructure/blender-projects-platform/issues with as many details as possible so it can be investigated?

@dursunumit could you please ask them to report that as an issue in https://projects.blender.org/infrastructure/blender-projects-platform/issues with as many details as possible so it can be investigated?
Member

The only thing I don't get is the 4th paragraph. If the shader logic in the light tree works, shouldn't the falloff control via light path node (image 3 in the proposal) plus the proposed light masks work together?

Shader logic in the light tree currently doesn't work, that's the problem. But, that's also why I think that it probably wouldn't be too much of a problem for light linking - we're not making it worse at least, it's been a todo before and it would still be a todo later.

That being said, can I ask for your thoughts on implementing something like this?

How hard is it? (I have no clue at all) Should it be a different conversation than looking for a traditional light linking implementation?

Implementing it is not the problem, a prototype implementation would probably be a day or so.
The bigger issue is planning to make sure that this is actually how we want to do it - Cycles already has a number of features that seemed like obvious options at first but are now causing problems with other features (e.g. ray visibility options vs. path guiding).
So, we need to be careful with adding features, because once this is in you can imagine what the reaction to removing it again would be :)
There's also the point that we really don't want to have two different styles of doing light linking at the same time, so we should ensure that whatever we implement is compatible with e.g. USD (I never looked into how USD does this to be honest, but I think there's a standard?).
And of course it should also work with Eevee, which is not so easy/efficient with the node-based approach. And so on.

I learned my lesson about "just creating a quick prototype" with the scrambling distance patch, so I'd like to at least bring this up in the next Cycles meeting before writing any code.

> The only thing I don't get is the 4th paragraph. If the shader logic in the light tree works, shouldn't the falloff control via light path node (image 3 in the proposal) plus the proposed light masks work together? Shader logic in the light tree currently doesn't work, that's the problem. But, that's also why I think that it probably wouldn't be too much of a problem for light linking - we're not making it worse at least, it's been a todo before and it would still be a todo later. > That being said, can I ask for your thoughts on implementing something like this? > > How hard is it? (I have no clue at all) Should it be a different conversation than looking for a traditional light linking implementation? Implementing it is not the problem, a prototype implementation would probably be a day or so. The bigger issue is planning to make sure that this is actually how we want to do it - Cycles already has a number of features that seemed like obvious options at first but are now causing problems with other features (e.g. ray visibility options vs. path guiding). So, we need to be careful with adding features, because once this is in you can imagine what the reaction to removing it again would be :) There's also the point that we really don't want to have two different styles of doing light linking at the same time, so we should ensure that whatever we implement is compatible with e.g. USD (I never looked into how USD does this to be honest, but I think there's a standard?). And of course it should also work with Eevee, which is not so easy/efficient with the node-based approach. And so on. I learned my lesson about "just creating a quick prototype" with the scrambling distance patch, so I'd like to at least bring this up in the next Cycles meeting before writing any code.

Hi @LukasStockner, thanks for clarifying!

Totally get your thoughts on this. I get how it sure isn't a proper light linking implementation but a cool feature with a similar use case. Also, totally get the precaution.

I'll love to read the notes on the Cycles meeting. Can't wait!

Hi @LukasStockner, thanks for clarifying! Totally get your thoughts on this. I get how it sure isn't a proper light linking implementation but a cool feature with a similar use case. Also, totally get the precaution. I'll love to read the notes on the Cycles meeting. Can't wait!

This task has turned into a feature request and idea brainstorming task, which is not what developer.blender.org or projects.blender.org is for. The feedback is appreciated but this website is meant for focused developer work.

For further feature requests and design ideas please use https://blender.community/c/rightclickselect/?sorting=hot&page=1&text=light+linking.

The new task is #104972.

This task has turned into a feature request and idea brainstorming task, which is not what developer.blender.org or projects.blender.org is for. The feedback is appreciated but this website is meant for focused developer work. For further feature requests and design ideas please use https://blender.community/c/rightclickselect/?sorting=hot&page=1&text=light+linking. The new task is #104972.
Brecht Van Lommel locked as Off-topic and limited conversation to collaborators 2023-02-20 15:18:20 +01:00
Brecht Van Lommel removed this from the Render & Cycles project 2023-05-24 19:05:00 +02:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
160 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#68915
No description provided.