GSOC 2021 Proposal Idea : Light Linker / Light Mixer

Before I add to this discussion, could some straight-forward definitions be given to concepts you’ve brought up? I want to make sure I’m not misunderstanding or going in the wrong direction with this.

Light Linking:

A feature that allows you to selectively exclude or include objects from the effects of an specific light, in other words, a way to define which objects will be affected by an specific light.

Light Mixer (and Light Groups):

A way to render in several render passes all the lights separatedly, so you can group “ceiling lights”, “sky light”, “sun light” and “hero light” in several passes, render all together at once, only one time, and get all those light groups as passes you can composite together, giving you control over intensity and tint of each group.

The Light Mixer is the part where instead of having to assemble a full compositing tree you can “play” with the results directly in the viewport or in the render view and define what will be your desired final output.

All these features are kind of important, there is a patch already there for light groups, and we have it in our build working since 2.8x, Light Mixer is a good step forward, not too difficult having light groups already I think, but pretty useful.

Now, Light Linking is something that lighter are waiting with A LOT OF EAGERNESS :slight_smile:

11 Likes

Can agree here. Light Linking is… a base rendering tool, not photorealistic, but necessary in all everyday rendering. And if it can also be in viewport with WYSIWYG, the better.

4 Likes

Light Linking is the number one most requested feature and the task on Phabricator is spammed by so many users that want to have this feature :smiley:

5 Likes

I would love to see this definition of Light Linking be expanded to include face sets as well as objects, if possible. I have done this very often in other tools that allow light linking.

It would also be very helpful to allow for Shadow Linking as well. Often, in stylized situations, you want control over what is casting shadows independent of what is illuminated.

2 Likes

In my proposal I have included shadow linking and reflection linking. However, within the scope of GSoC it could be too many things to juggle at once. Depending on how things progress, I will be willing to continue working on linking features outside of GSoC in my freetime!

6 Likes

TBH it may be possible and not that hard… but this is just a bold guess without the whole knowledge needed to confirm it, so I may be wrong.

Once the light linking code is in place, since we have Light Paths, may not be so difficult to make light linking work with Light Path options, that could allow for Shadow Linking and Reflection Linking probably, not sure about face sets since that´s a sub-object element, but maybe it can work with some kind of material linking, not sure.

Anyways, if this goes into the GSoc and later into master, focusing in the MVP (minimum viable product) first should be the priority :slight_smile:

2 Likes

Yup, exactly what I was thinking. Once the base code is implemented then expanding it will be a lot simpler. Granted this is just my speculation and would have to dive into the code more to be able to make an accurate evaluation. But yes mvp will be the prioritized deliverable for GSoC, expanding can come after!

4 Likes

Dean, light linking and mixing would be much appreciated additions to Blender! Hopefully there is a generic approach possible, in a sense that this would work for both Eevee and Cycles? Best of Luck :slight_smile:

2 Likes

Hi)
About Light Mixing - do you mean the same functionality, as in Light Group from BlenderLuxCore?

11 Likes

Wow, I never new I needed a feature until I saw this! It would be amazing to have in Blender with Cycles

2 Likes

YES! The compositing element is key here, too. Better still: allow separation of glossy, indirect, direct, sss, or some combinations (eg. glossy and diffuse/sss) per light AOV. Yes, it generates more AOVs, but that’s OK. You can also create a compositing node that is more generic, letting you chose which AOV to edit. Don’t like a spec hit that a particular light is casting? Rotomask it and gain it down on that one light, keeping everything else intact.

3 Likes

I mean features naming in visualization industry is quite messy.
Different things have the same name, and same things named differently across software.
It would be nice to specify exact meanings of the proposed features.

The Cycles X dev. has started and there are hints of Linking / Other Algorithms possibilities.

1 Like

There’s a discussion of implementing light linking with node on right click select: https://blender.community/c/rightclickselect/Fvhbbc/

I don’t believe the person posting intends on writing the code himself but he does have an interesting idea of how to do light linking in a “blender-way.”

1 Like

As far as I’ve heard, the blender team is focused on cycles x and they don’t plan to work on light linking right now. On the blender today that announced cycles x, the developers said that light linking could be developed and finished independently of cycles x, so I say go for it.

Brecht van Lommel might be the guy you want to talk to regarding development resources or any future plans for implementing light linking.

1 Like

Hi yeah, I am still working on the Light Linker. I am speaking with a studio and we will organize a workflow to code it and test it.
This is all independent of GSoC as I wasn’t picked unfortunately. My goal is still to deliver a product to merge with the main build.
As with that post, it seems far more complex than necessary. I have spoken with Brecht and cleared up any confusion about the implementation and the core goals of Cycles and Blender. I have also spoken with a developer at RenderMan about their implementation and it is all about managing memory and having efficient rendering. I wouldnt want to add light linking that slows down rendering and ruins all the work on cycles-x! :slight_smile:

25 Likes

Hey Dean,

It sounds like you’re on top of it! I hope you make a great implementation that makes it into blender’s main build.

Good luck dude!

6 Likes

But then again, Blender’s ambition is to make everything nodes in the future. You might want to consider an implementation that takes advantage of nodes like shaders and geometry nodes.

Edit: and lights already have a node workspace.

2 Likes

Thanks, I will definitely consider working on a node based implementation later on. For now there is a list of goals for the linking. This starts at linking lights until linking reflections. All of these have their own challenges so for now I am working towards a reliable light (and perhaps shadow) linker before graduating to reflections and a more integrated UI system, perhaps with nodes!

3 Likes