Making a mirror to really reflect light on objects (FireFly)



  • It all started harmlessly:

    I just wanted to make a large, wall-mounted mirror for my new freebie.

    But when I rendered the promo images I found that, unlike in reality, all light shining INTO the mirror isn't reflected back onto any objects in front of the mirror.

    K



  • To clarify the problem:

    0_1540055390600_MirrorError1.jpg

    So this was a dead end street.
    :..(

    A different approach, using a light emitter (ambient value set to 1.000, colour white.

    0_1540055429200_MirrorError2.jpg

    In a dark room: if I have a Varta lamp and shine it INTO a morror, the light ray is reflected onto the opposite wall (or will light my face, depending on direction)

    Also, think of light signaling using mirrors, as they did with heliographs:
    You couldn't recreate this in Poser because a Poser "mirror" doesn't reflect actual light. Instead it swallows incoming light rays; nothing is sent back from the mirror's surface.

    My question:
    Is it possible to create a mirror in Poser FIREFLY that actually REFLECTS LIGHT, instead of just rendering the backside of objects in front of it as they look from behind?

    Karina



  • @karina you can do this in SF with caustics turned on.



  • Thanks for the reply @ghostship!

    However, I want this to work in poor old FireFly too, if possible.
    Not all people have the hardware (or the OS needed by P11) to run P11 and render with SuperFly.

    Explanation:
    I'm still on WinXP (imagine...), and I can't install P11 in XP.
    OTOH, my system is too old to be able to run Win10 and P11 at a reasonable speed, so I'm still stuck with PP2014.
    I think I'm not the only one. Not everybody is rich enough to go and buy a new computer just for the sake of a hobby...
    -especially if the old rig is still running fine as it is.

    If you have an example for the SF shader using caustics, I could include it as an alternative, for P11 users at least.
    Thank you!

    K



  • This is probably a stupid question, but do you have Indirect Lighting turned on? I'm away from Poser right now, so I can't check if that would help.



  • @willdial
    There are no stupid questions, just silly answers, mostly by me ;o)
    And of course your question isn't stupid because ever so often the devil is in those little details.
    Yes, IDL is turned on, raytrace bounces set to 3 (even tried 5 but no changes).
    K



  • I think the laws of physics are working against you.
    I was able to work up an example of your scene. I used Poser Pro 2014.
    0_1540145058591_MirrorLight.jpg
    I used a single point light with a blue box and a cloth plane for the mirror. The ground plane is shown. All that is inside a white sphere.

    It looks like the mirror is blocking the ambient light. And the light reflected off the mirror is not able to illuminate the box.
    This could be how Firefly calculates the bounces from a raytraced surface. I cranked the number of bounces to 12, but that overpower the scene.

    However, I did a test in a real life mirror. When I blocked the light with my head, my face was dark. Just not as much in the example scene.

    So, I took a cue from the mirror in my bathroom. I put a light (spot light) above the mirror and that seem to take care of the issue.
    0_1540145776024_MirrorLight 2.jpg

    I hope this helps.


  • Poser Ambassadors

    @karina said in Making a mirror to really reflect light on objects (FireFly):

    @willdial
    There are no stupid questions, just silly answers, mostly by me ;o)
    And of course your question isn't stupid because ever so often the devil is in those little details.
    Yes, IDL is turned on, raytrace bounces set to 3 (even tried 5 but no changes).
    K

    I love that the question was asked about "indirect light" but you answered with "Yes IDL is turned on". It is, indeed, IDL, not IL, and what does the D stand for? Diffuse.

    What is a mirror doing? Specular. You get NO diffuse light bounce from a purely specular surface.

    Since FireFly is only able to simulate diffuse light bouncing around, you need a diffuse reflector to do it.

    The solution is clear: place a diffuse light reflector surface (a second surface) where the mirror is, slightly behind it. The diffuse reflector can participate in IDL for you. Make the mirror (specular surface) invisible to IDL. This will reveal the diffuse reflector behind it for the IDL calculation.


  • Poser Ambassadors

    I previously demonstrated this at RuntimeDNA but they're gone.

    This is FireFly. I stacked a mirror box and a white diffuse reflector box. This setup is an illustration intended to reveal the pieces. You would not do this for a finished product.

    0_1540206435431_b8f4c229-5695-45e4-9205-1598280d7f52-image.png


  • Poser Ambassadors

    Note that you can reverse the order, placing the diffuse reflector in front of the mirror, and make the diffuse reflector invisible to the camera.



  • @bagginsbill said in Making a mirror to really reflect light on objects (FireFly):

    I previously demonstrated this at RuntimeDNA but they're gone.

    This is FireFly. I stacked a mirror box and a white diffuse reflector box. This setup is an illustration intended to reveal the pieces. You would not do this for a finished product.

    You know, I think I had seen that post over at RUNTimeDNA. I think I may have even copied the entire thread. The problem is apparently, the entire Internet is copyright protected. You can't repost anything without the express permission of whoever originally posted it the first place. Assuming you even know who that is or how to contact them. It's just easier to sip a bottled water and hope someone eventually finds the answer they're looking for. :)



  • @eclark1849 I meant to ask you, in light of @bagginsbill shedding a few more of his inestimable pearls of wisdom, whether you thought that links to such posts/threads/topics would be a productive thing for your index to host. IOW, You distill the sage advice we've just received into a few words of description, and link to the first post where the answer is being described.

    I know that it could be done on this forum by pinning the topic, but that gets tedious to navigate when there are so many pinned topics before new topics appear.



  • @anomalaus said in Making a mirror to really reflect light on objects (FireFly):

    @eclark1849 I meant to ask you, in light of @bagginsbill shedding a few more of his inestimable pearls of wisdom, whether you thought that links to such posts/threads/topics would be a productive thing for your index to host. IOW, You distill the sage advice we've just received into a few words of description, and link to the first post where the answer is being described.

    I know that it could be done on this forum by pinning the topic, but that gets tedious to navigate when there are so many pinned topics before new topics appear.

    Honestly, no. in my personal opinion and experience, links don't always stay linked to what they're supposed to.



  • @bagginsbill
    Yes, that's exactly what I had in mind.

    From the render I guess that the light is coming in from the front, offset ca. +10 degrees on the Y axis.
    In my setup, the back side of the ball would be pitch black while the front is fully lit.
    Your setup looks perfect - the back side is lit just I would expect it in a RL situation.

    Pardon my if I got the terminology wrong in the first place; I always thought IDL stands for InDirectLight...
    But then, "abbrevationism" in other languages never was my strong point.
    :o/

    In the meantime, I searched wide and far for "diffuse reflector/reflections", but nothing I found was really helpful, nor applicble in my case.

    For my freebie I'd prefer to add the diffuse reflector a tiny tad in front of the actual mirror surface and make it invisible to the camera, to make posing easier when a person is actually leaning on the mirror surface.

    Could you help me with an actual shader setup?
    I've tried almost 30 different setups, but all were to no avail: Either the diffuse reflector didn't work, or the mirror didn't work.
    I'm really out of options now...

    Thanks for taking the time to read this!

    Karina


  • Poser Ambassadors

    @karina
    It is very simple.
    Here a mirror surface with a single point light behind the girl.
    The face gets hardly any light in the mirror
    0_1540303147433_mirrorNoDiffuse.png
    Now I add a diffuse reflector. You can use a one sided square, make it the same dimension as the mirror and place it a tiny bit in front of the mirror - or you can go to the group editor and subtract the mirror surface as a prop (no need to fiddle with dimensions and positioning).
    Make the surface of this new prop a white surface - no specular, just white diffuse color. Now set the properties of this new prop to NOT be visible in camera. (Light emitter must be on, which it is by default).
    Now you get this result.
    0_1540303169814_mirrorWithDiffuse.png

    This is the material used on this new prop:
    0_1540303184288_diffusereflectormat.jpg

    And this the properties:
    0_1540303254830_diffusereflectorproperties.jpg



  • @wimvdb
    Helemaal bedankt, maar het werkt niet in mijn PP2014...

    I've set up the reflector prop, it's properties, and the shader exactly like you posted.
    If I use the "Raytrace Preview" window, it all looks exactly as I think it should . The dice (resp. the girl) is lit on the side facing the mirror.

    Still, in the final render I get the old result: everything directly facing the mirror is in complete darkness (as shown in my second post, above).

    However I have another suspicion:
    A few weeks ago Poser crashed in the middle of closing it, and after that I had some weird effects like the hip of a figure not heeding click poses, and some other defects.
    I could fix the most obvious problems manually with the help of some backups.
    Unfortunately Poser (like many other programs) likes to scatter his vital files all over the place, so it's difficult to collect what's needed.

    But who knows what else got messed up in that crash?
    It just occurred to me: an object that should NOT be visible in the render still showed, whatever I did to switch it OFF!

    So I think I must open the big can of worms and reinstall Poser starting from zero point.
    Wish me luck!

    I'll report further results as soon as Poser is installed again.

    Karina



  • OK, I give up...

    I completely removed Poser and made a fresh install.

    The problem with the object that should not be visible persisted, so I looked at the file and found that the variable "visibleInRender" was set to 1 and couldn't be turned off from inside Poser (something I already noticed when I created SASHA's "Feet Presets" for shoes).
    Setting this to zero manually fixed THIS problem (...one step at a time, like in a minefield...)

    Next I set up a completely new document.

    • Rendered in PP2014, no changes.
    • Rendered in PP2012, and there IS a change!
      0_1540395365700_render comparison 1.jpg

    Though it's not quite as good as I expected.
    The backside of the dice is still too dark, and why is there a different brightness of the ground?

    I also sent this scene to a friend of mine who has Poser11 SR7.
    Here are HIS results:

    0_1540395487900_render comparison 2.jpg

    • So Firefly still gives the same old results (even worse IMO).
    • Superfly is the one which shows exactly what I would expect to see in the real world! (well, except for the general light level being too bright compared to SuperFly, but this was a quick test)

    Sorry for the missing dots on the dice; I forgot to send him the displacement map...

    SUMMARY:

    • Three versions of Poser, two render engines.
    • Each deliver a different result for the exact same file.

    Given this different "User Experience", I've decided to publish my freebie with just the basic texture setup for the mirror and the "diffuse reflector", leaving it to the user to choose his best option for the program version and renderer he uses.

    Thank you all for your help!

    Karina



  • @karina Where did you publish your freebie? I would like to try it out in PP2014.

    I took @bagginsbill advice and added a reflector behind the mirror in the test scene. The mirror is black and the reflector is white.
    0_1540426577283_MirrorLight 04.jpg

    The mirror's settings are:
    0_1540426687255_MirrorSettings.jpg

    The reflector's settings are:
    0_1540426778993_ReflectorSettings.jpg

    With these settings, I was able to remove the darkness.
    0_1540426857507_MirrorLight 03.jpg
    If you would like, I could send you my test scene to see how it works on your system.



  • In a last attempt, Karina removed herself, and tried to reinstall Karina v2.0 . But wait ... it's not possible she removed herself forever ! nooooo ...

    Sorry bad trolling :)



  • Contrary to popular belief I did NOT uninstall myself - I found the ABORT button just in time XD

    Thank you all for your help, and a special thank you @willdial for the offer to try my setup by himself, because that solved the problem.

    In an effort to provide him a neat file for testing, I made a new one from scratch.
    I gave it a try and it works!
    So there must have been something fishy in my old test pz3.

    @willdial, the set isn't published yet, but I probably will do so this weekend and post the ShareCG link here.

    Once again, many thanks to all for your help!

    Karina