AmbientCG Importer

Introduction

AmbientCG is a Patreon-supported website with PBR materials. There are currently 1900 (and counting) assets there free! You can get high quality textures including the normal maps, height maps, smoothness/metallic channels, and AO. This is invaluable especially if you don’t own or have access to professional material creation software.

However, the formats are a little wonky for Unity (you need to invert the roughness, etc), so it takes a couple minutes of work to prepare each material for Unity. This tool does all that automatically.

Burning Mime Software, LLC is not affiliated in any way with AmbientCG.

Basic use

  1. Download a suitable material. You must download the PNG version, not the JPG version. For example, I downloaded this one: https://ambientcg.com/view?id=DiamondPlate006C

  2. Open Unity and select the tool from the menu:

  1. Optionally, you may choose a shader and mode here. Modes other than the default will be documented when they are selected. The shader will automatically be chosen, but if you want to use your own, please see below for more info. Then choose “Open ZIP File”:

  2. Select the ZIP file you downloaded using the file manager:

  1. HDRP Only: If you chose to import a height map, pick a displacement mode here for the height to show up.

  1. You may want to make minor tweaks to the material settings until it looks good. This is especially important for height maps, since the default of 0.2 barely shows up at all. Aside from that, you’re done!

Choosing a mode

The default mode uses 3 textures. One texture for the albedo, one for the normal map, and one for the occlusion, metalness, and smoothness. The metalness map is important for materials that have some parts that are metal, and some parts that are not metal. For these types of materials, you should use the However, if the whole material is metal, or the whole material is not metal, it’s not needed. The occlusion map can add some detail to bumpy surfaces by making parts of them dark, but for relatively smooth materials. Examples: brushed or painted metal; carpet.

The smoothness in albedo mode is an efficient packing that has only the albedo, smoothness, and normal maps. The average metalness is taken from across the whole material and applied as a single value, and the occlusion map is discarded. This mode is more efficient than the default, and probably the one I use the most, because many materials will look just fine in this mode. Examples: painted plaster; cracked concrete.

The single map mode is the same as smoothness in albedo, except it discards the normal map. It is good for mobile games which need the best performance, or if the material is flat enough that the normal map is not needed. Examples: sanded wood; smoothed marble.

The height map mode uses either parallax occlusion mapping or vertex displacement to accentuate height differences. This can be expensive performance-wise, so it’s recommended only to use this on materials where it would matter. Examples: brick; stitched leather; bumpy sand or rock.

Default
Height Map
Smoothness in Albedo
Single Map

Using custom shaders

It works out of the box for HDRP, URP, and builtin. If you wish to use a custom shader, just ensure your shader has compatible naming schemes and texture formats. The best way to do that is to use a shader with these properties: