Ugly Christmas Sweater with Houdini SOPs
While at Roger LA I was asked to create a procedural network that could take in a sequence of images (animated 2D elements from After Effects) and output a colored v stitch like design in 3D. As if each frame was stitched and then photographed. To correctly recreate a stitched image, each stitch must be a single color. This eliminates projection techniques as each stitch will jitter slightly to mimic stop-motion artifacts. The movement will cause a projection to spill over more than one stitch.
I wanted a script that could do the following:
- read in a raster sequence
- transfer the pixel color to a point array
- copy a single v thread to each point (the copied v thread inherits the point color)
- jitter each colored thread
These requirements are easily filled with Houdini’s Copy SOP and Copy Stamping.
Here is the main network:
Inside the pointVOP: The colormap node is used transfer the UV planar mapped raster image into the point color channel (Cd).
Copy stamping was used to:
- offset each threads UV layout to vary each texture
- randomly offset its rotation
- randomly select its shape (1 of 3 different thread shapes)
- jitter its movement over time based on color
- if($CR > .1, fit01(rand($PT+$FF),-.5,.5), 0 )
The stitched sheet was cached with alembic and rendered with Arnold in Maya.
This script was created for ESPN’s broadcast of Christmas Day NBA games.
A few more examples:
Here anything blue does not jitter overtime
I originally wanted to build this in Maya’s XGEN, however there are a few limitations. As of Maya 2015 EXT, XGEN is still pretty buggy. Reading in raster color information and transferring it to instanced geo is also problematic. XGEN converts input images to ptex for internal use. A script would need to be written to bake each image in the sequence to ptex. Also, even in Maya 2016, the XGEN interface does not fully support HiDPI displays.