Home Technical Talk

Managing lights in 3ds Max

ElleKitty
polycounter lvl 3
Offline / Send Message
ElleKitty polycounter lvl 3
As my scene complexity rises, it becomes harder and harder to keep track of all lights in my scene. I am supposed to make my light (the model) and then put an appropriate light-object inside and that'll do. I have found that this only works well if you have one or two such lights in the entire scene, however if this light fixture needs to repeat many times, I am either forced to use groups (groups are evil, they dont truly update if i make changes to one, even if instanced), and my only known other alternative is to copy these objects as-they-are and leave them to be loose. This is a management nightmare because instead of one object in the fixture I must now manage, say, five. Per fixture. I have even looked into the new container objects, however they do not play well with any lights that are placed inside them. Besides, if those lamps have, say, an adjustable angle... editing one angle in the container would affect all of them in the scene.

Furthermore, I would try and collapse the model to as little pieces as possible (one object and one linked light) but this works pretty badly in viewports. Nitrous insists to create horrendous amounts of viewport noise if the light shines through another object, even if the object is entirely transparent (zero diffuse, max transparency, IOR 1.0) which can be only solved if I set the transparent object to be separate and to not any create shadows. Oh, and this is very difficult to manage as well, as it can only be set on object-basis, even if the object is instanced.

This is a long-standing problem with me, and I thought that some solution will come up, either with technology, or from me figuring it out, but I'm sort-of emptyhanded even even after all this time. How do I deal with large amounts of lights, light objects, and so on? How do others deal with this?

Replies

  • monster
    Options
    Offline / Send Message
    monster polycounter
    This won't solve all your issues but the Light Lister tool will help manage all lights in one location.
    http://docs.autodesk.com/3DSMAX/16/ENU/3ds-Max-Help/files/GUID-1A51D621-55E3-48E6-B958-5378BBB60574.htm

    But I think your best solution is to find a tech artist to help you make a few custom tools that you need. Or learn a little scripting yourself.
  • ElleKitty
    Options
    Offline / Send Message
    ElleKitty polycounter lvl 3
    Yeah, I forgot to clarify that I'm familiar with Light Lister, but this only manages the light-objects, but not the models of the various fixtures. I suppose that there's no easy way then? The scripting itself seems pretty daunting... I dont suppose that everyone approaches it by using scripts or by hiring a techie either?
  • Eric Chadwick
    Options
    Offline / Send Message
    Scripting definitely helps manage complexity, and with mass-editing.

    Have you tried using the Layer Manager? I'm using it a lot lately, to manage lights and meshes for complex interiors.

    There are some nice scripted versions too, like Outliner, etc.

    Also take a look at Soulburn Scripts, many great tools for editing en-masse.
  • Mark Dygert
    Options
    Offline / Send Message
    I wonder if containers could work better? I've run into performance issues when I get a lot of containers in once scene but they would handle the instancing/updating a lot better.

    I agree with monster I think you're starting to dive into an area that not many people have to go, at least not around here. Most lighting in games is handled in an engine which have their own tools (or lack there of) to do lighting. Off the top of my head I would suggest checking scriptspot.com and soulburn scripts for object replacement scripts. I know Neil Blevins (soulburn) has a replacer script but I'm not sure if it works on lights and groups, it probably does but there might be something specifically tailor made.

    Still what you need done doesn't sound all that hard to script, build an array of objects that you want to replace and an array of their replacements object. Run a "for loop" over them, setting the transform of one to the other. How you build those arrays is really up to how your scene is built. This is a pretty good case for learning some simple scripting like Monster pointed out.
Sign In or Register to comment.