askvity

How do you invert a normal map in Blender?

Published in 3D Graphics 3 mins read

While the provided reference suggests a video tutorial, the basic process for inverting a normal map in Blender within the shader editor involves using a Vector Math node set to "Multiply" and multiplying the normal map's color output by (-1, -1, 1). This effectively inverts the X and Y components of the normal, changing the perceived direction of the surface details.

Here's a breakdown of how to do it:

  1. Open the Shader Editor: In Blender, switch to the "Shading" workspace or open a Shader Editor window.
  2. Select the Material: Make sure the object you want to affect has a material assigned to it, and that the material is selected in the shader editor.
  3. Add an Image Texture Node: Press Shift+A to add a node, then search for "Image Texture" and place it in the shader editor.
  4. Load the Normal Map: In the Image Texture node, click "Open" and select your normal map image. Make sure the color space is set to "Non-Color Data".
  5. Add a Vector Math Node: Press Shift+A to add another node, and search for "Vector Math". Place it near the Image Texture node.
  6. Set the Operation to Multiply: In the Vector Math node, change the operation type from "Add" to "Multiply".
  7. Input the Inversion Values: In the second input socket of the Vector Math node (the one with the default value of 0), enter the values -1, -1, and 1 for the X, Y, and Z components, respectively. You can either type them in directly, or click on the input and drag to change the values.
  8. Connect the Nodes: Connect the "Color" output of the Image Texture node to the first vector input of the Vector Math node.
  9. Connect to the Normal Map Node: Connect the output of the Vector Math node to the "Color" input of a "Normal Map" node. If you don't already have one, add a Normal Map node using Shift+A and searching for "Normal Map."
  10. Connect to the Principled BSDF: Connect the "Normal" output of the Normal Map node to the "Normal" input of your Principled BSDF shader (or whichever shader you are using).

Essentially, you are multiplying the X and Y components of the normal vector by -1, which reverses the direction those components point in. The Z component remains unchanged because it typically represents the direction perpendicular to the surface, and inverting it would usually not be desired.

Related Articles