How to Use the PBR Multi-Material KTX2 Converter
Convert PBR texture folders and multi-material image sets to KTX2 directly in the browser, then download clean material subfolders as a ZIP archive.
What this tool does
The converter prepares optimized texture files for real-time 3D, WebGL, Babylon.js, WebXR, glTF, game prototypes, and browser-based 3D workflows. It reads image textures, detects common PBR map names, groups them by material, converts them to KTX2, and packages the result into a ZIP file.
The workflow is especially useful when a project has several materials, each with texture maps such as albedo, normal, roughness, metallic, ambient occlusion, emissive, height, opacity, or ARM/ORM.
Basic workflow
- Open the converter: go back to the main KTX2 converter page.
- Add textures: drag folders or image files into the drop zone, or use
Add Files/Add Folder. - Check material groups: each folder becomes one material. Loose files are grouped by filename prefix.
- Review map detection: use the dropdown on each texture card to correct the detected map type if needed.
- Choose encoding: select UASTC, ETC1S, or Raw RGBA8, then adjust size, power-of-two, mipmap, and flip settings.
- Convert: click
Convert All Materials & Download ZIP. - Preview: after conversion, use the PBR preview to inspect the converted material look.
- Download: save the generated ZIP and use the KTX2 files in your project.
Recommended file naming
For best auto-detection, keep texture names clear and consistent.
brick_albedo.pngbrick_normal.pngbrick_roughness.pngbrick_metallic.pngbrick_ao.pngbrick_arm.pngorbrick_orm.png
For folder workflows, place each material in its own folder, for example brick/, wood/, or floor_tiles/.
Choosing an encoding mode
UASTC
Use UASTC when quality is the priority. It is usually better for close-up textures, normal maps, premium materials, and assets where compression artifacts should be minimal.
ETC1S
Use ETC1S when smaller files are more important. It is useful for mobile web, large texture libraries, prototypes, distant objects, and bandwidth-sensitive pages.
Raw RGBA8
Raw output keeps the texture in KTX2 format without ETC1S or UASTC compression. The tool may use this fallback if the Basis encoder file is not available.
Important settings
- Max Size: limits texture resolution. A value such as 2048 is a practical default for many web projects.
- Power of Two: resizes textures to power-of-two dimensions for broader compatibility and mipmap workflows.
- Mipmaps: improves texture stability at a distance and is recommended for most 3D scenes.
- Flip Y: use only when the target engine or material workflow needs vertically flipped textures.
- ZIP Name: controls the name of the downloaded archive.
Troubleshooting
Encoder not found / raw only
Make sure basis_encoder.js is available next to the converter page. Without this file, the page can still create raw KTX2 output, but ETC1S and UASTC compression will not be available.
Material detection is wrong
Use the dropdown on each texture card to manually set the correct map type. Clear names such as normal, roughness, metallic, ao, albedo, and arm improve detection.
Preview looks different from the final engine
The built-in preview is a quick Babylon.js material check. Final appearance can change depending on your engine lighting, environment map, color management, material settings, and shader pipeline.
Privacy note
The converter is designed as a local browser workflow. Your selected texture files are processed in the browser on your device instead of being uploaded to a server by the page.