How to do it...

To apply a Normal Map to a Material, follow these steps:

  1. Import battery.fbx and its Albedo and Specular Textures to your project.
  2. Add an instance of your 3D model in the Scene by dragging asset battery from the Project panel into the Scene (or Hierarchy) panel.
  3. In the Project panel, select model asset battery. In the Inspector, click the Materials button and then click Extract Materials... You should now have a Material asset file in the Project panel named BatteryMaterial.
  4. Select BatteryMaterial, and change the Shader to Standard (Specular setup). Drag the Battery_albedo Texture from the Project panel into the Albedo Texture slot in the Inspector. Drag the Battery_specular Texture from the Project panel into the Specular Texture slot.
  5. After comparing the battery model in your project with some reference photos, inform yourself about the features that should be reproduced by the Normal map: (A) a bumpy ring at the top, and (B) some circular creases at the bottom:
  1. In an image editor, open uvw_template.png. Create a new layer, fill it with grey (RGB: 128), and position it below the pre-existing layer:
  1. On a separate layer, draw a white circle centered on the battery's top. Then, on another layer, draw a black circle, centered on the battery's bottom:
  1. If you have used vector shapes to make the circles, rasterize their layers (in Adobe Photoshop, right-click on the layer's name and select the Rasterize Layer option from the context menu).
  2. Blur the white circle (in Photoshop, this can be done by navigating to Filter | Blur | Gaussian Blur...). Use 4,0 pixels as the Radius.
  3. Hide the UVW template layer and save the image as Battery_height.png.
  4. If you want to convert the Heightmap directly from Unity, import it into your project. Select it from the Project panel and, from the Inspector panel, change its Texture Type to Normal map. Check the Create from Grayscale option, adjust Bumpiness and Filtering as you like, and click on Apply to save the changes:

  1. To convert your Heightmap externally, go to http://cpetry.github.io/NormalMap-Online/. Drag the Battery_height.png file to the appropriate image slot. Feel free to play with the Strength, Level, and Blur/Sharp parameters:
  1. Save the resulting Normal map as Battery_normal.jpg and add it to your Unity project.
  2. In Unity, select Battery_normal from the Project panel. Then, in the Inspector, change its Texture Type to Normal, leaving the Create from Grayscale box unchecked. Click on Apply to save the changes.
  1. In the Project panel, select the BatteryMaterial asset. In the Inspector for the Material component, assign Battery_normal to the Normal Map slot. To adjust its intensity and direction, change its value to -0.35: