/ptex

Per-Face Texture Mapping for Production Rendering https://wdas.github.io/ptex

Primary LanguageCOtherNOASSERTION

Ptex

Ptex is a texture mapping system developed by Walt Disney Animation Studios for production-quality rendering:

  • No UV assignment is required! Ptex applies a separate texture to each face of a subdivision or polygon mesh.

  • The Ptex file format can efficiently store hundreds of thousands of texture images in a single file.

  • The Ptex API provides cached file I/O and high-quality filtering - everything that is needed to easily add Ptex support to a production-quality renderer or texture authoring application.

Quickstart

Building with make (Linux):

make prefix=$PWD/install
make test
make install
make doc

The Makefile uses cmake under the hood.

This will build, install to a local install directory, and run regression tests.

Documentation is only built if the following dependencies are installed:

Installation Contents

install/bin:
    ptxinfo

install/include:
    PtexHalf.h  PtexInt.h  Ptexture.h  PtexUtils.h

install/lib:
    libPtex.a  libPtex.so

Note: docs will be generated in the src/doc/ptex directory and installed as install/share/doc/ptex.

Development

Source tree

Tests

Unit tests are in the src/tests/ directory.

All tests are run by default when building the default all target. Use make test to run the tests directly.

The flags variable can be used to forward flags to ctest. For example, to run just the half tests:

    make test flags='-R half'

Packaging Notes

Ptex's build scripts will use a hardcoded version number that may or may not match the tagged version number when Ptex is built from a tarball instead of from a git worktree.

This version be overriden by placing a file called version at the root of the source tree containing the desired version number.

For example, the following command will generate a version file that will be used by the build in lieu of git tags and the PTEX_VER cmake variable:

echo v2.3.2 >version

Release Prep

Before creating new minor version releases, run:

    ./src/tests/check_version --update vX.Y

check_version.sh updates the default PTEX_VER version in CMakeLists.txt with the specified minor version number.

Running ./src/tests/check_version.sh without any arguments will warn when the git tags do not match the default version.

The gh-pages branch contains the ptex.us website. When new release are created add an entry to buildsite.py and run the script to update the site.