On this page


Ptex is a format for texture maps that does not require texture coordinates on the model. It performs high quality filtering between polygons/patches, has subdivision support, and is open source.

Ptex allows you to apply separate textures for each face of a subdivisions or polygon mesh, and can store thousands of texture images in a single file.

Generating Ptex textures

3D coat

3D coat is a 3rd party paint package which has Ptex support, eliminating the need for gptex.


The gptex command-line utility lets you take individual maps for every polygon in your model and generate a .ptx texture.

gptex [-f <<maplist>>] <<geo_file>> <<ptex_file>> [<<mapfile>> ...]

Where geo_file is a geometry file Houdini can read (such as .geo), and ptex_file is the Ptex texture file to generate. You can specify the per-face textures using a list of mapfiles or passing -f with the name of a file containing one texture path on each line.

For example, to generate a box.ptx texture file from a box geometry file and 6 texture maps.

% gptex box.geo box.ptx face0.rat face0.exr face1.pic face2.tif face3.pic face4.pic face5.pic


All maps must have power of 2 resolution. All maps must have the same number of color channels. All maps must have the same storage type. All polygons must be quadrilaterals.


isixpack can generate .ptx files for reflection/environment maps. These maps provide better filtering when there’s lots of blurring compared to .rat files.

environment VEX function

The environment VEX function works with Ptex, but only recognizes Houdini filter names. It will map those names to similar or equivalent Ptex filters. The current mapping of Houdini filters to Ptex filters is:

  • pointpoint

  • boxbox

  • conegaussian

  • hanninggaussian

  • blackmangaussian

  • gaussiangaussian

  • sinccatmullrom

  • catmullromcatmullrom

  • mitchellmitchell


Using materials

Textures and UVs

Creating materials

Guru level

Other renderers