Jump to content
Hash, Inc. Forums

Shadow darkness shouldn't pass specular


Recommended Posts

I've been "bit" more than once by the way the Darkness attribute works when a light cast shadows. I know why the variable is there; it's a way to fake ambient light filling in the shade. But I have a problem with the way it affects specular highlights. It still lets them through, just attenuated.

shadows_darkness_100 and_80.jpg

The specular highlight is faking the reflection of the light source in the sphere. Even if the shadow darkness is 10%, that "reflection" still shouldn't be visible. I have no idea whether it's possible for Stefen to fix this in the code but it would be a nice improvement.

Link to comment
Share on other sites

My limited understanding of how Shadow Darkness works is that it renders the shadow as if object were less than 100% opaque. So with 80% Darkness, 20% of the light is still  passing through the object and you get 20% of whatever the specular effect would be with no shadowing object at all.

I'm doubtful there is a simple fix.

 

 

The easiest work-around is to model and light and test as you normally do, then at render time ...

 

Make one pass with your intended Darkness setting, but with the light's Specular Property OFF....

SpecOFF0.jpg

 

 

Then a second pass with Darkness set to 100% and the Specular ON...

SpecON0.jpg

 

Then in Photoshop or other image editing app that does Layers and composite modes, composite the two together with the top Layer set to "Lighten" (sometimes known as "Maximum"). "Lighten" chooses the brightest version of each pixel in making the final image...

SpecOFF+ON.jpg

 

 

Link to comment
Share on other sites

A one-pass solution is to use two lights, one Diffuse-only with the shadow darkness set as desired, and another that is Specular only with Darkness set to 100%.

For some reason the Specular light must be ray-traced and have more than one ray.

In this sample PRJ I constrained the Spec light to the Diffuse light so that only one needs to be manipulated in the Chor.

I also gave the Spec light Expressions to take intensity, cone width and width softness from the Diffuse light so those parameters only need to be set in the Diffuse Light.

SpekDarkness004.prj

 

Diffuse-only light...

TwoLightDiffuseOnly000jpg0.jpg

 

Specular-only light...

TwoLightSpecOnly000jpg0.jpg

 

Both lights ON...

TwoLightBoth000.jpg

 

 

Link to comment
Share on other sites

My best solution so far is to set the darkness of both the white sun and concurrent negative blue sun darkness to 100%. Outside I can achieve believable ambient fill with global ambient intensity at 140% from the surrounding sky dome. However inside an enclosure, not enough global ambient rays enter to produce adequate exposures and I have to crank occlusion sampling to 100% to minimize the noise it generates on surfaces. So to get a reasonable exposure inside something like the WIP observation car (shown attached) I put a properly tweaked klieg outside each window pointed inward. The passenger car is made of two models, exterior and interior. These ambient skylight kliegs get put into a light list so only the interior model is lit by them. I'm not sure I've got the right light levels but I'm getting close.

 

  • Like 1
Link to comment
Share on other sites

12 hours ago, R Reynolds said:

My best solution so far is to set the darkness of both the white sun and concurrent negative blue sun darkness to 100%. Outside I can achieve believable ambient fill with global ambient intensity at 140% from the surrounding sky dome.

Yes, i think not using partial darkness at all is best. I avoid it for any "finished" work because it creates painfully flat shadows. It's really just a cheat left over from the stone age.

 

Quote

However inside an enclosure, not enough global ambient rays enter to produce adequate exposures and I have to crank occlusion sampling to 100% to minimize the noise it generates on surfaces.

Ya know... you can animate that Global Ambience Intensity setting to be higher when the camera is in the train car.

But for these interior shots you are doing, even more satisfying results could be had with radiosity. I doubt the render times would be much more painful than the 100% AO times.

Link to comment
Share on other sites

Quote

...you can animate that Global Ambience Intensity setting to be higher when the camera is in the train car.

True, but intensity tests I made showed that a global ambience bright enough to get a good exposure inside the car totally over exposes the outside surroundings as seen through the windows. What I'm going for is a universal lighting setup so the camera can show a character sitting inside the car looking out as the train pulls into the station. Then, in a continuous move, the camera can follow that character as he gets off and walks along the platform with all intensities being believable.

 

Quote

even more satisfying results could be had with radiosity

You've mentioned this before concerning images of my large train station model. I seem to remember Yves writing that radiosity only works in small enclosed spaces. Once a character walks into the giant rooms of the station or for that matter "outside" under a 1 mile (1.6 km) diameter sky dome, I assumed all bets were off.

Link to comment
Share on other sites

Quote

I seem to remember Yves writing that radiosity only works in small enclosed spaces.

Radiosity is for mostly enclosed interiors but scale should not be the problem

Here is an image from Yves' radiosity tutorial page...

Cathedral-Small.jpg

 

The lightness/darkness/contrast result is all adjustable.

The strategy for success is not requiring that what works for exterior lighting is what has to be used for interiors and vice-versa.

 

 

On 4/30/2022 at 7:47 PM, R Reynolds said:

What I'm going for is a universal lighting setup so the camera can show a character sitting inside the car looking out as the train pulls into the station. Then, in a continuous move, the camera can follow that character as he gets off and walks along the platform with all intensities being believable.

A universal light set up that satisfies that need probably isn't possible to do unless the huge difference between "outside" and "inside" is what is wanted. They don't do it in live-action Hollywood movies and they don't do it in animation studios.

I can't think of a Hollywood live-action film that does such a shot without substantial trickery. When you see the outside from the inside in a movie it is rarely real. It is usually either rear-projected or green-screened or a model or a painting that has been placed outside the window of the in-studio "set".

When they can't shoot in a studio and real daylight outdoors has to be seen through a real window they typically have giant sheets of grey film they put outside the window to darken the outside view to mate with interior lighting they do inside.

In studio animation they design lighting for each shot individually and only after it has been finaled on the animation. Back in the 20 'oughts one of our forum members was working at DNA studios on "Ant Bully" and he gave me a tour of the studio. Everything the animators had to work with was in gray. No lighting or texturing was done until the shot was finished.

If I had to do a shot such as you describe I might render one pass lit for the outside with AO, with the train interior all-black...

TrainCarShotExt.jpg

 

Another pass lit for the interior lit with radiosity or bright AO, with the outside all black...

TrainCarShotInt.jpg

 

And composite the two together...

TrainCarShotInt+Ext.jpg

 

There would be other ways to do it and get a good result without needing the radiosity.

 

 

 

Link to comment
Share on other sites

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...