Multiple lights in EEVEE: Creating a clean and sharp black/white shading (shadows and light bounce)

I’m currently trying out different things for an animation series I’ve planned and need help with creating sharp and clean black/white shadows and light bounces, when the range of - for example - two (or more) point lights overlap (while casting shadow and light onto a ground). The scene contains a simple plane for the ground floor, an actor and two point lights, which are positioned in front and behind the actor.

I have here two pictures (three with the node setup), that I hope will illustrate, what I’m going for.
(The images are packaged, because I can only upload one media attachment for now)

First example (not what I’m going for, just to illustrate certain points):
The first one is with the ground plane having a simple diffuse shader. As you can see, the two point lights cast two seperate shadows onto the ground while also lighting the ground corresponding to their position. A little “specular” overlay of white can be seen especially on the right side (which overlays the shadow). I would like to remove this little speck, but keep the lighting of the ground itself (can be seen much better in the second example):
(see first picture in packaged image)

Second example (what I’m going for, but with the adjustments I mention below):
As you can see, for the floor I want to go for a clean break of black and white. The two point lights cast again two shadows and also light the floor in a sharp circular form. But also here, there are those two “specular” specks which completely overlay both shadows (or, the “speck” from the one point light overlays over the shadow from the other point light).
(see second and third picture in packaged image)

What I want is to be able to use multiple point lights in this way, which each can cast their shadows and the “specular” circle not to overlap any shadows (but still keep the usual circle of light) Specular is disabled on both point lights, though I think I would have to include the removal of that somehow in the material nodes of the ground material, though I can’t figure out how.

Packaged image:

I hope you can help me somehow. Should the description of my request not be clear, please say so, and I’ll try to edit the question, to make it clearer.

I’ll include my test blend file (with packaged resources), so that anyone who wants to help, can take a look at every parameter and my setup.- Thank you very much in advance.

*.blend file: *
https://drive.infomaniak.com/app/share/139668/5c09308a-4b00-4600-925d-ec3cdd494f07

PS: I just joined today but have been using Blender for quite some time (on and off for about 8 years, though never actually worked on a serious project, just always learned bit by bit with no real goal, until now). I’m sure, I’ll be able to contribute and hope for a good and happy time together :slight_smile:

I want to help but I have trouble understanding the description (English is not my first language).

Do you have any reference for the final result of what you’re trying to do (or close to it)?

Hi Lehuan. That’s ok. My conversational english is ok, but my technical english lacks a certain flair as well.
Here is a picture of what I mean (with a more in-depth description)

The outline in GREEN is the lighting I want to have and keep.

As you can see in both versions (ground with diffuse shader or with my own node setup) have that certain circular “specular” (reflection of the point light itself or whatever, I don’t know), which I’ve marked with an ORANGE outline. This specular I don’t want to have. Each such speck overlays the shadows from potential other light sources.

The markings in BLUE show where the shadows should just be visible the same as outside the ORANGE circles. In my case, I want them to be visible for each and every single light source in a full on black shading, but the mentioned specular of both point lamps (in this case) overlap the shadow of the other.

To summerize: The overall lighting of the ground (GREEN) I want to keep. The overlaying inner circles (ORANGE) should not be there (e.g. I don’t want them to exist at all) and the shadows (BLUE) should be visible in their entirety inside the overall lighting (GREEN area) and not be overlapped by the “second” lighting of the light sources themselves (ORANGE CIRCLES).

I hope, that is a little bit more clear. Thank you very much, for taking your time to look at my problem.

You can do that in Cycles with a shadow catcher, not Eevee. The trick with Shader to RGB woudn’t help.

So there is no way to do that in EEVEE? Even with a totally different node setup? Or some other trick? I’d really rather not use Cycles.

From my little knowledge, it’s not possible. That orange areas is not really specular, they’re the lit parts of the plane by the point lights.

Your goal is to have the whole plane lit (or at least the green area) while still catches shadow, which is impossible in PBR.

It’s possible in compositing by having a plane that only catch shadow rendered on top of the lit plane. And an offline ray tracing renderer like Cycles can do that, not a real time forward renderer like Eevee (from my little knowledge).

Deferred renderer (like UE4 default) should be possible by playing with the GBuffer, so you may want to change the software if you prefer real time rendering.

Hmm ok. That’s really too bad. I don’t really have the cpu or gpu power to actually render out my animations in a decent amount of time to make the workflow bearable. And I really want to use blender, cause I’m really comfortable using it in comparison to other 3D editors.
I’ll see what I’ll decide. If I leave that particular feature out of my animations or I change to cycles and just have to work with the hardware I have.

Anyway, thank you very much for taking your time to answer my questions.

How would you do that then in cycles? Do I have to have two different planes in the same place, and use different render passes on two different render layers and “alpha over” them together in compositing?
If you could point me to the direction, I can play around with it to gather more information, that can help me decide.

You can try this: ShadowCatcherExample.blend (763.0 KB)

Feel free to ask if you have any question.

I’ve added a second shadow catcher, point light and third render layer and updated the compositor to include the new render layer in the final result.
This actually looks like exactly what I was trying to achieve:

Do I see that correct, that for every light source, that should throw a shadow in the same lit area, I have to add a render layer, a shadow catcher and update the compositing nodes, or can I use for one lit area (independent of the count of light sources) just two separate render layers: one for the lit surface and one for all the shadows?

Thank you again :smiley:

I’m having trouble reading now :v

May I ask, do you know how compositing work in Blender?

Somewhat but I mostly just used simple renders with no or just really basic compositing. I better have a more in-depth look into compositing in general and gonna see, how I’m gonna use it in my finals.

This already helped me a lot so thank you again. I’m gonna gather some more information and come back to you, should I have more questions, that I can’t answer myself if that’s alright :slight_smile:

Although I don’t really understand what you asked, but I don’t think you need to add another shadow catcher. A shadow catcher will just catch every shadow casted on it, no matter how many light or object.