GSOC 2021 Proposal Idea : Light Linker / Light Mixer

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:

24 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!

5 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!

2 Likes

Hey Dean,

Either way, I’m sure everyone will be super excited to see what you create. You can do it!

On a side note, I watched the blender conference from 2016 where Brecht mentioned that Tangent animation submitted a patch to blender for light linking. You might want to ask Brecht if you can take a look at that code if he still has it. For one, the work might already be done, it just needs some testing. Or, on the other hand, if the code from Tangent animation wasn’t up to Brecht’s standards, it might help prevent you from reproducing the same type of framework that Brecht rejected. Good luck!

1 Like

Hi Dean
Just wondering a bit on how exactly this implementation work in terms of workflow.
Last time I used light linking was on XSI and the implementation was simple, in every light I could pick either an exclusion group or an inclusion group of objects. In Blender I can imagine a similar workflow with an area of the light interface where the user could pick a collection for inclusion/exclusion.
At least I would suggest something like this as an initial proposal, then grow from there.

2 Likes

Thanks!

Yes I found the code that was submitted for that and was looking through it. I spoke with Brecht about the issues with the code. The main issue is that it was discarding lights after they were calculated. So there needs to be a rework to have it work more efficiently and to have it compatible with path-tracing.

2 Likes

Yup I was going along the same idea. I plan to have a “Linking” tab inside the light settings where you can specify the type of linking, ie. Light, Shadow, Reflection. Then inside each specified type you can add or remove specific geometry or collections.

I would also want to find an easy way to incorporate an object centric approach. But this means either a more complex section in the light panel or a separate section in the object context, which is not desired. Hopefully we can find a workaround though!

3 Likes

Maybe the spreadsheet editor could be used for that. (Not right now, but when it’s in a more mature state). It would be a good tool to have an overview of light- object interaction

2 Likes

That’s a very cool idea. It’s always nice to have more data!

1 Like

I’m the writer of the post on right click select. I know very little about coding for blender, but I recently got the book that Brad Hollister put out on Blender’s source code, so I definitely would like to learn and start actually contributing stuff, in any area!

Regarding my post, as I say in an update, it was shot down by Brecht for being too complicated, and of course I absolutely trust his judgement; I wouldn’t want something to be implemented that works poorly. Although to reiterate @Timothy_m’s point, I do agree that, if at all possible, it would be awesome (and truly embracing of blender’s signature strengths and its future plans) if a node-based approach is used in light-linking, even if it’s not my particular approach.

The complexity of my idea comes from weaknesses I spotted in other software that uses light linking; namely, the lack of control over specific passes (i.e. diffuse, gloss, transmission, etc) per object, and/or the ability to specify specific sequences of light bounces; maybe I wanted an object to be invisible except in the reflection on one specific object. Of course any effect could ultimately be achieved some other round-about way, but it felt like this functionality really shouldn’t be too difficult after the light linking itself was already featured (but I could be totally wrong). So I felt that including this level of control would not only bring blender up to speed in this area but even put a step ahead (at least of the software I was using).

3 Likes

I totally agree. I think there are certain implementations that could be interesting and the ui can still be intuitive enough for users to easily pick it up. It just requires a lot more code and will be more difficult to maintain. Once the base light linker is finished there will always be interest in upgrading it, making it faster and adding features!

3 Likes

Hey Dean! Your work as a lifesaver will definitely benefit a large group of people. Thanks for your effort!
Would it be helpful to have some funding or support from community, like beer (https://blendernpr.org/beer/)? I’m also curious about whether the base light linker is implemented on cycles or cycles-x?

1 Like

Thanks, currently there is no need for funding. Perhaps an experienced Dev with Cycles could be helpful but for the time being it should all be good! For the implementation, I am working on the cycles-x branch so it will most probably be released when cycles-x is released.

6 Likes

maybe you can reach out on the cycles module on blender.chat where the cycles developers are (if you haven’t already)

Hey @DeanKJones

Is there any update on the development of this? Appreciate your work!