Page 1 of 1

shad var support to ALL parameters, and auto add vars

Unread postPosted: Sun Jun 24, 2018 7:18 pm
by bvz2000
This is part of two requests that I am making. The both deal with the shading variable system, but they are independent requests in that it would be possible to do either one separately (in case one of them proves to be too difficult or unwanted).

The first is to allow us to control EVERY parameter with a shading variable. This would include things like geometry settings (transforms etc.) as well as ALL attributes of any node in the explorer (including renderer, image nodes, groups, etc.) Essentially, if it shows up in the attribute editor, allow us to control it with a shading variable.

The second is to auto-add a "hidden" variable name to every parameter. Right now, I have to manually add a variable to a parameter if I want to later control it via a shading layer. If you were to automatically add a variable to every parameter that can use a shading variable, I would not have to manually create them. For those that I wanted to customize, I could do that in the current manner.

For example in the current system:

If I have a color I (optionally) want to control, I would add the following to the parameter:

Code: Select all

Then, if I define that variable, I can override the manually set color with my custom color.

What I am proposing is that, in addition to this, there would be a hidden variable called:

Code: Select all

that would already exist on this parameter (as part of the system where EVERY parameter that can have a shading variable would already have a default variable attached). That way I wouldn't have to manually define my own variable. I could just use the existing variable to control any parameter via a shading layer.

This would require one other change of course. I would have to be able to use a variable even if it were not set to "variable mode" in that parameter. Right now, if I enter a variable but then "display" the actual parameter in the UI, then the variable is not accessible (i.e. the value manually entered is used and the variable is ignored). In order for this technique to be useful, I would have to be able to access a variable in the shading layer even if it were not "exposed" in the U.I.

Here is how I would use this system:

I could set overrides on many parameters using rules and shading layers. For example, I could stack up a bunch of shading layers each of which would arbitrarily change the shading parameters of different objects, all without having had the artist creating the original shading network to have to pre-expose the settings she thinks might be modified down the road. It would make shading networks even more re-usable (and quicker to create since we don't have to manually set up most of our shading variables), and starts us down the road toward being able to have a full-blown parameter override system similar to what we can do in Katana. (see my other feature request along these lines).

Re: shad var support to ALL parameters, and auto add vars

Unread postPosted: Mon Jun 25, 2018 10:45 am
by dboude

The first request you're asking will lead to a reconstruction of the whole scene during the render and this is unwanted as we want to keep Clarisse very reactive.

The second one is doable with a script. As the import / create reference actions are written in python you can add a custom script that creates those variable each time you import an object.

Cheers ;)

Re: shad var support to ALL parameters, and auto add vars

Unread postPosted: Mon Jun 25, 2018 6:49 pm
by bvz2000
The first request is not needed if you are adding the parameter override editor like you said, so no problem there! Thanks.

I'll research the second aspect, thanks. Let me know if this is what you are thinking:

1) We create a shading network that may have 1 or 2 shading variables defined and save that as a project.
2) In a second project we reference this shading network project.

When we do that:

3) Our script steps in and finds any attributes that CAN have a shading variable that do not already have one defined, adds a shading variable using the name of the attribute, and makes that shading variable "active".

These shading variables would exist as an override?

Alternatively, we could just run this script on our shading network before we publish it and it would already exist, ready to use.

Re: shad var support to ALL parameters, and auto add vars

Unread postPosted: Tue Jun 26, 2018 1:13 pm
by dboude
Yes, and personally I prefer the alternative. Setting the Shading Variables before publishing avoids having overrides in the main project.

Cheers ;)