Map generator
Ambient occlusion map generator for PBR textures
Create a grayscale AO channel that reinforces cavities and contact areas without painting permanent darkness into the base color.
Reviewed:
Direct answer: Ambient Occlusion Map Generator
PLAYTEX AI generates ambient occlusion as one channel of the PBR map stack. Use it to add restrained contact shading in creases and cavities, not to replace scene lighting. Export AO as linear data; Three.js reads its red channel and requires a second UV set, while packed Unreal and glTF workflows may place AO in the red channel of an ORM texture.
- Map type
- Linear grayscale data
- Three.js channel
- Red
- Packed workflow
- ORM · R channel
Why AO makes a material dirty or does nothing
AO should reinforce small-scale contact. Strong values, baked darkness, or missing UV/channel setup can make it harmful or invisible.
| Symptom | Likely cause | Fix |
|---|---|---|
| The whole material looks muddy | AO strength is too high or broad shadows were encoded as occlusion. | Reduce strength and limit darkening to credible cavities. |
| AO appears twice | Darkness is already painted into albedo and then multiplied again. | Clean the albedo and keep contact shading in the AO channel. |
| Three.js ignores the AO texture | The geometry lacks the required second UV set. | Provide the second UV set and bind the map to aoMap. |
| A packed ORM texture looks wrong | The importer or shader reads a different channel order. | Verify R=AO, G=roughness, B=metallic before import. |
AO handoff rules
- Color space
- Linear / NoColorSpace
- White
- No added occlusion
- Dark
- Restricted light access
- Three.js
- Red channel + second UV set
- Unreal / glTF pack
- ORM red channel
- Albedo
- Keep free of duplicate AO
Sources used for this review
- Official: Three.js MeshStandardMaterial aoMap
- Official: Khronos glTF material pipeline
- Official: Epic texture masks
From source to reviewed handoff
Prepare neutral albedo
Remove broad lighting and avoid keeping the same dark creases in both color and AO.
Generate AO
Create a cavity-focused channel from the approved texture source.
Tune restraint
Reduce broad gray regions and preserve white where light access should remain open.
Choose separate or packed export
Export AO alone or let the target engine package place it in the expected red channel.
Choose an occlusion approach
Texture AO, baked mesh AO, and screen-space AO can coexist, but stacking them without review often over-darkens the result.
| Approach | Best fit | Watch for |
|---|---|---|
| Texture-derived AO | Tileable surface cavities and quick PBR authoring | It does not know the final mesh contacts |
| Mesh-baked AO | Object-specific creases and part intersections | Depends on the final UVs and geometry |
| Screen-space AO | Dynamic scene contact at runtime | Camera artifacts and double-darkening |
Review before export
- Keep AO out of albedo
- Treat the image as linear data
- Review strength under neutral lighting
- Confirm the second UV set in Three.js
- Verify channel order when packing ORM
Ambient Occlusion Map Generator FAQ
What does an ambient occlusion map do?
It darkens areas where ambient light has less access, such as tight cavities and contact regions.
Should an AO map be sRGB?
No. AO is scalar material data and should be sampled as linear data.
Can PLAYTEX AI pack AO into ORM?
Yes, when exporting a map set generated by PLAYTEX AI for supported engine workflows. The site does not currently expose a standalone arbitrary-file channel packer.
Do I need AO if my engine has SSAO?
Not always. Texture AO provides material-local detail while SSAO adds camera-dependent scene contact. Test both together to avoid excessive darkening.