What is the PTEX file format?
A .ptex file is a texture created with Ptex, the per-face texture mapping system that Walt Disney Animation Studios released as open source. Instead of one flat image stretched across a model through UV coordinates, a Ptex file stores a separate small texture for every face of a subdivision or polygon mesh. Disney has used the format across its films since 2008 because it lets texture artists paint straight onto a surface without laying out UVs.
Inside, a Ptex file begins with the ASCII signature Ptex and stores its data little-endian. It packs all of a surface's face textures into a single file, along with mipmaps for smooth filtering and a per-face adjacency map that lets a renderer blend across face boundaries without visible seams. Pixel data can be 8-bit or 16-bit integer, half float, or 32-bit float, with any number of channels, and texture blocks are compressed with zlib. One file can hold hundreds of thousands of individual face textures. Most tools write these files with the .ptx extension; .ptex is an alternate spelling seen in some documentation.
Security & safety
RISK: LOWA .ptex file is passive texture data with no scripting or executable code. It is only parsed by 3D rendering and painting software. The main practical risk is a malformed or truncated file failing to load; there is no known malware vector in the format itself.
Format details
in a nutshell- Material Maker procedural material - Rodz Labs' open-source Material Maker uses a .ptex extension for its JSON-formatted procedural material/texture graphs, an unrelated format from the Godot-based tool.
- PTX point-cloud export (.ptx) - Leica/Cyclone .ptx scan files are a different, ASCII point-cloud format and are not Ptex textures despite the similar extension.
Programs that open PTEX files
Technical details
deep spec| Encoding | Binary |
| Byte order | Little-endian |
| Container | Single-file per-surface texture container storing one texture per mesh face plus mipmaps and adjacency data |
| Compression | DEFLATE (zlib compress/uncompress) applied to texture data blocks and large metadata items |
| Signature | ASCII 'Ptex' (50 74 65 78) at offset 0 |
| Data Types | Per-file pixel data type: 8-bit unsigned int, 16-bit unsigned int, 16-bit half float, or 32-bit float |
| Channels | Arbitrary number of channels per file; optional designated alpha channel |
| Mesh Types | Triangle meshes and quad meshes (meshtype field: 0=triangle, 1=quad); supports Catmull-Clark and Loop subdivision surfaces and all-quad or all-triangle polymeshes |
| Mipmaps | Multiple resolution levels stored per face; each level is a power-of-two reduction used for seamless filtering |
| Adjacency | Per-face adjacency map stored in the file for filtering across face boundaries without visible seams |
| Metadata | Key-value metadata block supporting ASCII strings, 8/16/32-bit integers, floats and doubles; standard keys include mesh geometry references |
| Structure | Header (magic, version, meshtype, datatype, alpha channel, channel count, level count, face count, size fields) followed by a face info table, compressed constant/per-face texture data across levels, an adjacency section, and an optional metadata section |
| Integrity | No built-in per-file checksum; zlib blocks provide internal consistency |
| Platforms | Windows, macOS, Linux |
| Notes | Ptex eliminates UV assignment by giving every face its own texture; a single .ptex/.ptx file can hold hundreds of thousands of individual face textures for one surface. The native extension emitted by most Ptex tools is .ptx; .ptex is an alternate label used in some documentation and file databases. |
| Released | 2008 |
| Latest version | File format version 1 (Ptex library 2.x) |
| Open standard | Yes · royalty-free |
| Specification | ptex.us |
PTEX conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about PTEX files.