Forum: Poser - OFFICIAL


Subject: any rumours of next Poser release?

MistyLaraCarrara opened this issue on Jan 22, 2013 · 259 posts


johnpf posted Thu, 07 February 2013 at 4:40 AM

Quote - Is my screen cap headed in the right direction?

 

I've been reading in this thread (and others) about how people find the Mat Room complicated and frustrating, and I've previously been a little frustrated myself wondering "Why do they think that?" Now, I'm always going to take a deep breath before I implement some hugely complicated mathematical function in terms of Poser nodes but the basics and the workings and everything seemed pretty obvious to me. But seeing how you implemented "adding a Diffuse node to a Blinn node" in your screencapped example made me realize that it's easy for the people who understand the Mat Room to take those basic things as given.

 

In short, your set-up will not give you the result you expected (based on the quoted text in your message about adding nodes together).

 

The longer version:

When I'm interpreting a tangle of nodes, I always work out what the "chains" are, and more importantly what the ends of those chains are. Think of it in three stages: (i) inputs, (ii) processing, (iii) output. (It's a little more complicated in practice, but this theoretical approach works fine for sorting stuff out.)

To work out the rough groupings of these three parts, look at the chains that are being presented. (Or write them down!) Each of those red/yellow/blue/whatevercolour lines that connect the nodes are part of the chain, and if you trace a line of connected nodes back you will eventually arrive at a node that has no line entering it. (Lines coming out the left represent info leaving the node, i.e., pushing stuff further down the chain; lines entering a node on its right represent info entering the node, i.e., stuff coming in from earlier in the chain.)

Those nodes that have nothing entering them are, for consideration in this way of analyzing nodes, the raw inputs. They're not being changed by any other nodes (they've got no input from elsewhere that might affect them) so consider them part of stage "(i) input". These will typically be texture maps, pattern generators (Noise, Turbulence, Wood), simple colours, and a few others you'll learn to recognize.

Ignore the specifics of finding stage "(ii) processing" for now and look at where that particular chain links into the big node Poser Surface. That's the output. That's where whatever stuff has happened to your original inputs along the way (during "(ii) processing") escapes to the surface and appears when you hit Render. (As I said, though, it's slightly more complicated than that because Poser Surface can do its own bit of processing before the colours escape to the screen but that can be ignored for now.)

Everything between (i) and (iii) is stage (ii), the processing bit.

 

Now, why have I gone on about this?

Look at the screencap you posted and work out what the stages here are.

As I can see it:

(i) input = Image_Map. Nothing else is entering it, and as you'd expect, it's usual practice to start with an texture image as the raw stuff to begin working with.

(iii) output = Alternate_Diffuse. This is where the chain of nodes enters Poser Surface, so this is where the results of your processing escapes to the real world (or your screen, in other words!). There are a few caveats here and there about which outputs can be used (some have a few quirks, others have warnings about stuff to avoid, and yet others require certain things to be contained within the chain before it will look like you expect it to look). But Alternative_Diffuse is a good place to start (it has a requirement, but that's been covered so I won't digress further by going on about it.)

That leaves Diffuse and Blinn as the stuff between (i) and (iii), so by my definitions above, it falls into "(ii) processing". Which is fine, but only as long as you actually want that kind of processing to take place!

Look at where the input goes next, i.e., the first node in the chain of processing. It's a Diffuse node. This, in short, takes whatever input it's been given, looks at what lighting is going on in the scene, and puts your input through some calculations to make it appear like that input is being lit by the lights that are in your scene and you're viewing it from the angle/position that your camera is set at. That's exactly what you want.

But now look at the next node along the chain. The output of the Diffuse node (the nicely lit piece of texture map that you've supplied) is acting as the input to a Blinn node. The Blinn node, in short, looks at the lights in your scene and, depending on the settings you see in the Blinn node parameters ("Reflectivity", etc), works out what kind of highlights (small, wide, sharp, blurry, and so on) you should see on that surface. Exactly why this is slightly different (and more realistic) than a standard Specular node is not important, but effectively it IS just a specular node for this purpose.

Notice where the chain enters the Blinn node. Whatever processing has taken place before the Blinn node is arriving as input to the Specular_Color part of the node's values. This, as you might expect, affects the colour of what you see in the highlights. What you're saying here is "The highlights I would like to see on this surface must be coloured according to what my image_map looks like." But remember that you've also applied some processing to the image_map input (in the Diffuse node), so the full description of what you're asking it to do here is "The highlights I would like to see on this surface must be colours according to what my image_map looks like but first change what image_map looks like depending on how the lighting in my scene is set-up." This is not so usual but it's not unheard of (e.g., getting a metallic look will involve colouring the highlights depending on what the surface colour is supposed to be). But if you're aiming for what the original quote suggested, it's starting to lose its way.

Why? Well, the original quote said to ADD the two things (Diffuse added to Blinn) together. Here, what you're doing in mathematical terms... in fact, whenever the output end of a chain is plugged into the input of a node... is to MULTIPLY. Keep that in mind: Node inputs work by multiplication, not addition. Anything plugged into something else will take the anything and multiply it by the something, not merely add the two together.

Now, just to continue a little further... remember what the Blinn node is saying should happen during processing? It's effectively working out the highlights, nothing else. It doesn't colour the entirity of the object; all that specular nodes do is to work out where your highlights should be, and that's what their output is: Highlights.

So what drops out of the end of your chain is highlights and nothing more. That's feed into Alternative_Diffuse, meaning it's the end of the line and nothing else gets changed, so what will show up on the screen at render time is highlights. Mainly because your chain of nodes goes:

Notice that even though you started with an image and fed it into the Diffuse node to give a nicely lit and textured surface, that information fails to escape to the surface and is used instead as input to your highlight/specular processing. What's needed is some way for the Diffuse node to also escape to the surface. There are at least two ways to do this simply using the set-up you have here, but I think I've written enough for one message! (But I'll continue if anyone finds this is useful.)

 

Oh, and an edit to say: This is not meant to be belittling or overly critical of you personally or your node set-up, primorge. Just my reaction to realizing that there are some essential basics in the Mat Room that people who understand it should keep in mind are not quite so obvious to everyone.