Lighting - Expand positions functionalities/features


INTRODUCTION

Hi everyone,

Brecht suggested me to create a talk so that I could present my project and discuss it, so here it is.

Following on from the features I’ve recently developed with Brecht’s help, I’d like to bring new functionality to lights. (cf: #136905 - Render: Lights: Add new features - blender - Blender Projects)

The subject of this talk would be to create a new way of positioning lights in blender according to normals, light reflection or the shadow cast by an object relative to the light.
I’ve already created an available addon/extension (Lumos) that I invite you to install and test. This will provide a proof of concept.

Being limited with python, my addon/extension uses a custom tool to activate modals.


TECHNICALS

At the moment no individual PR have been created for that but I could do one if you ask me.
I will be available in the next days/weeks and I will start the development.
I would like to have your ideas and opinions about that.

EDIT : After some reflexion, brainstorming and discussion here some potential use cases:


1. Light Edit Mode

Concept

Introduce a new Edit Mode similar to existing modes for objects/meshes, but dedicated to lights.

Advantages

  • Establishes a clear and familiar context for users, consistent with Blender’s existing design.
  • Enables a dedicated keymap, for example:
    • Use 1, 2, 3 to switch between different light placement modes(Normal, Specular, Shadow).
    • Use E to change the energy
    • Use C to change the color
    • … etc
  • Creates a logical separation between Object Mode, Mesh Edit Mode, and Light Edit Mode.

Limitations

  • Requires deeper integration in C++ to implement a new context.
  • Heavier development effort in the short term.

2. Tool System with Subtools

Concept

Develop a main “Light Tool” using Blender’s Tool System, with subtools available only when a light is selected.

Potential Subtools

  • Place light based on surface normals
  • Place light based on reflections on an object
  • Place light based on cast shadows
  • Horizontal / azimuthal placement control
  • Other contextual tools…

Each subtool would launch its own operator (modal or not).

Advantages

  • Fully compatible with the existing Tool System.
  • No need to introduce a new mode or context.
  • Faster to prototype and iterate.
  • Similar in spirit to add-ons like the “Lumos” proof of concept.

Limitations

  • Lacks visual and contextual separation from other workflows.
  • Requires manual context handling, such as filtering object types.
  • Might be less intuitive than having a dedicated mode.

3. Hybrid Approach: Mode + Tools

Concept

Create a Light Edit Mode that embeds lighting-related tools, similar to how Sculpt or Weight Paint modes include specific tools.

These tools would only be available and visible within this mode, and would execute modal or non-modal operators.

Advantages

  • Combines the clarity of a dedicated mode with the flexibility of the Tool System.
  • Consistent with existing specialized workflows in Blender.
  • Allows incremental evolution: new tools, operators, and UI elements can be added inside a well-defined and isolated context.

Limitations

  • Still requires significant effort to implement a new mode at the core level.
  • Might involve adjustments to Blender’s internal design to cleanly integrate both concepts.

Open Questions

  • Which approach seems most viable in the short/mid-term?
  • Would it be feasible to simulate a dedicated mode using the Tool System alone, without implementing a new core mode?
  • Are there lessons from similar systems (e.g. Grease Pencil v3, Sculpt Tools) that could guide the design?

In any cases I think that could be good to had visual feedback as bgl notice in the bottom left corner for example


ME

My name is Quentin Sanhes, i’m 31 and my Blender Chat name is Eqkoss / T1NT1N_TV,
I’m a light artist with a strong interest in programming and development, and I’m gradually leaving the artistic world for the tech world.
I’m self-taught in python and very new to C++ dev (self-taught too). But I’m very passionate and motivated to develop these features


MORE

I would also like to add new features as:

  • Customs unit: lux, lumen and/or candela
  • Horizon/Azimuth modal
  • Change color (as in Lumos)
  • Change energy (as in Lumos)
  • Move along Z axis (by preserving the energy as in Lumos)
  • and more (Ideas are welcome :slight_smile: )

But maybe this should be part of another topic or PR. Should we tlak about that here too ?

23 Likes

I like it, what a genius idea!

3 Likes

That would be amazing! I would be equally excited for using lumens too.

Quite intrigued by the possibilities this can bring, also for potential future features, like having specific modifiers directly for lights (Array, Mirror, GN)!

Regarding the addon, I have a couple of thoughts:

  • one thing that is still unclear to me are the different shadow/reflection/normal modes. I don’t quite understand their purpose (probably I’m missing something), but to me it looks they are all placing the light around the object with slight different results: what is it that they are making easier/possible to do? (Maybe describing a real-case scenario can help me understand).

  • Although the features/shortcuts of the light edit mode are very useful (especially move along Z axis!), I personally find it a slow workflow that I have to switch to edit mode for them… especially since adjusting the light power is accessible in current Blender in Object mode with right click menu, and therefore, assignable to a shortcut directly there. I think basically all the features of edit mode should be accessible directly in object mode.

btw, maybe this can also help in continuing some of the amazing features that were left over here? [Improve visualisation and manipulation of lights in the viewport #104280]

Thanks for your work.

3 Likes

After some reflexion, brainstorming and discussion here some potential use cases:

I will Edit the main topic to update it with that description for clarity:


1. Light Edit Mode

Concept

Introduce a new Edit Mode similar to existing modes for objects/meshes, but dedicated to lights.

Advantages

  • Establishes a clear and familiar context for users, consistent with Blender’s existing design.
  • Enables a dedicated keymap, for example:
    • Use 1, 2, 3 to switch between different light placement modes(Normal, Specular, Shadow).
    • Use E to change the energy
    • Use C to change the color
    • … etc
  • Creates a logical separation between Object Mode, Mesh Edit Mode, and Light Edit Mode.

Limitations

  • Requires deeper integration in C++ to implement a new context.
  • Heavier development effort in the short term.

2. Tool System with Subtools

Concept

Develop a main “Light Tool” using Blender’s Tool System, with subtools available only when a light is selected.

Potential Subtools

  • Place light based on surface normals
  • Place light based on reflections on an object
  • Place light based on cast shadows
  • Horizontal / azimuthal placement control
  • Other contextual tools…

Each subtool would launch its own operator (modal or not).

Advantages

  • Fully compatible with the existing Tool System.
  • No need to introduce a new mode or context.
  • Faster to prototype and iterate.
  • Similar in spirit to add-ons like the “Lumos” proof of concept.

Limitations

  • Lacks visual and contextual separation from other workflows.
  • Requires manual context handling, such as filtering object types.
  • Might be less intuitive than having a dedicated mode.

3. Hybrid Approach: Mode + Tools

Concept

Create a Light Edit Mode that embeds lighting-related tools, similar to how Sculpt or Weight Paint modes include specific tools.

These tools would only be available and visible within this mode, and would execute modal or non-modal operators.

Advantages

  • Combines the clarity of a dedicated mode with the flexibility of the Tool System.
  • Consistent with existing specialized workflows in Blender.
  • Allows incremental evolution: new tools, operators, and UI elements can be added inside a well-defined and isolated context.

Limitations

  • Still requires significant effort to implement a new mode at the core level.
  • Might involve adjustments to Blender’s internal design to cleanly integrate both concepts.

Open Questions

  • Which approach seems most viable in the short/mid-term?
  • Would it be feasible to simulate a dedicated mode using the Tool System alone, without implementing a new core mode?
  • Are there lessons from similar systems (e.g. Grease Pencil v3, Sculpt Tools) that could guide the design?

In any cases I think that could be good to had visual feedback as bgl notice in the bottom left corner for example

Thanks in advance for your feedback!

5 Likes

Hi !

@slowk1d to answer to your questions:

  • When people light their scenes, they often want to light a specific area, at a specific location on an object, have a reflection at a specific location on an object (e.g. rims) or have the shadow cast from their object at a specific location.
    Specular mode, for example, places the reflection of light directly below the mouse.
    Shadow mode, on the other hand, places the object’s cast shadow under the mouse.
    These tools simply allow you to concentrate on these details rather than finding the precise location to create these effects. This automatically places the light to achieve the desired result.
    It makes lighting more intuitive, simpler and faster.
    Imagine something like, “I want to light here, have my shadow here, have my reflection here” and boom it’s done by selecting and clicking where you want it.
    You can use the Lumos addon to get an idea of how it works.

  • Indeed, you’re right, some functions are available in the right-click menu in object mode. But many people don’t know or don’t try to right-click, which forces them to go to the property menu.
    The idea behind my proposal would be to create a “context” in which all these functions would be present and easily accessible via keymaps, for example.
    The compromise would simply be to go into a mode to unlock all the features, which is almost like having to right-click and search for a feature in a long list. What’s more, it’s simpler and more intuitive to activate a modal from a keymap than to click on a button in a menu (from my point of view)
    In another sense, the right-click menu remains a good alternative, but I’m not convinced that it’s appropriate to host such features. What’s more, having a long menu doesn’t seem right to me either.

2 Likes

I think this ideology comes from Katana, maybe not but that’s what I’m familiar with it being from. I generally like it when using Katana, or other apps for that matter! In Blender, however, I always found the default controls to be so nice I don’t need it. Setting the pivot point around the 3D cursor (which can just be done with shift+ right click) and rotation/trackball rotation is typically good enough for me. I don’t even mind G+Z+Z for changing the distance.

But I found in Katana it can be a bit jittery, and it’s the same in lumos:


Especially with low poly things, which is used enough in stylized work, it’s a real distraction seeing the light fly around. You really have to train yourself just to see the result, not necessarily where the light is.

It’s definitely not a bad idea though, I just wonder if leaving it as an addon is good enough. I do however like the idea of having a light editor, but really I think quality of life updates that are more directly correlated to what is already in blender would be nice.

This is a reasonable starting ground.

This would be INSANE!

There is a papercut that has bothered me for years now, and that’s that you can’t use shift for fine scrubbing when using the right click menu “Adjust Light Power” or" Light Radius".


Me smashing my shift key

Yeah that’s is true but it’s how it’s works.
Perhaps there’s a way of doing this that takes into account not only the normals of the faces, but also those of the vertices and edges, which should bring more “control” and less jitter. To be studied.
To be clear the old way of controling the light will still exist. This proposal is not to about removing but adding new functionnalities. So everyone could decide to not used them

I recently discover that Katana and Houdini have a similar way to position lights.
It’s not originally inspired by them but we can’t close the eyes on it ahah

Heyho!
I work at Blender Studio mainly in lighting and rendering and created the initial proposal a while back to improve light widgets. I checked our your extension and it looks super useful (especially the light list in the side bar!).
Would be very interested to see this proposal getting some attention.
Not quite sure what the best approach is when it comes to Edit Mode vs. Tools/Widgets. I think a set of tools with well designed widgets would make this most discoverable. Especially exposing the energy and distance controls in a visual way - as opposed to hiding them behind shortcuts - could be very interesting!

Thank you very much for taking your time to make this proposal!
Andy

8 Likes

Hey @Andy_Goralczyk !

Yeah I see/know who you are!
I’m really happy to see you here and see your interest for that proposal.
Thanks for the compliment.

Are you talking about the issue 104280 send by slow1d ?
If no, can you share me your initial proposal please ?

I think you’re talking about the light manager ?


Or maybe are you talking about the light editor ?

But depending on how this talk evolves, it’s entirely possible to integrate it into the Final project. I think this could be a good thing, but integrating this list into Blender will probably require an isolated discussion/PR about the UI and how to implement it (Should it live in a core addon ? Should we place it in the outliner ? How to call it ? … etc)

4 Likes

Thank you for clarifying the various modes!

Regarding right-click menu, I am with you that is probably not the best place for such features, and I also never use it and instead resort to the properties panel.
What I meant was more in the sense that, since it gives you the chance to add a shortcut that you can access directly in Object mode, if we want to add features/shortcuts for changing power, color etc. in the 3D viewport, I think it would be better to access them without going into another mode.

I say this primarly because when we are lighting a scene, with many different lights, I think it’s important that we can iterate different light intensities, colors, positions etc. without doing a back-and-forth between object/edit mode every time. Otherwise, I fear it might become a slower way of interacting with them compared to just going in the properties panel, where we can change those parameters and at the same time stay in Object mode and change their positions, orientations, add new ones etc…

1 Like

You’re welcome!

Okay, I see your point now!
Indeed, you raise a very interesting point. And I partly share that point of view.
Having a Light Edit Mode would force users to go back and forth, as you point out, which isn’t necessarily the most pleasant or ergonomic thing to do.
However, I wonder about this because if you look at all the objects you can create in Blender using shift + A, none of them have a custom tool unless you enter their edit mode for those that do (e.g. Meshes, Curves or Armatures).
That’s why I’ve come up with the idea of a “Light Edit Mode” to maintain consistency between the objects and the UI, and to place these tools in a light’s context.

Object Mode:


Edit Mode:


I’m also aware that the edit mode literally “modifies” the shape of the object.
But it’s what seems most consistent with what already exists.

You’ve hit on exactly one of the points that prompted me to create this talk in order to get the UI team’s opinion on these subjects.

Open Question:

  • Would contextualized tools directly in Object Mode be accepted?
  • Isn’t that outside the interface rules?
2 Likes

Hey !
About that light lister / light editor, as a huge Gaffer user i always wondered if it would make sense to have those kind of fonctionalities / listing in the outliner panel, under a new display mode, instead of having it floating or in the 3D view side pannel ?

2 Likes
  • Photographer
  • Light Control
  • Light Wrangler
  • Spec Lighting Ops

there are so many good tools out there organizing and managing light the professinal way, so why
bother with gaffer or other new addons try to invent the wheel?

while photographer gives you full controll to lights + meshlights etc. and it’s creation and setup MODAL,
Light Conrol has an even stronger Modal for the lights.

lightwrangler is doing an ok job like spec lighting ops, but more on the mainstream side.

so maybe watch their videos and look for their options and abilitys + the modals to setup a light and go from there.

" This is almost standard now ! "

Otherwise no one will use your newly invented options longer than a week and it will end up as code grave inside blender.

– One thing I could think of is to have the option to have two inputs/outputs for the direct and indriect light !!!

hope that helps to see it from the user perspective

FYI Greg made Gaffer many years before any of the other lighting add-ons existed, so it is actually the other way around. But regardless of which tool is used, being able to quickly solo lights and adjust their strength in a list interface is very helpful. +1 to that, but it also seems out of scope for this thread.

I’m also aware that the edit mode literally “modifies” the shape of the object.
But it’s what seems most consistent with what already exists.

This is a bit tricky. Even if it’s not about the shape, it is a bit odd for an edit mode to be modifying object properties. But the light strength and shape are data properties that do make sense to have in an Edit Mode. So, if we want control over both, we either have an Edit Mode that also modifies object properties or an Object Mode that also modifies data properties.

Right now we also have the light gizmos, and I think this should fit with those so that we don’t have two different systems for similar actions. I think another good option is to expand the current list of Object Mode light gizmos to include the normal, shadow, spec, and strength controls. No need to make new tools in the toolbar. These might be a bit distracting if they are all on all the time, but most could be off by default.

But I bet we could come up with a cool design for how they could look when all turned on at the same time, like a white dot for specular, black dot for shadow, blue dot for normal, etc. There’s also the context menu that could be expanded for changing the color, shape, or type without requiring a whole new mode. I could see it going either way though, as it is also nice to keep object mode nice and clean without too many gizmos getting in the way.

4 Likes

Yes, you’re right, it’s a possibility I’m currently considering.

My addon (Lumos) is not new has it exist since around 4 years. But yes it probably younger than the list of the addon you gave.

I don’t try to reinvente the wheel. Lots of addons have the same functionnalities, and did it in their own way.

I already know for many of these addons how they “deal” with the modal integration.
The fact is that implementing those features are not so easy :confused:

The aim of this Thread is to determine the right way of doing things and the right way of integrating these features in the Blender way.

5 Likes

Hey @jonlampel !
Happy to see you here, thanks you for your intervention and your opinion.

Yes!
I pretty agree with you.
As you say, using gizmos is also a possibility that seems more appropriate (than the initial proposal) and that I’m keeping in mind.

At the moment, I will try to first implement one modal operator (probably the normals one). Then after that I will try to test multiple UI integration (Gizmos for example) to see which one fit the most.
That will also let this thread to be feed by people ideas and opinions.

Ones the first modal will be implemented, it will be easier to implement the others and probably adding new functionnalities to extend to other functionnalities as (modifying color, intensity…) Which are (as a reminder for everyone) not the priority of this thread

6 Likes

If you want cool light management check this out. Feel free to copy any of my ideas. My dream is to get this integrated in Blender. Blender Bob’s light Editor!

5 Likes

The areas as you pointed in the proposal is a must have in my opinion but also need to take care to do not add more steps on adding lights

I’ve been working in a add-on to help in Light Management in a more general way. Maybe some ideas of this add-on can fit in the scope of what you are planning to do. The most difficult things nowadays I thing it is the Light/Shadow Linking interface as the Light Groups too as we don’t have an overview of what is happening in the scene, we don’t know what light have what linking in a easier way and etc. I think this area must be more visual.

here is a quick overview of what i did on a management system: https://youtu.be/G_uyHH_mWic?si=csSZ6I8OVaeoOwhA

2 Likes

Hey everyone, I’m back from hollydays.

The working PR as been created, you can found it here:
It’s currently in prototype stage.

4 Likes