[Sidefx-houdini-list] I3d Opacity

Mark Story mstory at xion.org
Sun Aug 6 16:53:53 EDT 2006


Thanks Andrew, very detailed explanation, good stuff!

>>
>> 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
>>
>> where:
>> $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
>>
>> where:
>>
>> $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.
>>
>> Thoughts?
>>
>> Cheers
>>
> 
> 





More information about the Sidefx-houdini-list mailing list