What are the stretching (dPdu, dPdv) nodes used for?

Nodes are the essential building blocks in the Advanced interface to the Poser Material Room. They are the graphical representation of mathematical function calls, that is: calculation procedures which turn parameters (inputs) to a result (output).


The nodes from the Variables group tell me about the position, in space and time, of the spot that the PoserSurface definition is constructed for. There are two kinds of results from these nodes:

  • Single values.
  • Three value ‘vectors’. Like a color is defined by (Red, Green, Blue), so is a point in space defined by (X,Y,Z) and so on. These are discussed in a previous article (place P and normal N), in this article (stretching dPdu, dPdv) and in the next one (curvature dNdu, dNdv).

The four Variables mentioned last tell us about the shape of the object, and the mapping that comes with it. When a large step in Poser space from one point on the surface to another comes with just a tiny step in U or V, then the mapping stretches the texture over a large area. In the inverse case, the texture is squeezed into a tiny spot. That is what dPdu and dPdv are about. A large value for dPdu means: stretched. And by the way: it’s a vector, so we can have stretching in X and squeezing in Z direction, for instance.


To visualize them for a probably better understanding, the following renders show them translated to colors. First dPdu:

Let’s start in the middle and move gracefully to the right, the positive U direction. So, adjacent point will not differ in Z direction, and hence there will be no Blue (3rd vector component) in the result. And they will positively differ in X, which introduces Red (1st component). At the upgoing side of the wave, points will differ in Y in a positive way (the path is up). This makes Green (2nd component), and with the already available Red this will make Yellow, as we see. At the downgoing side of the wave, points will differ in Y as well, but in a negative way. Negative values are clipped to 0, and only the Red will remain. Note that when I walk to the left, I make negative steps in U, so the upgoing path will be red, and the downgoing part – with a negative Y as well – will turn yellow as negative * negative makes positive.

Now let’s look at dPdv:

Let’s start in the middle and gracefully move to the back (that’s increasing ! in V). As the X value won’t change, there will be no Red (1st component). The Z value decreases gradually as Z is positive in forward direction, and we’re walking backward. This negative value is clipped out when turned into a color, which is why we won’t see any Blue (3rd component) either. While walking to the back (positive V steps) the upgoing portions of the path have a positive Y difference, and so the result will turn Green (2nd component) there. The downgoing portions have a negative Y difference, which will be clipped out. Then in that case no color-values are left, and the result is black.

Brief conclusion: dPdu and dPdv are vectors. Large negative or large positive values indicate surface stretching in either direction, small values indicate squeezing of the image onto the object. Large and small in this are relative to the size of the object. From left to right, U changes from -1 or 0 to 1, while P changes with the object-size in X direction. So, dP/du equals (half of) objectsize_X for a non-stretched non-squeezed mapping.

Next >

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.