Announcement

Collapse
No announcement yet.

Visibility of lights not respected

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Visibility of lights not respected

    Hi!

    Can it be that the visibility of lights or lights which inherit visibility, aren't properly respected in rendering?

    When I link a light to a box and set visibility of the box to 0, the light shines still with full power in rendering. I would expect, that the light multiplier and the visibility of the light object would fade down properly with the visibility of the object where it is linked to.

    Thank you and greetings!

  • #2
    Hi,
    I don't think that such attributes are being inherited, only while something is parented together. Visibility and transformations will be, but nonsharing attributes do not. Lights and geometries are an objectclass on it´s own.
    You have still to define, which parameters are being wired together. Visibility and intensity in this case via wire editor for instance. This works anyway, regardless if they are parented or not.

    hope it helps =)
    Last edited by caypiranha; 10-11-2021, 04:58 AM.

    Comment


    • #3
      Visibility is inherited by default in 3dsmax by simple parent to child links.

      E.g.:
      For me it would be logical, if the lights which are linked to a car that is faded out by visibilty, will get darker until off along with the car. Currently the lights stay visible and are shining even when the car is completely invisible at 0.0 visibility. So you get hovering ghost lights and trash renders.

      Comment


      • #4
        Lights in Max do not have a visibility attribute, only geometry does.
        You can check this yourself, with any light type (not just V-Ray's), by querying its object properties: the visibility spinner is permanently grayed out.
        You can definitely link the multiplier of the light to the visibility track of the parent, however, and have them fade that way (via. f.e. the wire parameters dialog.).
        Lele
        Trouble Stirrer in RnD @ Chaos
        ----------------------
        emanuele.lecchi@chaos.com

        Disclaimer:
        The views and opinions expressed here are my own and do not represent those of Chaos Group, unless otherwise stated.

        Comment


        • #5
          Originally posted by ^Lele^ View Post
          Lights in Max do not have a visibility attribute, only geometry does.
          You can check this yourself, with any light type (not just V-Ray's), by querying its object properties: the visibility spinner is permanently grayed out.
          You can definitely link the multiplier of the light to the visibility track of the parent, however, and have them fade that way (via. f.e. the wire parameters dialog.).
          This is only half true! Please let me explain.
          Lights have no active visibility attribute. Simple example: When you link a light to a box and set the visibility of the box to 0.0, the visibility of the light will also turn to 0.0 . This works for any visibility value between 1.0 and 0.0 . You can verify it by looking into the object properties. So the light inherits the visibility properly.
          Another method to control the visibility of a light directly is, when you select a light, open curve editor, select the light root object in curve editor, go to menue "Edit" -> "Visibility Track" -> "Add". Now you have a visibility track on the light directly and you can set keys in that track and edit the values of that keys (even if the attribute in object properties dialog is still greyed out, but you can do it via curve editor).

          Even when the visibility of the light is 0.0 , no matter if its by link inherited or by direct key in the controller track, the light renders still with full strength and is visible 100%.

          I've made a video to show you that process, but unfortunately the attachment size limit of this forum is too low, so I can't upload it here.

          All in all, it would be nice if VRay could respect the visibility for lights. This would be a huge benefit and timesaver.

          Comment


          • #6
            Adding the track makes no difference to light's visibility.
            Add the track, set it to 0, and the (max's, not v-ray's) light will still shine as normal.
            As stated, in Max no light subclass obeys visibility.

            attached, a max spotlight with a zeroed, animated visibility.
            Attached Files
            Last edited by ^Lele^; 18-11-2021, 01:45 AM.
            Lele
            Trouble Stirrer in RnD @ Chaos
            ----------------------
            emanuele.lecchi@chaos.com

            Disclaimer:
            The views and opinions expressed here are my own and do not represent those of Chaos Group, unless otherwise stated.

            Comment


            • #7
              Originally posted by ^Lele^ View Post
              Adding the track makes no difference to light's visibility.
              Add the track, set it to 0, and the (max's, not v-ray's) light will still shine as normal.
              As stated, in Max no light subclass obeys visibility.
              I don't care about 3dsmax default lights or others. We use VRay and VRayLights, so this is a request for you VRay guys to make it possible, that the renderer may respect the visibility attribute of lights, please. Maybe there is a way to call the value of the visibility parameter of any object, no matter the class, via code? No matter if its a inherited value or a directly set value. Maybe you can try it, please?
              When I can see in the GUI that my light has visibility of 0.5 when its linked to a box with visibility 0.5, why you can't call it?

              Thank you and greetings !

              Comment


              • #8
                Originally posted by TubeSmokeGuy View Post
                I don't care about 3dsmax default lights or others.
                Pointing you to the max spotlight is meant to show that it's an intrinsic, non-overridable, superclass property in Max.
                Caring or not can't change the fact we are limited there, and can't work around it.
                Something may or may not be changed for, f.e. rendering via standalone, but something this crucial is a mainstay in the way Max works (it's the same with *any* renderer within Max, which should also help convince you it's not doable.).

                Use wire parameters instead, and you'll be gold.
                Lele
                Trouble Stirrer in RnD @ Chaos
                ----------------------
                emanuele.lecchi@chaos.com

                Disclaimer:
                The views and opinions expressed here are my own and do not represent those of Chaos Group, unless otherwise stated.

                Comment


                • #9
                  Originally posted by ^Lele^ View Post
                  Pointing you to the max spotlight is meant to show that it's an intrinsic, non-overridable, superclass property in Max.
                  Caring or not can't change the fact we are limited there, and can't work around it.
                  Something may or may not be changed for, f.e. rendering via standalone, but something this crucial is a mainstay in the way Max works (it's the same with *any* renderer within Max, which should also help convince you it's not doable.).

                  Use wire parameters instead, and you'll be gold.
                  Okay. I understand that it's limited by max. Thanks for the explanation.

                  But creating wire parameters for multiple lights is a lot bigger effort than simply pick all the lights and link them. So if it could work (currently it doesn't, as you stated), it would be much better to directly respect the visibility value for the rendering of lights.
                  I will ask the 3dsmax guys about it. Maybe we can move that stone anyhow.

                  Also wire parameters are not very reliable (e.g. scene merge) and easy to break accidently. No good option in my opinion.

                  Comment


                  • #10
                    Feel free to ask AD to change the superclass, we don't have anything against adding the property, on our side.
                    You can surely script your way out of wiring hundred of lights.
                    Lele
                    Trouble Stirrer in RnD @ Chaos
                    ----------------------
                    emanuele.lecchi@chaos.com

                    Disclaimer:
                    The views and opinions expressed here are my own and do not represent those of Chaos Group, unless otherwise stated.

                    Comment


                    • #11
                      As Lele mentioned, Visibility is only for geometry superclass, it is not something can be changed.

                      You can try Parameter Collector or even Scene Explorer for mass control of lights. You don't have to wire.
                      Last edited by gandhics; 18-11-2021, 02:25 AM.

                      Comment


                      • #12
                        Indeed, gandhics is very right.
                        There are a few ways around the problem, not just parameter wiring.
                        Lele
                        Trouble Stirrer in RnD @ Chaos
                        ----------------------
                        emanuele.lecchi@chaos.com

                        Disclaimer:
                        The views and opinions expressed here are my own and do not represent those of Chaos Group, unless otherwise stated.

                        Comment


                        • #13
                          Originally posted by gandhics View Post
                          As Lele mentioned, Visibility is only for geometry superclass, it is not something can be changed.

                          You can try Parameter Collector or even Scene Explorer for mass control of lights. You don't have to wire.
                          How would Parameter Collector help to create the desired effect without huge setup effort? - I don't think thats a good solution. It's simply not simple.

                          Same for Scene Explorer. Shure you have mass control but no logic or relationship. So you have to do it manually every time.

                          Also setup multiple wire parameters per script is far from a simple solution.


                          I wish a simple and for me logical funtionallity, that if my light inherits the visibility from its parent, the light becomes darker until off / invisible, too. I think this would be good. Wouldn't it?
                          Last edited by TubeSmokeGuy; 18-11-2021, 03:14 AM.

                          Comment


                          • #14
                            simpler would be rendering the lights as aov's and then you can control everything in post, no re-renders at all The simple solution you want would be in Autodesk's court, so you may wish to add to the uservoice wishlists

                            cheers!

                            ps: thinking about it more, your fading light out with the geometry turning invisible would look incorrect no matter what, as you'd start seeing the light *through* the car as the car geo turned invisible.
                            Last edited by Gunnah; 18-11-2021, 12:46 PM.

                            Comment


                            • #15
                              Originally posted by Gunnah View Post
                              ps: thinking about it more, your fading light out with the geometry turning invisible would look incorrect no matter what, as you'd start seeing the light *through* the car as the car geo turned invisible.
                              Not to mention seeing the lights behind those fading lights.
                              There are good physical reasons why lights do not take notice of the visibility track, i doubt AD will be keen to change that.
                              However, as suggested, if you moved to post then you could do what you pleased.

                              As for simple or hard, it's only a matter of familiarity.
                              Proceduralism takes some effort to build (i.e. script -or not- the wire parameters.), non-proceduralism is quicker off the bat, but will require redoing each time.
                              Lele
                              Trouble Stirrer in RnD @ Chaos
                              ----------------------
                              emanuele.lecchi@chaos.com

                              Disclaimer:
                              The views and opinions expressed here are my own and do not represent those of Chaos Group, unless otherwise stated.

                              Comment

                              Working...
                              X