Author Topic: ShadowCatcherMtl Issue with LightMtl  (Read 5253 times)

2014-06-30, 20:32:47

GestaltDesign

  • Active Users
  • **
  • Posts: 64
    • View Profile
Came across this on public Alpha 7 using a white environment with Shadowcatcher floor.
Emission from light material appears to transmit through solid object and invert in colour in non direct contact.

Cheers,
Jon
« Last Edit: 2014-07-01, 10:52:55 by GestaltDesign »

2014-07-07, 23:23:32
Reply #1

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
This is the expected behaviour, since the lights are technically casting shadows - the shadows are just colored. To get the effect you probably want, an extra checkbox will have to be added to coronalights
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2014-07-08, 10:15:57
Reply #2

pokoy

  • Active Users
  • **
  • Posts: 1988
    • View Profile
I may be totally wrong, but how can this be expected behavior? In my eyes, there should be no shadow/tinting from the internal LightMtl in the lower part of the objects (for exampl, the left green light should show no purple tinting on the floor, it should be blocked by the object - how should the floor 'know' what color the light in the object has and show the complementary color, shouldn't there just be 'absence' of light?).

2014-07-08, 11:03:26
Reply #3

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
I may be totally wrong, but how can this be expected behavior? In my eyes, there should be no shadow/tinting from the internal LightMtl in the lower part of the objects (for exampl, the left green light should show no purple tinting on the floor, it should be blocked by the object - how should the floor 'know' what color the light in the object has and show the complementary color, shouldn't there just be 'absence' of light?).

Yet if the light would be above the object (for example CoronaSun), you would surely agree that there should be shadows. My question is: how do you decide what casts shadows and what does not? Is there a renderer that would determine it automatically?
« Last Edit: 2014-07-08, 11:16:42 by Keymaster »
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2014-07-08, 11:25:11
Reply #4

pokoy

  • Active Users
  • **
  • Posts: 1988
    • View Profile
I may be totally wrong, but how can this be expected behavior? In my eyes, there should be no shadow/tinting from the internal LightMtl in the lower part of the objects (for exampl, the left green light should show no purple tinting on the floor, it should be blocked by the object - how should the floor 'know' what color the light in the object has and show the complementary color, shouldn't there just be 'absence' of light?).

Yet if the light would be above the object (for example CoronaSun), you would surely agree that there should be shadows. My question is: how do you decide what casts shadows and what does not?

I agree - but what if the sun is entirely enclosed? Then it should not subtract any light, it just should show no effect at all, just like what I'd expect in the example from the OP. IMO the current behavior produces a lot of weird effects where all you want is the same shadowing that you'd get when you render these objects on a white floor. Basically, these are two different effects, one is subtracting light in shadowed areas (from what I see this is what happens now), the other one is not contributing in any way due to the light being blocked. After all, my knowledge of the math behind is very limited but the OP's example just feels 'wrong'.

2014-07-08, 11:42:16
Reply #5

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
yes, it feels wrong, but you cannot easily determine what is "enclosed" - the lights are inside bounding box of some object, but not inside the object itself. And even if they were, detecting if one object is inside another if not reliable and frustrating. And if you would use some rule like "do not cast shadows from objects overlapping the light", you would get sudden and counterintuitive changes when moving the light, as it would switch the modes.


So: while second mode is needed, it will be implemented via a checkbox, as I am not currently aware of any automatic sensible way to determine which mode should be used for which light.
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2014-07-08, 12:01:24
Reply #6

pokoy

  • Active Users
  • **
  • Posts: 1988
    • View Profile
I see - thanks for considering that optional checkbox!

2014-07-08, 12:43:13
Reply #7

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
In mental ray's shadow catcher there is a pick list for illuminators, which are lights, that are not intended to replicate light sources, that are already in the environment, but to introduce new CG light sources into the footage environment. So we are thinking to do the same :)

2014-07-08, 16:09:53
Reply #8

pokoy

  • Active Users
  • **
  • Posts: 1988
    • View Profile
Good to know!

I'm always using the standard build in Matte/Shadow material (or Blur's version of it), but the concept of a pure shadow catcher like this is flawed anyways since it's only giving you the shadow component, completely omitting any additive pixels like overbright light on the ground for example. In an ideal world, a shadow catcher would output both separately (through passes I guess), subtractive and additive components. I had some cases where I had to use the whole rendered image for the final comp instead of the shadow element only since it wouldn't reflect the additive light contribution on the ground and there was no way to achieve that in comp. So, whatever you do with Corona's version of a Shadow Catcher, it will be probably more complete than the options we have now.

2014-07-09, 21:32:04
Reply #9

GestaltDesign

  • Active Users
  • **
  • Posts: 64
    • View Profile
Gotcha, all clear now. Thanks for explaining, I should have twigged that inverted colour was showing true shadow colour, oops!
The abilty to deactivate shadows via checkbox would definately be useful in this case, I imagine an illuminated brake/tail light on a vehicle would be a good example for application with shadow catcher.
Cheers again.