Skip to content

Import and Export Poly Haven Textures

This guide covers the Poly Haven source on Texture Folder and the matching destination on Export Texture. Both use Poly Haven’s own suffix naming, including the packed arm file, so a downloaded folder imports as one texture set and an exported folder reads like one of theirs.

SettingValue
DestinationPoly Haven
Filename Template{name}_{channel}
Normal ConventionOpenGL

Shown for a set named oak_bark with all eight roles (how to read these tables). A set with fewer roles writes fewer files.

FileWhat it holdsContainer and depthEncoding
oak_bark_diff.pngBase ColorPNG 8-bitColor
oak_bark_nor_gl.pngNormalPNG 16-bitPacked normal, OpenGL
oak_bark_rough.pngRoughnessPNG 16-bitLinear data
oak_bark_metal.pngMetallicPNG 16-bitLinear data
oak_bark_ao.pngAmbient OcclusionPNG 16-bitLinear data
oak_bark_disp.pngHeightPNG 16-bit, or EXR 16-bit (half) outside 0 to 1Linear data
oak_bark_alpha.pngOpacityPNG 16-bitLinear data
oak_bark_emission.pngEmissivePNG 8-bitColor
oak_bark_arm.pngPacked: R Ambient Occlusion, G Roughness, B MetallicPNG 8-bitLinear data

Why arm is written beside rough, ao, and metal

Section titled “Why arm is written beside rough, ao, and metal”

Poly Haven’s catalog offers the packed file and the separate maps as independent downloads, so a folder in this naming may hold either or both. Writing all of them is what makes the folder read like one of theirs. It costs one extra file per asset. Untick the box at the start of the arm row if you only want the separate maps.

A lane whose role the set does not carry is written with a declared value rather than left empty: Ambient Occlusion 1.0, Roughness 1.0, Metallic 0.0. The chip under the row turns amber and says which value went in.

Nothing to set. This is a file naming convention, not an engine. The folder is meant to be read by whatever reads Poly Haven downloads, including ArcBrush itself.

Point Texture Folder at the folder and set Source to Poly Haven, or leave it on Auto. The line under the combo says what Auto matched, such as “Auto detected Poly Haven: 7 of 7 file names match. Pick a source to override.”

When the folder holds both arm and the separate maps, each role’s own file is read and the matching arm lane is listed as Skipped with the reason “Its own file is read: oak_bark_rough.png.” Only the roles no separate file supplies come out of arm. An arm red lane that is empty is dropped rather than imported as a fully occluded map.

To read a lane anyway, open the file in the Files section and pick <role> (read this lane instead).

A Poly Haven download usually carries both nor_gl and nor_dx. Texture Folder reads the one matching the node’s Normal Convention and lists the other as Skipped with the reason “The DirectX version of the same map. oak_bark_nor_gl.png is read.” That is never an error.

Poly Haven documents arm as “Packed: Ambient, Roughness, Metallic” and does not state which channel holds which. The order used here (R ambient occlusion, G roughness, B metallic) follows the acronym and matches every other destination in these guides, but it is not confirmed by a Poly Haven sentence. Check it once against a real arm download that also ships its own rough file: unpack the green lane and compare.