Warning, this tutorial does contain some nudity.
If you remember when you were a kid making model airplanes or model cars you would get a small, water transferable picture called a decal in the kit. It was a picture of say the airplane markings or a racing stripe. In poser, decaling is the placing of high resolution images on a shape by scaling and moving that image around on the mesh till it's in the correct location. Lets take a look at an example.
Here is a paramedic I created for Mike 2. Simple stock white shirt with white pants from the Daz3d clothes pack for Mike, some shoes and a wig. But notice the EMS logo on his shirt. Normally, one would create a texture for the shirt and place the EMS logo on that texture and be done with it like so:
|EMS texture on Dress Shirt||Dress Shirt UVMap|
This works but look at the waste. An otherwise solid white texture with one tiny part being the logo. The texture in this example is a 512x512 jpg. That's not a very big texture and what's worse, that logo is going to look extremely blurred because its even smaller. What if you wanted that logo to be crisp and detailed? Using this method you would have to create a shirt texture that could go as high as 4096x4096 and still the logo wouldn't be all that sharp.
Now what if you could tell Poser "Hey, I have a texture of just the logo which is 512x512. Make the shirt all white but 512x512 logo at the right spot"? That's where decaling comes in.
You will need a piece of artwork for your decal. Here is an example of the EMS logo.
Its 144x140 pixels in size.
Lets take that EMS logo texture (called emslogo.jpg) and apply it to the shirt:
|Example 1: Applying EMS Logo to shirt||Result|
Notice the result. The logo encompasses the entire shirt and this is not what we want. What would be nice is if we could tell poser the logo is actually much smaller and to move it near the upper left shoulder on the uv map. In poser we can do this. Take a look at the Image_mapped field on the Image Map node.
Notice it says "Tile" as its default option. What this means is the texture will be wrapped horizontally and vertically as a repeating tile across the surface. Since the numbers are usually set to 1,1 this just acts like a regular texture. Now watch what happens if we change the UV scale like so:
|Changing UV scales with Tile Image_Mapped set||Result|
Notice I changed the U_Scale and V_Scale to 0.1 each. That means the texture is now 1/10th the size and with Tile mode on the texture wraps 10 times horizontally and vertically. BTW this is a great way to take a simple repeating texture like stars or flowers and put it all over a figure.
A note about UV Scales: Poser works in percentages from 0.0 to 1.0, 0 meaning 0% and 1.0 meaning 100%. The units also run from left to right and from bottom to top. So a U Scale of .25 means to scale the bitmap to %25 of its original size in the horizontal or U axis. Poser also uses U,V instead of X,Y for labeling the texture coordinate axis.
Now lets turn off the Tile option in the Image_Mapped field by changing it to "None":
|Changing UV scales with Image_Mapped field set to "None"||Result|
Notice now the EMS logo is in the lower left corner and is NOT repeating all over the shirt. Gosh, now if only we could move that logo around so its in the right spot.
Lets take a look at the U,V offset fields on the Image Map node
How much you want to bet these two fields allow you to move that EMS logo around? But what do you type in and what do the numbers mean? Again, in poser UV coordinates are in percentages from 0 to 1 just like with the scale. This allows any sized texture to be used without you having to know the exact dimensions of the texture. So we will be using a number from 0 to 1.0 to position the logo. Now the U axis is from left to right and the V axis is from bottom to top. Also, when placing the bitmap its position is based on the lower left corner of the bitmap. In our example above, the EMS logo is currently at 0.0,0.0 UV and so it sits with its lower left corner at the lower left part of the texture. Here's are some examples of moving the logo around. I also changed the background color to gray to make it easier to see the bitmap.
|UV set to 50% U and 75% V||UV set to 80% U and 25% V|
Again notice the bitmap gets placed by its lower left corner and NOT by the center of the bitmap. So lets see what happens when we set the bitmap so its on the shirt's right shoulder like so:
|EMS logo moved around and positioned on right collar||Result.|
Voila! We now have a hi res texture of an EMS logo on the dress shirt that is only 144x140 resolution yet looks crisp and sharp and takes up far less space than some huge 4096x4096 texture. This white shirt cost us just one 144x140 texture.
Ok so this looks simple if you can figure out the scale and position of the logo. But is there a better way than just trial and error i.e. move the logo, render, move the logo etc? One problem with Poser's preview mode in the render window is it WON'T show the scaling or positioning and shows just a primitive texture as though no scaling or positioning occurred. Here's a little trick using the Background field of the image map node. Lets say you have a template of the shirt like this one:
What you can do is temporarily plug this bitmap into the Background field like so:
Now move and scale your logo around as needed using the template bitmap as your guide. Once positioned, remove the template bitmap, (Image_Map_5) in this case.
Ok so you have a white shirt with a decal on it. This is great if you let poser color the shirt white with a solid color. But lets say you have a texture for the shirt and you want to put a logo on it. Here's an example of the shirt with a flannel pattern:
|Typical flannel shirt texture||Result.|
So how do we get that logo onto the shirt over the flannel pattern?
What is a mask? A mask is a bitmap that matches the EMS bitmap but is white in ONLY the places the art of the logo will show and black in places the art doesn't show. Here's a mask for the EMS logo:
|EMS Logo Mask|
You can think of a mask like the cut out of the logo, which is exactly what it is.
Here is the blender node which is found under the math options:
The blender node basically says, blend Input_2 with Input_1 at the percentage set in the Blending channel. So if you plugged two bitmaps into this blender in Input_1 and Input_2, the output would be both bitmaps blended together at 50% each. If Blending is set to .8 then Input_2 would be 80% and Input_1 would be 20%. Now notice each of those fields can take anything as an input INCLUDING A BITMAP. So lets take a look at what happens when we set the Blender field to 1.0, plug our EMS mask bitmap into the Blender field, the flannel texture into Input_1 and the scaled and moved Logo node into input 2:
|Typical flannel shirt texture||Result.|
WHOA! Now that's a big step so lets break this down.
1. We need the mask bitmap for the logo to EXACTLY match the logo node in
scale and size. emsmask.jpg is scaled and positioned in exactly the same spot
that emsart2.jpg is located.
2. On the mask node the Background field MUST BE absolute black or 0,0,0 in RGB.
3. Image_map_6 which is the mask node goes into the Blending field of Blender node, the logo map (Image_Map_4) goes into channel Input_2 and the flannel shirt texture (Image_map_5) goes into channel Input_1
What's happening here is the blender node is merging the flannel shirt texture with the EMU logo using the mask as its guide. All white areas of the mask are the logo and all black areas of the mask are the shirt texture. We now have an EMU logo on a textured shirt. The Blending field number could also be less than 1.0 causing the logo to be semi transparent on the shirt or giving it a faded/blended effect.
1. The mask and the decal nodes MUST have the same scale and position information.
2. The mask node MUST have its background color set to 100% black.
3. Both the decal node and the mask node Image_Mapped fields must be set to "None".
4. The mask texture does NOT have to be the same bitmap size as the decal but it has to be the same shape. This is a bit tricky. For example, the EMS decal could be 512x512 in size while the black and white mask could just be 128x128 in size. Just as long as if you scaled both to be the same size the mask covers the art on the decal correctly then it'll work. That is one handy feature of poser using 0 to 1.0 for its units instead of the texture's actually dimensions.
5. Sometimes you may need to flip a decal along the U and/or V axis. You can easily do this by using a negative value in the U,V scale fields. If you need to rotate the decal 90 degrees change the Texture_Coords field to VU instead of UV.
6. The Blender field of the Blender node does not have to be 1.0. If you make it less than 1.0 the decal will become more transparent making it look like its blended more with the shirt material. 0.5 would make the decal look blended and worn on the shirt at 50% transparency.
7. Using this technique with procedurals like weave, tile, noise etc can create clothing materials with very little texture overhead. Great for those extra, unimportant figures in your scene who don't need massive textures. Soldiers, workers with logos etc all can be done with minimal texture overhead.
Ok so we got that EMS logo on the shirt but maybe we also want a logo on the back of the shirt as well as the shoulder.
This process can be done in two ways, one is straight forward using blender nodes and another way is a trick using the Background field of the image map.
Here is the setup:
1. I created two more image map nodes (Image_Map_3 and Image_map_7) for the
back logo just like the front shoulder logo.
2. I use Blender_2 to blend the output from the original Blender node with the new back logo and the new back logo mask. This combines the two and the shirt and creates a logo on the front and back of the flannel shirt.
But this is a lot of nodes. We could have also used an ADD node instead of a blender node to add the masks together. But here's another trick that uses the Background field.
Notice I was able to drop one of the blender nodes. Basically the Background field input of the second mask (Image_Map_7) is the first mask (Image_Map_6). In this case the Background field of Image_Map_7 has to be 100% white to allow the image of Image_Map_6 to come through. I did the same with Image_Map_3 and Image_Map_4 chaining them together using the Background field. You can do this forever, chaining masks and decals.
1. Instead of a huge shirt texture to get hi res decals you use a low res
shirt texture and low res decals saving tons of memory.
2. You can put as many decals in any location you like. Adding decals does NOT increase memory usage since you are using the same bitmaps over and over. You can have 100 decals on a shirt and the memory is just the one bitmap and one mask texture.
3. You can add or remove a decal at anytime.
4. You can replace the decals at any time WITHOUT making a new shirt texture. You can also swap out the background shirt texture for anything you want. For example you could replace Image_Map_5 (the shirt texture) with a weave procedural. If you did that, the whole memory cost of your shirt is merely the two 144x140 decal and mask textures and THAT'S ALL. Imagine if you had 10 logos on 5 shirt textures. The old way would require you to have 5x10 shirt combinations or 50 shirt textures. And each texture would be unique costing memory. This way each figure in your scene could have the same shirt texture with a separate logo texture. Think soldiers or workers.
Gosh so what else could you use this decal technique for? Notice you do NOT have to plug the decal into the Diffuse_Color channel. It could go into ANY CHANNEL. So how about the transparency channel? Here's and example of the V3 Catsuit with a decal used to create a peek-a-boo hole in the front:
Here is the original circlemask bitmap:
Now I could have just created a transparency map for the catsuit and be done with it but I'd be back to having to create a massive transparency map just for one hole in the front. Why not instead use a hi res hole and the rest of the suit is solid? In this case the circlemask.jpg is just 256x256 in size but provides more resolution than a 4096x4096 full catsuit transparency map.
Also note I had to do a few tricks to "flip" the mask colors so the hole was black and the rest is white. I could have easily just made a circlemask.jpg with a black circle and a white outside and set the Background field of Image_map_15 to white. Blender_8 is used in a tricky way to flip the colors. Also note that I then blend a procedural weave bump map with the mask using Blender_2. This is an issue with poser since transparency is not respected by the other nodes. You'll see this with things like specular fields where the hole is transparent but specular lighting shows up on the empty area. So in this case, to make sure the hole in the suit doesn't have a weave bump over it I blend it with the mask. Again you can chain decals together so you can add as many holes using as many cookie cutter bitmaps as you like. All the holes can be hi res bitmaps without having the have a massive transparency map to get a smooth hole.
Well if we can put decals on clothes why not on the figure itself. Here is an example of using an eye shadow and cheek blush masks to apply make up to a face.
Now I over exaggerated the make up to show its effect. Image_Map_5 and Image_Map_4 are both low res textures (256x256) and based on Vicky 3's face template. All white areas will be make up and all black areas will be skin. Now I could have merged the two masks together but I wanted to have a different color for cheek blush and eye shadow so that is why Blender_3 goes into Blender_2. Also notice Color_Texture goes into BOTH input nodes. All that is doing is combining the skin texture with itself but with the color in Input_2 for the white areas of the mask. Its additive. If I had not put the skin texture in Input_2 in Blender_3, the cheeks with be more solid purple instead of skin colored. This is a great way to put make up on figures WITHOUT replacing the skin color with a make up map. Imagine the memory overhead of one 4096x4096 face map for the face, one for the lips, one for the scalp... yikes! Also a great way to add tiger stripes, clown makeup, bruises, cuts etc over any skin texture.
One problem with a flat texture is you need a pretty darn big one to get details in the smallest areas of the figure. Vicky 3's nipples are a grand example of this. To get any good detail for the nipples you need a massive skin texture. But what if you could just decal the picture of a nipple onto her breasts. Voila! Decals to the rescue!!!
And here are the v3 nipple decal and the v3 nipple mask:
|Nipple Decal||Nipple Mask|
Looks complicated but its very much like the combined EMS logo example. I had to use two mask nodes (Image_Map_3 and Image_Map_4) with two decal nodes (Image_Map_5 and Image_Map_6). I placed them where the nipple is on the texture. I actually made the size slightly bigger than the nipple material so it blends into the torso and nipple material to eliminate the hard material edge. Notice you can't tell where the nipple material ends and the torso material begins. So now I have a hi res nipple on an otherwise medium res skin texture WITHOUT having to create a massive skin texture. Plus I can change out nipple textures to get any combination I wish without making new skin textures. So 4 Vicky 3s in a scene could use the same overall body skin texture and just have 4 unique nipple textures at 256x256 each instead of 4 unique body textures at 4096x4096 each. You can use this technique to place wrinkle maps on elbows and knees etc. Also, with the bump map channel, I use the actual nipple picture blended with the skin bump map using the Blender_2 node. I could have easily made a corresponding hi res nipple bump map and combined that with the skin bump map. Again, decals do NOT have to do into the Diffuse_Color channel. They can be used in any channel.
Here's an example of a tattoo.
|Dragon Tattoo Decal||Dragon Tattoo Mask|
Notice I set the Blending field of the Blender node to .5 instead of 1. If I had made it 1, the tattoo would be solid colored. The .5 blends it at 50% making it more like its part of the skin. Play with the numbers and see what you get.
Sometimes you don't need to use a mask bitmap with a decal if you set things up right and you don't mind the results. Here's an example using the ADD COLOR_MATH function and this EMS texture map:
Note that this decal is black around the edges where we want transparency. Why? Because the ADD COLOR_MATH node adds each color. Since black is 0,0,0, it adds nothing to the complete picture. The result is the logo appears on the shirt in a faded manner. Now if you don't mind this effect then it saves a mask and blender node.
According to the Poser manual the ALPHA setting in the Image_Mapped field is SUPPOSED to take care of us using a blender node and a mask bitmap by allow us to use an alpha channel inside of a bitmap like a PNG, Tiff or TGA file. Sadly, I have never gotten this to work and I can find no one who has gotten it to work and I have tried every combination of PNG, TGA, Tiff, Gif, PSD etc I can think of. So, until this is fixed (which would be great) we're stuck with masks and blender nodes.
1. Decals are easy to do once you get the hang of the image_map and Blender
2. Decals are a great way to place high detail image maps on figures without creating massive textures especially if the rest of the texture is unimportant.
3. Using decals and procedurals, clothing textures can be made without massive texture overhead. A simply military logo with procedurals to make khaki green fatigues could outfit an entire squad with just the cost of one or two small decals.
4. Decals can be swapped out and background textures can be swapped out to create any combination of backgrounds and decals without having to make a custom texture for each combination.
5. Decals can be placed anywhere. Only exception are places where the artwork needs to wrap around like across a UV Seam but you'd have just as much of a headache getting that to work on a regular texture anyway.
6. Adding as many of the same decal as you like does not increase texture memory.
6. Huge savings in memory.
1. The nodes can get complicated and hard to share with others.
2. Only works in Poser 5 and above.
3. Decals won't work across UV seams. For example putting a logo across Vickie 3's back is a pain.
4. The material room does not allow appending materials so you can't just one click to append a logo onto a shirt.
5. There maybe some slight processor overhead since procedurals must be processed by the CPU for each pixel rendered but its not much.