Texturing Guide

Materials must be in PNG format and include 6 files: Diffuse/Albedo, Emissive, Normal, Roughness, Specular/Metalness, and Tintmask. Our naming convention for these files is:

Where Body_ is replaced by Helmet_ Weapon_ Syandana_ Liset_ for the appropriate content type. Please don’t add custom names here.

Other things of note:

Important Note: In Photoshop, to open and save PNG files with their alpha channel intact, you must install the following SuperPNG plug-in. It will provide several options including discarding or retaining alpha channel information, which is essential in our case. Hold SHIFT while dragging a PNG into Photoshop to get the dialog option to have the alpha come in a separate channel.

General Texturing Notes:

Warframe is a Physically Based Rendering (PBR) game. If you already have texturing experience this is an excellent tutorial on how to approach PBR materials. If you are new to texturing this is a constantly expanding resource to help you learn that skill.

We do have to craft our textures a little bit differently to allow for maximum customization. The Albedo/Diffuse cannot have a strong tone and hue component baked in (examples below). We also pack our maps into single channels to reduce download size and draw calls, which means they will not retain color in the individual maps. All this results in maps that look different from what you would expect when you first load them, but there is reason behind it.

With our changes to texture compression, we recommend taking additional steps to ensure your piece looks the best it can in-game. There are multiple ways to approach this, but below are a few examples to avoid common issues we see:


Diffuse/Albedo (Filename_d)

The creation method is very similar to a traditional diffuse map, but we require the map to fall in two main luma ranges for customization:

Counterintuitively, this map isn't that important. Most of the work it used to do is in the TintMask. Some luminance variance is welcome but should be avoided to ensure proper tinting of your item. If you want an area to be untintable you can paint it anywhere in the luma range you wish, but note that it will be in grayscale once added to the game -- we recommend avoiding untintable areas where possible, since it limits the player's customization options.

Normal (Filename_n)

This usually is the most critical map: it’s not a painting, it's a collection of math that tells the shader how to interpret the X Y Z of the surface normal. If you're sampling colours and painting a normal map, then something is going wrong.

Good sources for normal maps:


Some of our older assets were built before we were aware of this, but we do try to keep all new assets done this way.

Metalness/Specular (Filename_s)

When working with PBR materials, it's a good idea to research and understand the two different workflows: Specular and Metalness.

For Metalness: it's important to make sure your "specular" (or "metalness") texture makes use of solid black and white, as this map is ONLY for dividing metal from nonmetal on your final material.

In the situation where you are creating very small chipping details, or very heavy, speckled grime, we suggest you switch to the Specular workflow, as Metalness has been documented to create heavy aliasing along the edges of all these small details. This is amplified even more once the piece is in the game. Specular workflow will not create this type of artifact with tiny metallic edges/tiny grimey details on metal.

If working in the metalness PBR workflow:

If working in the specular PBR workflow:

*It’s often helpful to us if you specify in a ReadMe file which PBR workflow you are using (metalness or specular), as the files sometimes appear similar. Make sure not to mix workflows, choose one or the other.

Roughness (Filename_r)

This controls how rough or smooth a surface will feel and conveys the history, character, and backstory of a material. This map requires the most artistic judgement!

Material differentiation between tints is very important to make your creations feel dynamic, whether the player is whirling through missions, or taking close-up Captura shots. Look at how each faction approaches their materials using our Faction Style Guide and see what kind of story you can create for your piece using your roughness map.

Adding edge wear, putting grime build-up on contact points, reinforcing material changes (IE: the roughness difference between rust and metal), and most importantly; not doing any of those things if the piece isn't supposed to be telling that story.

Here’s some general roughness values for reference:

Emissive (Filename_e)

This black and white map will control what areas glow in your material! This effect should be used very sparingly, as emissives are meant to highlight focal points!

It is important to feather/blur the edges of the emissive lights to allow for softer gradients. Doing this will also give secondary emissive colors extra space to blend. This way the appearance will be more natural and soft.

If appropriate, you can pack a mask for the emissive in the alpha channel. This will be panned over top of the existing emissive, giving the glow the appearance of fading on and off.

Tintmask (Filename_t)

This map is how you apply colour to the piece: it’s incredibly important for player agency and customization. You have a tremendous amount of control on how the piece will look, so as a result this map requires the second most artistic judgement.

Unfortunately it's very technical to work with, which is one of the reasons that we are publishing our Substance Painter shader as that does make it much more intuitive. It's a layer cake and the order of layers cannot be changed:

How the RGB channels appear, with the alpha viewed separately:

The reason we use a system of layering vs. a flattened map with solid colors is because the mask separation will never be perfect in-engine due to engine interpretation, and will produce ugly halos around certain tint colors when not layered properly.

To avoid this, simply make sure to expand the mask areas under the edges of each tint that is layered above it. For example, Red channel will run under all layers if it is bucket-filled in, but the layer above (Green channel) will need to have its edges expanded underneath the Blue channel, otherwise, the Red channel will peek through along the edge where the Blue and Green channels meet. Alpha sits above everything else.

Experiment with this a bit to get a sense of control. Please make sure to make use of all 4 of the channels, as players appreciate this for matching to other items.

Texture Creation Tools

Painting / Image editing:

Paid: https://www.allegorithmic.com/products/substance-painter

Free: http://krita.org/

Free: http://www.gimp.org/

Paid: http://www.photoshop.com/

3D Programs

Free: http://www.blender.org/

Paid: http://www.marmoset.co/

Free: https://sketchfab.com/

Paid: http://3d-coat.com/