[Sidefx-houdini-list] I3d Opacity

Jaideep Khadilkar iamjaideep80 at yahoo.com
Sat Aug 5 02:22:05 EDT 2006

HI Andrew...

Thank u very very much. You gave a very valuable information. I was always confused about the attributes and variables in Houdini. I don't know why don't they explain it in thier Docs. I still haven't tested my new I3d Opacity VOp, cause I was busy in something else. Also, I am now eager to create my own Custom Sop to create the varibles. I will see how it goes.

Jaideep Khadilkar
(TD, Sciclone Motion Graphics)

Andrew D Lyons <tstexture at gmail.com> wrote: On 04/08/06, Jean-Claude  wrote:
> hm.. here I might lack of english knowledge.. cause I dont really got the point... sorry -_-

Here's a humor-less and slightly tabulated explanation.

As you probably know - in Houdini, points can have attributes. You can
also assign a variable to that attribute for referencing it's values
easily in expressions. (If you look in the "attribute create" sop you
will see how this can be implemented.)

As an example of the general case in Houdini, lets look at the normal
attribute and it's default variable:
Attribute name = nx ny nz
Variable name = $NX $NY $NZ

$NX = nx = normal x component
$NY = ny = normal y component
$NZ = nz = normal z component
Generally things in Houdini are kind of straight-forward and intuitive
like this. The default variable is usually just an upper case version
of the attribute name with a $ sign in front of it. (You can obviouly
create arbitrary variable names using different conventions in the
AttribCreate SOP.)

The $LIFE variable does not however have such a direct and intuitive
mapping between the attribute and the variable.
Attribute name = life[0] life[1]
Variable name =$LIFE $AGE


$LIFE = life[0] / life[1] = the normalized age of the particle
(between 0 and 1).
$AGE = life[0] = the age of the particles in seconds.

P.S. In POPs there is also a $LIFESPAN:
$LIFESPAN = life[1] = the duration that the particle is going to live
for in seconds.


This whole area is a regular cause for confusion for Houdini
beginners. While the $LIFE variable is confusing because it's a break
with the general convention exemplified in the normal attribute and
it's variable, IMHO the nature of variables in Houdini in general is
confusing and needs simplification:

* Why do some attributes get default variables created and others don't?
* Why don't all attributes get an associated variable created by default?

A number of Houdini using FX houses now have custom SOPs which
auto-create a variable for the multiple attributes created in each
instance of that custom SOP. Given the amount of work we do massaging
attributes with expressions for certain effects this massively cuts
down on huge chains of AttribCreate SOPs and/or
point("../"+opinput...) expressions.

It seems to me that we want a default variable for an attribute more
often than we don't.
I personally would like to see all attributes created get a default
variable. I'd rather delete unwanted variables with one sop at the end
of a network than have the huge chains of SOPs and expressions needed
to create them manually. I don't believe the user time required to
create all those variables is justified by the speed or memory
overhead involved in having them there by default.



Andrew D Lyons | Digital Artist | http://www.tstex.com
Sidefx-houdini-list mailing list
Sidefx-houdini-list at sidefx.com

Yahoo! Messenger with Voice. Make PC-to-Phone Calls to the US (and 30+ countries) for 2¢/min or less.

More information about the Sidefx-houdini-list mailing list