Attribute From Volume

The Ultimate Houdini node reference

Visit the Node Bible

To learn more, please log in or sign up for free to explore the Node Bible.
Write your awesome label here.

Attribute From Volume

Write your awesome label here.

The Attribute From Volume SOP allows you to use voxel values to determine an attribute value along the points of a mesh.  

Drag to resize


    The Attribute From Volume SOP is great for effects that you'd like to control using volumes.  Keep in mind that it is much faster to use the volumesample() function in vex instead of this node.  So, if you are dealing with a large number of points, then it is better to use vex.  Otherwise, this SOP offers a quick and easy way of reading voxel values, remapping them if you'd like, and putting those values into point attributes.

    This node will work with both VDB and traditional volumes.  To make this work properly, you'll need to plug in something with points into the first input, and your volume goes into the second input.  If you're not sure what the voxel values are, then check out the Volume Slice Node Bible entry.

Drag to resize

Main Parameters:


--  This allows you to isolate which points will go out to read the volume.  If you are unfamiliar with what groups are, then please visit the Group SOP Node Bible entry.


--  This specifies which volumes will be sampled.  You don't need to type out @name=foo or anything like that.  Instead, just type out "foo" and this parameter will recognize that field.  If you're trying to sample from any vector fields, then you'll need to say "foo.*"  The "*" will grab each component of the vector.

Attribute Name:

--  This is asking you what attribute you'd like to modify or create for the points of the mesh.  

Local Variable:

--  This gives you the ability to store the values into a custom variable.  For more information about variables, please visit the Attribute Create Node Bible entry.

Attribute Type:

--  This allows you to specify what kind of point attribute you'd like to make.  If you don't know the difference between Float, Integer, and Vector, please visit the Data Types video on Houdini For The New Artist II.

Attribute Size:

--  This parameter only works when the Attribute Type is set to either float or integer.  In Houdini For the New Artist II, we talk about vectors and how they are collection of 3 values.  Well, you can build a collection of ___ values with this parameter.  In other words, if the Attribute Type is float and you set the attribute size to 4, then you're essentially saying, "I would like a collection of 4 float values assigned to attribute 'foo.'" 

--  This might be confusing because in the Attribute Type parameter, you can also say vector.  So... if you set the Attribute Type to Vector, then that will be the same thing as setting the Attribute Type to Float and the Attribute Size to 3.  In practice, the attribute size gets useful if you'd like a collection of 2 or 4 values instead of three, and there aren't many situations which require that when using the attribute from volume node.


--  The Default Value is what the point attribute will be if it does not sample from the volume.

Drag to resize


This mapping will change the point attribute values based on a ramp.  If you decide to use this section, then make sure that the "input range" parameter is set to the min/max values of the sampled voxel values.  There are many ways to figure out the min/max.  One way is to use a vdbvisualize tree.  If you set "active tiles" to points, check on points with values, and then attribute promote the min/max, this will give you the min, max of the voxel values.

Input Range:

--  The Input range is asking you, "what are the min/max values of the voxels?"  If a voxel value goes past the max, it will just clamp to the input range max by default.  You can change that default behavior by adjusting the "Mode" parameter found above the ramp.  The same thing happens for the minimum.

Map Volume to Value & Map Volume to Vector:

--  These checkboxes are asking you whether you want to remap float data or vector data.  If you're using a vector volume/field, then use the "Map the Volume to Vector."  Otherwise, "Map Volume to Value" is what you want.


--  Clamped =  If a voxel value goes beyond the input range, then it gets clamped to the max input value.  If a voxel value goes under the min input value, then it gets clamped to the min. 
--  Periodic Ramp =  If a voxel value goes beyond the input range, then the ramp starts all over again at the beginning and essentially repeats itself.  The same thing happens if a value gets below the input range.


--  The name of this parameter is a bit strange.  These are basically ramp presets for different shapes you could make.

Output Range:

--  The Input Range is asking you how you would like to interpret the incoming voxel values.  The output range is asking you how you'd like to assign the point attribute values.  Use this parameter to remap the result of what was read on the voxels.