Forum: Poser - OFFICIAL


Subject: Improved SSS techniques

bagginsbill opened this issue on Jan 23, 2006 ยท 71 posts


bagginsbill posted Sun, 29 January 2006 at 5:43 PM

Face_Off,

I'm not sure what you're getting at. I agree that your front end to your shader system rewrites parameters in your shader tree. However, it doesn't LEARN them from your shader tree, it already knows them, right? I'm talking about a script that, given ANY material, is able to detect control nodes that are meant to be tweaked THROUGH THE SCRIPT itself. In other words, you hard-coded things like "oiliness" and "blush" or whatever in your script. If you change the material nodes, you'll have to change your script. If you add new features to the nodes, like "pimples" or "tan lines", you'll have to add new sliders to your dialog box.

If this is not the case, please educate me because I've never known any of your scripts to be applicable to other people's shader trees. If there is some way of arranging my nodes in my shader, such that people who have your python scripts could control my shader through your scripts, that would be interesting. However, I don't recall you publishing that compatibility with your front end derives from merely having certain agreed upon node names in your material. As far as I know, your scripts WRITE the materials. Your script causes the materials to be in the form you have pre-defined it to be. At least that's my understanding.

The python script I'm describing would be able to tell from the names of nodes alone, that they are useful control points to be presented to the user. Further, that these control points are common and to be shared across material zones, so that moving a slider for a given control parameter must be updated in every material wherein that control parameter is defined. It doesn't require any pre-agreement between the script and the shader tree.

The idea here is similar to the full body morph dials on a figure. If you load the morph, the UI presents a single dial for it. The fact that to implement the morph requires altering a partial body morph in twelve different body groups is completely hidden from the user. Similarly, for the materials in a figure, if you suitably mark a bunch of math nodes (using the square brackets) then the script presents a single dial for the complete set of nodes.

It is enough, for example to define a math_function whose name is "math_function[Tan Lines]" in a material. The square brackets would be picked up by the script and presented as a slider. Even if other materials are completely different in layout and content, if they have a node with "[Tan lines]" in the name, then those nodes get included. The script doesn't know what the control parameter really does, it just knows to present a slider called "Tan Lines" and when you move it, update every node in every mat zone that has a node with that substring in its name.
A more general approach would involve more that just the math_function node, but I think I could accomplish a tremendous amount of generality with that alone.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)