In this 3D tutorial I will introduce you to working with Armor Paint
This was a request from Yurup
Armor Paint is a stand-alone software specifically designed for physically-based texture painting
Armor Paint will cost about $20USD and while there is a free version on GitHub,
it is not the stable release and you will need to know how to compile the code
Armor Paint runs on the GPU – making it dependent on the graphics card
Updates are free for those who purchase Armor Paint
I have provided a link to Armor Paint in the description
The OBJ file is the best supported in Armor Paint but you can also use FBX, Blend, and gLTF files
I am using the low-poly version door from a previous tutorial for this tutorial – the link is in the description
I opened the FBX file in Blender and saved it as an OBJ – otherwise, the model would be broken and unusable
I can simply drag-and-drop the model right into Armor Paint and choose “Import”
Use the Middle-mouse-button to pan the model
The Right-mouse-button allows you to orbit around the model
Scrolling the middle-mouse-button zooms in-and-out
SHIFT + Middle-mouse-button will move the lighting
You can always import your own environment map under the Viewport menu
Under Preferences, I would recommend activating “Show Asset Names” for ease of use
I would also recommend saving often since Armor Paint is still in active development –
it is stable but just to be sure, save often
I will be using textures that I downloaded from cc0 textures – links are in the description
I can drag-and-drop the textures into the Textures window
I double-click on the default material to open up the node window
I rename the material to “concrete”
Materials in Armor Paint work similarly to those in Blender
I delete the RGB node by selecting it and hitting “Delete” on the keyboard
I drag each texture map onto the node window and connect them to their proper inputs on the Material Output node
To see the material on the model – simply drag-and-drop the concrete material onto the model
Obviously, this isn’t what I want since the concrete material is covering the entire model
In order to apply the concrete only to the steps and the doorframe,
I can change the selection from “Shared” to door_frame
Under the Vector menu, I add a Mapping node so I can change the scale of the concrete material
I connect the Mapping vector to each of the texture nodes
I add a UV Map node from the Input menu and connect it to the Mapping node
I can now scale the material
*NOTE: The material looks stretched but that is due to the UV unwrap and not the actual material
Since I want to make the concrete a bit darker, I add a MixRGB node from the Color menu
I also add an RGB node from the Input menu and change the color
I connect the RGB node to the top color of the MixRGB node
I connect the Color texture to the bottom color of the MixRGB node
I then connect the MixRGB node to the Base Color of the Material Output
I can then right-click on the concrete layer and duplicate it and then change from door_frame to steps
I make a new material and name it metal
I drag each texture map onto the node window
and connect them to their proper inputs on the Material Output node
To see the material on the model, I drag-and-drop the metal material onto the model
I change the selection from “Shared” to hinge
This metal is a bit too shiny for me
I add a separate RGB node from the Convertor menu and connect the Roughness texture to the Separate RGB node
I add a Color Ramp node from the Convertor menu
and connect the red channel of the Separate RGB to the Color Ramp
I then connect the Color Ramp to the Roughness of the Material Output
To add a second color stop to the Color Ramp, I click on the plus button and then I can change the color
I can now change the Position so both colors affect the Roughness
Under the Vector menu, I add a Mapping node so I can change the scale of the metal material
I connect the Mapping node vector to each of the texture nodes
I add a UV Map node from the Input menu and connect it to the Mapping node
I can now scale the material
I can then right-click on the metal layer and duplicate it and then change from hinge to knob
I duplicate it once more and then change from knob to ring
I make a new material and name it wood
I drag each texture map onto the node window
and connect them to their proper inputs on the Material Output node
To see the material on the model, I drag-and-drop the wood material onto the model
I change the selection from “Shared” to door
Under the Vector menu, I add a Mapping node so I can change the scale and rotation of the wood material
I connect the Mapping vector to each of the texture nodes
I add a UV Map node from the Input menu and connect it to the Mapping node
I can now scale and rotate the material
I will now bake a couple maps for the materials
I add a new layer to the top of the layer stack and rename it “AO”
I open the Bake tab and make sure AO is selected
Then, all I need to do is click on the model and I can now see the AO map
To use this map properly, I need to change the blend mode to Multiply
Right now, the AO map is being applied to all of the channels
To correct this, I right-click on the map and deselect all of the channels except “Base Color”
I add a new layer and name it “Curvature”
I select Curvature from the menu and click on the model
I change the blend mode to Hue and right-click on the map and deselect all of the channels except “Base Color”
If you want to save these particular materials,
you can right-click on a material and export it as an .arm file to be reused in other Armor Paint projects
To export the textures, go to File > Export Textures
You do have some limited presets – such as Unity and Unreal that are available to you
Since I have multiple parts to my mesh and I want the textures to export separately for each,
I need to make sure that I have a different Atlas assigned to each part of the model –
make sure you note which Atlas belongs to which part of the mesh (you can always rename the textures)
You can choose your export settings and click on “Export”
You can also export the AO and the Curvature maps by right-clicking on the maps and choosing “Export”