Improved “Shadows Only” Material

If you have used “Shadows Only” material option, you probably have noticed how hard it is to get it rendered properly. That setting makes material to render only shadows, rest of the surface becoming transparent. This can be especially useful when compositing 3D-graphics over images.

Unfortunately, it wasn’t previously working quite well under certain circumstances:

  1. Shadows were very faint unless lamp distance was set near infinity.
  2. Lamp “Energy” value was ignored.
  3. “Add” type Ambient Occlusion was calculated incorrectly when AO “Factor” was other than 1.0. (Lower factor made shadows fade off and higher factor made them stronger.)
  4. Same with Environment Lightning. Changing “Energy” from 1.0 didn’t work as expected.

So I implemented an alternative method, that can be chosen from a drop menu below “Shadows Only” option in materials panel.

New UI panel to select shadow type.

New UI setting to select shadow type.

Currently there are 3 shading types:

  • Shadow and Distance: The old method.
  • Shadow Only: New and improved method.
  • Shadow and Shading: An all new option that even renders dark / lightless areas as shadows.

Here are some comparisons between previous and new method. Renders where “SO” is disabled are also included to see how shadows “should” look like. (Click image to make it larger.)

A single light with small falloff distance.

A single light with small falloff distance.

Ambient Occlusion and Environment Light enabled.

Ambient Occlusion and Environment Light enabled.

Two lights with different energy.

Two lights with different energy.

However, even this new method isn’t perfect. Due to color correction and scalable dynamic range in general, it’s impossible to calculate specific alpha for shadows so that it would match rendered image perfectly. But as far as I can tell, these new methods work very well in most cases!

17 comments 13,318 Views
  1. awesome!! glad these old nuyances are being tackled!

    keep it up!
    cheers

  2. a feature that I’ve been hoping would be better implemented for years now, coming from other 3d packages that handle shadow-only in just this manner(or similarly).

    THANK YOU Miika!!!!

  3. And here I thought it was just me being an idiot. Glad to see another part of Blender working properly. 🙂

  4. Amazing!… I love your developments MiikaH, always sooo functional and oriented to quality and “correctness” of the simulations… You remember me of Matt Ebbs developments, you both seem to use a lot Blender for production work but every time looking for realism and plausibility of results. Your developments have helped me big time in my projects!

    Keep the awesome work!

  5. Finally! this has been one of the most missed features which have made me use other apps for cgi in live action integration.

    thanks!

  6. reflections would be very nice <—

  7. This is faboulus, great work! Will this make it into the 2.57 version? 😀

  8. Amazing! 4 (or 3?) years ago, I’ve been very frustrated by this feature of Blender, being that it doesn’t do much of what it says, and I did solve the problem the hard way, creating several passes via compositing–which can really be cumbersome at times to setup. But from your implementation, I can see that this is the perfect solution to my several years old problem.

    Simply perfect!

    Thanks so much, MiikaH! As always, you always surprise the Blender community with your innovations! ^_^

    -Reyn

  9. This is fantastic. I’ve had many issues with the old Shadow Only option. Good on you for fixing it.
    But I wonder, why keep the old one? To me, it sounds more like a bug. Main issue now is that we have this huge dropdown menu taking up valuable space. I think it’s unnecessary – we have to be careful about adding buttons all over the place in the UI. Blender is bloated enough as it is! 🙂

  10. awesome!
    is this build available somewhere?

    also, the Shadow pass background should be white, and the projected shadow in the shadow “only” material does not appear in the pass.

    example:
    http://s2.imagefrog.net/show.php/147082_compositeshadow.jpg

    I hope you can fix it! =D
    bye

  11. I’m so glad you tackled this, MiikaH!

  12. Yeaaa!!!
    I’m Waiting exactly for that :D:D:D

    Ever a step forward 😛

  13. Oh MiikaH!!!! thanks for this, your code additions are very very usefull,. not so long ago I had a great headache when trying to work with shadow only when putting a model into a photo, ended up with painting shadows in photoshop… so this won’t happen anymore 🙂

  14. Fabulous – hope this makes 2.57!!

  15. Thanks for your work!

    But shadows are too dark in “Shadows Only” mode:

    http://itmages.ru/image/view/171495/31a17a9f

    Is it possible to make absolutly same shadows?

    I tried to change lamp energy, to turn on “falloff”, but shadows look differ 🙁

  16. Yup, that’ll do it. You have my appercaiotin.

  17. Wow,solved my problem,thanks.

  1. Leave a Reply

    Your email address will not be published. Required fields are marked *

     

share this story on