I’m in a bit of a dilemma about how to implement the UI for a particular feature for the newer builds so I need some input from you.
First the background:
In the process of updating the vray sun/sky/camera/lights for the next builds, it turned out that their intensity is not quite correct relative to each other (e.g. sky was darker relative to the sun than it should be, and both were many times darker relative to V-Ray lights with a given power). Similarly, the camera was a lot less sensitive than it should be (but about enough to compensate for the error in the sun/sky).
Further on, all of these have been updated to support the 3dsmax light units scale, so that they can compare to the 3dsmax photometric lights.
Obviously, V-Ray must still render older scenes in the same way as before for compatibility reasons. For newer scenes, the user should be able to decide if he/she wants to use the legacy sun/sky/lights/camera models, or the new one, as well as to be able to convert older scenes to the new models.
Now the question is, how to implement this as user interface. Right now, each of these (lights, sun/sky, camera) have options to use either the old light model, or the new one, as well as an option whether to respect the 3dsmax lighting units or not. These settings are adjusted in one when loading older files, and another way for newly created objects. However, it has been suggested that this may be too confusing and a global control would be a better solution. The problem is that I don’t see a place where I can put such global control - it is not specifically tied to the renderer itself…
Basically there are these options:
(*) Each object has separate compatibility/system units option;
(*) There are global controls for the compatibility/system units option in the Renderer dialog and these change with the render presets etc.
(*) There are global controls, but they are not related to the renderer (where would they go though?)
Im a bit out of sinc with max/vray. But it makes sence to me that option two (global control) is a better idea. Since as you mentioned above it maybe too complex for a user to adjust such settings per light/object, the global option such as another rollout in render globals will be of a great use. In there the user can specify what is controlled, lights, sun, sky, camera.
just my opinion…
Generally i’d vouch for Global controls. Tho it might be handy to have local overrides (Wouldnt know a case that would need it, but one never knows).
I guess it would fit best into either system or Global switches rollout. There’s options that i tend to find similar in the System rollout (like Max Compatible Camera space, Atmospheric evaluation etc)
Since the sun/sky and the physcam are two separate objects, and both have received updates to their model, I’d say keep them well separate.
After all, one may wish to use the physcam separate from the sun and sky.
Besides, as it works now, when a new sun /physcam are created, the legacy option is off by default on both, so one can forget about it.
Also, it turns automatically on when loading older scenes.
I may agree that when testing out combinations (as i kept doing of late), there are two tickboxes on two objects to keep switching, but i expect this to be well confined to testing.
Once production gets going, the legacy model is just forgotten, why clutter the already hefty render dialog?
I think that with the options on the lights, sun/sky, camera one can see better what is being controlled. With some instructions with illustrations it should not be hard to follow or figure out the procedure to follow. Don’t know how it would be in a global setting, I imagine there would be several settings, not just one button to click to make legacy or new, and the interface might get more cluttered (unless its a one or two click solution) rather than distributing the settings into the different dialog boxes for the separate elements.
Is there any way to have something like 2 buttons for ‘old/new’ within each element - sky, sun, and camera, and have them revert to old if its opened by an earlier version on vray but default to ‘new’ if you create one from scratch?
If its not automatic like that, i’d go for global, but my vote is ‘per object’ for now so it can be easily ignored.
I voted for the per object option seems like better control to me, but I would prefer that the scene just be auto converted to the correct values, I can see issues with compatibility forever if there is an override…
If 1.50 were already out it might make sense to add the override but as it is it should start clean, if we need to finish a set of jobs before upgrading then so be it.
I’m with Da_elf, one time question on opening old format scenes to keep UI as clean as possible.
Althoug there should be a maxscript to let people choose old or new model for lights, sun/sky or camera at any time. Something like 3rd poll option but with the chance to choose model individually trough maxscript.
The legacy option/system units checkboxes work fine where they are now, and the fact that you’ve got it working automatically is great, but I agree they’d be better served under the global rollout myself. I can’t forsee a reason why I’d want it to be a per-light option except if I were testing between old and new sun/sky/cams like Lele says - and who’s got time for that, anyways, except DaForce? hehe
I’m not going to pretend that I know exactly how this works, but I think it would make sense if there was a global checkbox in the VRay globals rollout that simply adjusted multipliers throughout.
This way values would still be displayed as they were on old scenes, but a global render-time setting would make the modifications at rendertime.