Attributes are named values stored on vertices, points, primitives, and objects. Point color, position, UV coordinates , spline weight ( W ), and normal, for example, are stored as point attributes.
When dealing with attributes, its important to know that there are different Nodes which can either generate new attributes, modify existing or even convert (promote in Houdini language) from one type to another.
Generating Attributes |
Modify Attribute Values |
Use Attribute Values |
Utility Attribute Nodes |
Convert to Line |
Attribute Randomize |
Transform |
Attribute Promote |
Measure |
Attribute Noise |
PolyWire |
Attribute Swap |
Mask from Geometry |
Attribute Create |
Primitive |
Attribute Rename |
Mask from Target |
Attribute Remap |
Soft Transform |
|
Distance along Geometry |
Attribute Expression |
Poly Extrude |
|
Orient along curves |
Attribute Adjust Color |
PolyBevel |
|
PolyFrame |
Attribute Adjust Float |
Soft Peak |
|
Normal |
Attribute Adjust Vector |
Copy to Points |
|
Attribute Create |
Mountain SOP [N, P etc] |
Sweep |
|
Pyro Source |
|
|
|
Geometry Attributes
Attribute |
Type |
Summary |
P |
vector |
Point position. The viewport uses this to lay out the points of the model in 3D space. You can overwrite this attribute to move the point. |
N |
vector |
Normal direction. You can overwrite this attribute to change the normal. |
v |
vector |
Velocity. The renderer uses this attribute to know where to add motion blur. This attribute is not computed automatically, but several nodes, especially particle DOPs, can set/use it. You can add velocity to points using the Trail SOP. |
id |
integer |
A unique element ID. This is not the same as the element number (for example, the point number). This is an attribute you can, for example, assign to points to keep track of them even if the point numbers change (which can happen if the number of points changes). Particle DOPs often set/use this attribute. |
name |
string |
This is a value you can set on primitives, such as volumes or packed primitives, to be able to find them in code by name. Some nodes set/read this attribute. |
piece |
integer |
Nodes the break up geometry into pieces will often set this attribute so you can tell which polygonal faces are part of the same piece. Faces in the same piece will share the same value in their piece attribute. Other nodes may use this attribute to operate on pieces. |
Sizes and Rotations
Attribute |
Type |
Summary |
pscale |
float |
Uniform scaling factor. This is used in different ways in different places. For particle/point rendering, it controls the size of the particle/point (in world space units) at render time. For instancing, you can use it to uniformly scale the instanced geometry. |
scale |
vector |
Whereas pscale is a single uniform scaling factor in all axes, this attribute lets you scale non-uniformly along each axis separately. See the pscale attribute for more information. |
width |
float |
When rendering open curves, sets the line width (in world space units) at render time. If this attribute does not exist, Mantra renders the open curve a thin line instead of as a ribbon with thickness. |
lod |
float |
Level of detail. This may be used in instancing. |
spritescale |
vector |
When displaying particles using sprint images, this gives additional sprite scaling over pscale. |
spriterot |
float |
When displaying particles using sprint images, this gives sprite rotation (around camera angle) in degrees. |
Particle Attributes
Attribute |
Type |
Summary |
force |
vector |
The force attribute on the current point. This is set/used by some particle DOPs. It represents a change to the particle’s position computed by adding up all the forces acting on the particle. |
rest |
vector |
Conventional name for an attribute containing each point’s rest position, used by various nodes. Some shaders can use this rather than P, so procedural textures will stick even if you deform your geometry. |
torque |
vector |
The torque attribute on the current point. This is set/used by the Torque DOP to spin particles. |
up |
vector |
Represents the up vector of a particle’s local space. This is used for instancing geometry onto a point. You can overwrite this attribute to change the particle’s orientation. |
orient |
vector4 |
Quaternion orientation of a particle. Allows fully specifying rotation, whereas up only orients along a single axis. If this exists, it is used for instancing geometry onto a point. |
rot |
vector4 |
An additional offset-quaternion applied after all other attributes, used when instancing geometry onto a point. |
nextid |
int |
Detail attribute storing the largest particle ID, allowing Houdini to create new particle ids efficiently. |
pstate |
int |
A bit field encoding different pieces of information about a particle’s state (for example, whether it’s alive, whether it’s stopped, whether it collided in the previous frame, and so on). Various particle DOPs read and write this attribute. |
Shader Overrides
Attribute |
Type |
Summary |
C |
vector |
Diffuse color override. The viewport uses this to color OpenGL geometry. |
Alpha |
float |
Alpha transparency override. The viewport uses this to set the alpha of OpenGL geometry. |
Cs |
vector |
Specular color override. |
Cr |
vector |
Reflect color override. |
Ct |
vector |
Transmit color override. |
Ce |
vector |
Emission color override. |
rough |
float |
Roughness override. |
fresnel |
float |
Fresnel coefficient override. |
shadow |
float |
Shadow intensity override. |
sbias |
float |
Shadow bias override. |
Rendering Attributes
Attribute |
Type |
Summary |
uv |
vector |
The UV coordinates of the point/vertex. The first two elements of this vector contain the current U and V coordinates. Note that uv is Houdini’s conventional attribute name for storing texture coordinates. You can store texture coordinates in other attributes, so you can have multiple UV layouts on the same geometry. Most texture-related nodes have a field to let you specify the name of the UV attribute to use. |
material |
float |
The node path to the material to use to shade this primitive. Overrides the object’s material. |
instance |
vector |
The instance attribute on the current point, containing a path to the geometry instanced on the point. This can be a file path to a geometry file, or an op: path to a Geometry object or geometry node. You can overwrite this attribute to change the instanced geometry. |
rishade |
vector |
Detail/primitive. The name of a RenderMan shader. |
Viewport Volume Display Attributes
A volume visualization set can have the following 4 components.
Attribute |
Summary |
density |
For fog, this component contains the optical thickness of the smoke. With height fields, this main volume should store the elevation at each voxel. |
cd |
The color field. This component can be used with both fog (to color the smoke) and height fields (to texture the terrain). |
emit |
With fog, this component contains the intensity of emission (or internal glowing). For height fields, this component acts like a visualization stencil: the viewport only draws parts of the height field where the emit value is at least 0.5. |
emitcd |
This component can be used with fog volumes to color the internal emission. |
*More on Geometry Attributes can be seen here: [Geometry attributes (sidefx.com)](https://www.sidefx.com/docs/houdini/model/attributes.html#:~:text=Attributes are named values stored,you can use in expressions.)*