Skip to main content
3Dvfx

an early look at ptex in blender3d

By August 4, 2010No Comments

Nicholas Bishop shows off an early implementation of disney’s open source texture technology pTex running in Blender 3d – pretty cool!

Look Ma, no modifiers! (PTex screencast) from Nicholas Bishop on Vimeo.

Look Ma, no modifiers! And a surprising lack of UV coordinates as well.

For reference, total number of texels across the entire mesh is 66,501,632, which is equivalent to a 8155px by 8155px texture (assuming the texture was perfectly packed with no wasted space.)

This is ptex, of course. The implementation isn’t complete, but here’s what working for now:

  • Per-face ptex resolution. Each face gets a U resolution and a V resolution based on its area (relative to other faces) and how stretched it is (i.e. a thin tall face should have a lower U resolution and a higher V resolution.)
  • Automatic generation of ptexes. This step is somewhat analogous to unwrapping your mesh, except instead of choosing UV coordinates, it’s setting the default ptex resolution for each face. There’s a UI control for texel density.
  • “Vertex” painting. That’s a bit of a misnomer now, of course, but you can paint more or less normally. (Naturally I’ve broken some vpaint features like Blur in the process, but it’ll all be restored.)

Note: ptex is designed mainly to work on quads. Triangles and other faces are split up into quads in the same manor as Catmull-Clark. I’ve coded it so that both quads and tris work (although there are some mapping issues with vpaint still), however quads are the “fast case”; for this reason I’ve applied one level of subsurf to Suzanne in this example.

A partial TODO list:

  • Add UI for setting individual faces’ resolutions
  • Integrate the open source ptex library for loading and saving ptex files
  • Add upsampling/downsampling so that changes aren’t lost when changing ptex resolution
  • Change default ptex to a flat color. The random noise is just for testing, of course 🙂
lesterbanks

3D, VFX, design, and typography. Twenty year veteran instructor in all things computer graphics.