[Sidefx-houdini-list] mantra "clusterThis" procedural geometry DSO
mstory at xion.org
Tue Oct 7 16:51:57 EDT 2008
I'm pleased to release the first version of the Houdini/mantra
"clusterThis" geometry/volume instancer. The DSO will create instances
of primitives for each point of the incoming geometry and be "displaced"
around the point based on a number of user parameters and methods.
The project is an open source project and will also be on the source
forge odforce site for other developers to contribute if they would
like. And the project is also going to be a teaching project for
students attending workshops at Digital Cinema Arts and soon will end up
as a robust, production worthy tool (one of several tools we plan to
build to teach with *and* to use in production). Ever since I was on
"Surf's Up" I've been wanting to write a few render time plugins,
especially seeing how much the prman "cluster" DSO added to the detail
of some those shots, and it seemed to be an easy application of a simple
idea. Fun stuff mon!
The current state of the code is juat the basic structure to get the
project started, very simple algorithms for now ... and there's
definitely bugs! Use at our own risk! The nose generator is right out
of the HDK toolkit, nothing else used yet. Soon I will have the CVEX
functionality then you'll be able to use standard VEX code for
processing the instanced objects. Truthfully, I've been having so much
fun with it I've been a bit tardy in getting code released, so I know a
few more features are implemented there will be good fun for all.
Keep in mind this is a geometry instancer, it merely off loads the
creation of geometry until render time, so keep an eye on memory usage.
Future projects will include some shaders that will do similar kinds
of things but of course limited to what can be done with just shaders
... the two tools together will give an artist a lot of capability for
managing complex detail.
The current version is for mantra only but my plan is to generalize the
project appropriatley (through proper design) to provide multi renderer
support, mental ray, 3Delight and others are on the future list for
We have a small team of programmers to work on the project, any
contributions, suggestions from the Houdini community are always
welcome. DCA will "drive" the project as it's intended first and
foremost as a "teaching project", but of course we want it to be part of
the ever growing Houdini community tool set.
Here's the web page where you can download the code, DSO/DLL (and yes,
there's a mac OSX version!), and see some example pics/movies as we test
and develop the project:
(please excuse the web site's condition ... it's in the process of a
badly needed face lift ...)
I also have a little utility SOP to allow the setting of a number of
point attribute in one SOP (I got tired of chains of AttributeCreate
SOPs) but the local variable support isn't done yet, it will be in the
next release. Here's the web page in case you find it useful as it is
Point attribute SOP:
And, here's a more or less complete list of current and planned features
for this project. The docs, web page, examples, and of course the code,
will be updated quite regularly, check back often.
(*) features coming soon
# Instance a variety of geometry primitives (sphere, cube, grid, circle,
tube, curve (*), and BGEO file (*))
# Copy point attributes to the instanced geometry
# "Recursive" point generation to displace the instanced geometry
"about" the position of the incoming point's position.
# Noise generator for additional displacement data
# Attribute driven behavior (pscale, speed stretching, etc.) and
blending (via CVEX (*))
# CVEX processing (*)
# Application of volumetric modulation data. (*)
# Multi render pass optimizations (almost there, will be in next
# Motion blur (almost there, will be in next release) (*)
# Volumes instancing
# CVEX processing (*)
# More sophisticated noise/filter functions (fBm, gaussian, bezel,
impulse, butterworth, sinc) (*)
# Lacunarity and true fractalization (*)
# "RiPoints" instancing (*)
# RIB output (already there, just need interface change) (*)
# Proper primitive/point attribute blending/processing (CVEX *)
# Read volumetric data files and use for modulation of instanced
geometry and attribute processing (DT grids). (*)
# Optimizations of all kinds (especially when generating deep shadow
# Velocity/Force stretching the prims and blending/interpolating the
# Primitive selection from point attribute (prim_type) (*)
Please send bug reports, questions, feature requests to me at
mstory at xion.org.
More information about the Sidefx-houdini-list