In general, we only allow textures to be made from photo-based sources, using either photogrammetry or photometric stereo workflows.
While we refer to our content as "textures" what we're actually talking about is complete PBR materials made up from several maps.
¶ Technical Standards
- The textures should be clear, detailed and accurate to their real-world source, lacking any blur, quality inconsistencies, seams, clone stamping artifacts or tiling artifacts.
- The minimum resolution of the texture maps is 8192x8192, achieved without the use of upscaling.
- The material should be seamless on all axes without any noticeable tiling or cloning artifacts. Occasionally we do accept surfaces that tile on only one axis if it suits the intended application.
- The real-world dimensions of the final material should be recorded, calibrated from real measurements and accurate to ±5%.
- For photogrammetry-based textures, these dimensions should generally be more than 1.8 meters on each axis. Surfaces smaller than this may occasionally be acceptable but only when the surface is highly useful.
- Texture maps required: Diffuse/albedo, roughness, normal (OpenGL standard), displacement, AO, metalness (if applicable).
- All maps should be 16-bit sRGB PNGs, achieved without simply converting lower quality/bit-depth data to a higher quality/bit-depth.
- The diffuse map must be calibrated to a macbeth color chart or some other known white/gray surface to ensure correct exposure and whitebalance.
- The diffuse map should also have little to no lighting, shadows, shading, or specular reflections present. We recommend using a cross-polarized ring flash setup, and when necessary (on surfaces with large features), performing additional delighting utilizing the AO map and blue channel of the normal map to brighten shaded areas. Very diffuse surfaces can however simply be scanned on an overcast day.
- The displacement map must be normalized (in the 0-1 range), but some record of the correct depth must be kept. This can either be a blend file with the material set up, or a low-poly version of the original scan.
- Avoid sharpening any texture maps beyond any subtle lens softness correction.
Every asset on Poly Haven needs a unique “slug”: A standardized name that is unique and serves as the ID for that asset.
The slug can be thought of as the machine-readable name. We also support having a separate Display Name, which is shown on the website and in some plugins. This is generated automatically, but can also be manually specified if needed.
The slug has a number of important requirements as it is used for technical purposes in a number of places (file names, database keys, URLs, Blender collections...). These requirements are:
- It can only contain Latin characters (
a-z
), numbers (0-9
), and underscores (_
).
- It must always be lower case only; never use any CAPITAL LETTERS, Camel Case, or TitleCase . This is not just a convention; it will break things.
- It must be unique; no two assets may share the same slug. This is true not just for textures, but all assets; a model cannot share a slug with a texture.
Do not stress too much about the uniqueness of your chosen slug; just focus on choosing something suitable and descriptive.
We will check ourselves to see if it matches any other assets, and we have tools to change the slug easily if needed.
¶ Standard texture map suffixes
These are the suffixes used in image file names to denote the map type, e.g. "red_brick_03_diff
.png".
We standardize these map types to ensure consistency across all textures, and allow automations and validations.
diff
: Diffuse, Albedo, Base Colour, Colour
rough
: Roughness, Inverted Specular Map
metal
: Metallic
nor_gl
: Normal map in OpenGL format
nor_dx
: Normal map in Direct X format (we will automatically generate this, no need to provide it)
disp
: Displacement, Height, Macro bump
ao
: Ambient Occlusion, AO
arm
: Packed: Ambient, Roughness, Metallic (we will automatically generate this, no need to provide it)
alpha
: AlphaMask, Transparency
emission
: Emission Colour on black BG
mask
: Any Additional masking information
Image files must be named according to this pattern: name_suffix.png
. E.g. “patterned_concrete_02_diff.png”.
Do not include the resolution in the image file names (e.g., “…diff_8k
.png”).