{Tutorial} – Combining Two Normal Maps in Maya with Default Nodes[2014]

I’ve always been wondering how to combine two normal maps in Maya with normal nodes that are included in Maya. The reason I wanted to do it with the default tools that are included in Maya because anyone can do it. There’s been a few times where I find a awesome shader that does exactly what I want but the support for it or the actual shader has been dropped before I was born or just a long time ago.

This method I came up with in Maya was a MASSIVE big thank you to Marie-Michelle Pepin thanks to Marie who put up a tutorial she did on combining normal maps in Photoshop which you can find here on eat3D. I remembered I use to just pretty much do overlay in photoshop and thought that was it. But as Marie shows that actually isn’t quite accurate, I always thought that the overlay option seems a bit wrong but it looked alright to me. But again thanks to Marie she has confirmed to me that it is wrong, not by much but still wrong.

So I have a older tutorial back in 2011 oh how to combine two normal maps, but as you can see in the end they both get dulled a little so it’s not a proper way but if you need something quick does the job. Now I have another method which doesn’t dull the effect.

 

So to start of I’m going to assume you have some knowledge in using Maya.

So I want to combine these two normal maps I’m using Viewport 2.0 to view the normal maps in the viewport.

LolfaceNormal FabricNormal

So we have the lol face(I think it’s called that) and a fabric normal I found by just googling.

So I have a Plane set up in Maya with a normal Blinn shader assigned and the lol face normal assigned, remember to swtich the bump2d to tangent space.

PlaneLolface

Now if we want to do like what is done in the photoshop tutorial we need to make the blue channel of the second normal map a 50% gray which is overlayed onto the original normal map. Then we would need to take the green and red channel and make it white and have that multiplied over the the original as well.

So to do this I made two “Remap Color” which can be found under “Utilities”

utilitiesremapColor

The reason I used “Remap Color” is because I want to control the RGB channels. So with my two Remap Color nodes I plug in my second normal map to each I rename one of the nodes to RG for Red and Green and the other one B for Blue. This is just so I know which channel is being affected. The FabricNormal is being plugged into the Color of the remap color nodes, if you choose default it will ask you for a specific channel you can just put color

recolorNodes

 

Now with RG I want the Red and Green Channel to be white to do this I changed the graph to look like this.

WhiteRG

As you can see the Red and Green channel is basically solid, By making it solid and at the very top with a value of 1 it means that channel will be a solid white colour now.  You can test this out by plugging this remap color node to the colour of a shader. What you should see if pretty much mostly white with some really saturated yellows, it may be very few though

For the B remap color node I changed the Blue channel to a 50% gray like this

blueGray

As you can see in the Blue channel I deleted one of the controllers and had the value moved to 0.5 which is a 50% gray.

Now after this is done I go into “Other Textures” and create a Layered texture

LayeredTexture

 

I plug the original lolface normal file node to the layered texture as well as added in the two remap colors

layerTextureMap

The way the Layering for the layered texture works is by what’s on the right is the bottom and what’s on the left is the top. Think of it as photoshop layers but flipped onto it’s side

LayerOrder

The order of the RG and B remap color node doesn’t matter as long as the original is on the bottom(right side)

So for RG which we want to set to mutiply

YelMultiply

and for B we want to set it to Illuminate. I actually original put Over because I thought Over meant Overlay, but I think all over means is putting the layer over so as if it was set to “normal” in photoshop

BMultiply

With this done you can plug the outAlpha of the layered texture to the 2dBump node.

LayeredTextureOutAlpha

And that’s it we now have lol face fabric

lolfaceFabric

So what’s the point of this, well say you are doing clothing you can now overlay the fabric normal over it and it can be a small tillable texture that’s 512×512 and you can repeat the amount to have the fabric be small or bigger.

Also you can overlay more than just 2 if you want to add more you will just need to add two more remap color nodes and do all the same just make sure the two new RG and B remap color nodes are on the left side of the layered texture.

extreNormalMap

LayeredTextureExtra

 

The Over you can see in this blendmode is just me showing the File1 options, which is at the bottom of the Layer(right)

DoubleLol

 

 

So there we have a double lol face overlayed with fabric. I made the UV repeat on the fabric higher so you can see how it changes.

NOTE:

So this works in the Viewport however when you try to render it, it just turns into a bump map which pretty much defeats the purpose of this. So there is a way to fix this, for some reason when Maya takes the filenode and plugs the outAlpha into the bumpvalue for a 2dBump that has tangent space on it becomes a normal map. But if you take the outAlpha of the layeredTexture and plug that into the bump it turns it into a Bump.

So First

make sure that Alpha is Luminance is ticked for the layerTexture

AlphaLuminance

This is to tell Maya to take the Alpha from the overall value of the node. You can find a similar setting in the fileNode mine were all ticked

Now I copied the filenode of the original normal map which had the lol face normal map image. It doesn’t actually matter what file node is used we just need a image loaded up pretty much but since there is already a file node might as well use it. For this copy I deleted the place2DTexture node since we won’t be using it anyway basically I want to override the image file to display our layeredTexture instead. To do this I went down to Color Balance and turned color Gain to Black(none) and plugged in the outColor of the layeredTexture to the ColorOffset

colorGaincolorOffset

After this is done I would just plug the fileNode into the 2dBump node.

Combined2DBump

And that’s it. Here is how it looks rendered

RenderMR

sorry about the dark render it was a quick dirty job. Rendered using MentalRay

 

Again Big thanks to Marie-Michelle Pepin for her tutorial in photoshop which made this possible. I hope this helped some people out. It’s been bugging me for 3 years and finally have it now. I hope

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s