On this page 
Note
In modern raytracing/PBR rendering, shadows are computed as part of the normal rendering process, and do not require separate shaders.
In micropolygon rendering, shadow shaders are called from surface or fog shaders to occlude the illumination from a given light source. The light would have already been computed by the light shader. The purpose of a shadow shader was to modify the Cl variable. Typically, the light would be occluded, causing the Cl variable to decrease in intensity.
You would typically use the shadow context to separate illumination from expensive raytracing calls (like fastshadow or filtershadow). This allowed fog shaders (or surface shaders) to easily bypass shadow testing.
Globals
vector 
P

Read only 
Position of the point on the surface being shaded. In light or shadow shaders, the P variable contains the point on the light source. 
vector 
I

Read only 
Direction from the eye to the point being shaded. This may or may not be a normalized vector. 
vector 
dPds

Read only 
Change in position with respect to the parametric s. 
vector 
dPdt

Read only 
Change in position with respect to the parametric t. 
vector 
N

Read only 
Shading normal for the surface. 
vector 
Ng

Read only 
Geometric normal for the surface. This normal represents the "true" normal of the surface being shaded. For example, with Phong shading, the N variable represents the interpolated normal, while the Ng variable represents the true polygon normal. 
vector 
Cl

Geometric normal for the surface. This normal represents the "true" normal of the surface being shaded. For example, with Phong shading, the N variable represents the interpolated normal, while the Ng variable represents the true polygon normal. 

vector 
L

Read only 
Vector from the point on the surface to the light source. The length of this vector represents the distance to the light source. 
vector 
Ps

Read only 
Position of the point on the surface being illuminated. 
vector 
Eye

Read only 
Position of the eye. 
float 
s

Read only 
Parametric s (sometimes called u) coordinate of the surface being shaded. 
float 
t

Read only 
Parametric t (sometimes called v) coordinate of the surface being shaded. 
float 
Time

Read only 
The time at which the shading occurs, as a number from 0 (shutter open) to 1 (shutter close). 
float 
dPdz

Read only 
Floating point step size for volume rendering. 
vector 
Lz

Read only 
Zaxis in the space of the light. This is a unit vector. 
int 
SID

Read only 
Sample identifier for the current shading sample. 
Functions

Returns the derivative of the given value with respect to U.

Returns the derivative of the given value with respect to V.

Returns the derivative of the given value with respect to the 3rd axis (for volume rendering).

Returns the absolute value of the argument.

Returns the inverse cosine of the argument.

Adds an attribute to a geometry.

Adds a detail attribute to a geometry.

Adds a point to the geometry.

Adds a point attribute to a geometry.

Adds a primitive to the geometry.

Adds a primitive attribute to a geometry.

Adds a mapping for an attribute to a local variable.

Adds a vertex to a primitive in a geometry.

Adds a vertex attribute to a geometry.

Appends to a geometry’s visualizer detail attribute.

Add a clip into an agent’s definition.

Returns all of the animation clips that have been loaded for an agent primitive.

Finds the index of a channel in an agent’s animation clip.

Returns the names of the channels in an agent’s animation clip.

Returns the length (in seconds) of an agent’s animation clip.

Returns an agent primitive’s current animation clips.

Samples a channel of an agent’s clip at a specific time.

Samples an agent’s animation clip at a specific time.

Returns the sample rate of an agent’s animation clip.

Samples an agent’s animation clip at a specific time.

Returns the current times for an agent primitive’s animation clips.

Returns the transform groups for an agent primitive’s current animation clips.

Returns the blend weights for an agent primitive’s animation clips.

Returns the name of the collision layer of an agent primitive.

Returns the name of the current layer of an agent primitive.

Finds the index of a transform group in an agent’s definition.

Returns the transform that each shape in an agent’s layer is bound to.

Returns all of the layers that have been loaded for an agent primitive.

Returns the names of the shapes referenced by an agent primitive’s layer.

Returns the current local space transform of an agent primitive’s bone.

Returns the current local space transforms of an agent primitive.

Returns the child transforms of a transform in an agent primitive’s rig.

Finds the index of a transform in an agent primitive’s rig.

Returns the parent transform of a transform in an agent primitive’s rig.

Applies a fullbody inverse kinematics algorithm to an agent’s skeleton.

Returns the number of transforms in an agent primitive’s rig.

Returns whether a transform is a member of the specified transform group.

Returns the names of the transform groups in an agent’s definition.

Returns the weight of a member of the specified transform group.

Returns the name of each transform in an agent primitive’s rig.

Converts transforms from world space to local space for an agent primitive.

Converts transforms from local space to world space for an agent primitive.

Returns the current world space transform of an agent primitive’s bone.

Returns the current world space transforms of an agent primitive.

Returns the albedo (percentage of reflected light) for a bsdf given the outgoing light direction.

Generates "alligator" noise.

Adds an item to an array or string.

Returns the area of the micropolygon containing a variable such as P.

Returns the indices of a sorted version of an array.

Efficiently creates an array from its arguments.

Returns a specular BSDF using the Ashikhmin shading model.

Returns the inverse sine of the argument.

Returns 1 if the VEX assertions are enabled (see HOUDINI_VEX_ASSERT) or 0 if assertions are disabled. Used the implement the assert macro.

An efficient way of extracting the components of a vector or matrix into float variables.

Returns the inverse tangent of the argument.

Returns the inverse tangent of y/x.

Converts a string to a float.

Converts a string to an integer.

Computes attenuated falloff.

Reads the value of an attribute from geometry.

Returns the class of a geometry attribute.

Returns the data id of a geometry attribute.

Returns the size of a geometry attribute.

Returns the type of a geometry attribute.

Returns the transformation metadata of a geometry attribute.

Returns the average value of the input(s)

Compute the color value of an incandescent black body.

Returns a Blinn BSDF or computes Blinn shading.

Returns the cube root of the argument.

Returns the smallest integer greater than or equal to the argument.

Evaluates a channel (or parameter) and return its value.

Evaluates a channel (or parameter) and return its value.

Evaluates a channel (or parameter) and return its value.

Evaluates a channel (or parameter) and return its value.

Evaluates a channel with a new segment expression.

Evaluates a channel with a new segment expression at a given frame.

Evaluates a channel with a new segment expression at a given time.

Evaluates a channel (or parameter) and return its value.

Evaluates a channel (or parameter) and return its value.

Returns the value of a CHOP channel at the specified sample.

Returns the value of a CHOP channel at the specified sample and evaluation time.

Evaluates a channel (or parameter) and return its value.

Converts an unicode codepoint to a UTF8 string.

Evaluates a ramp parameter and return its value.

Evaluates a channel (or parameter) and return its value.

Returns the raw string channel (or parameter).

Evaluates a channel or parameter, and return its value.

Evaluates a channel or parameter, and return its value.

Samples a CatmullRom (Cardinal) spline defined by position/value keys.

Returns value clamped between min and max.

Clip the line segment between p0 and p1.

Looks up a (filtered) color from a texture file.

In shading contexts, computes a normal. In the SOP contexts, sets how/whether to recompute normals.

Concatenate all the strings specified to form a single string.

Returns a cone reflection BSDF.

Returns the cosine of the argument.

Returns the hyperbolic cosine of the argument.

Depending on the value of c, returns the translate (c=0), rotate (c=1), scale (c=2), or shears (c=3) component of the transform (xform).

Creates a CDF from an array of input PDF values.

Creates a PDF from an array of input values.

Returns the cross product between the two vectors.

Samples a CatmullRom (Cardinal) spline defined by uniformly spaced keys.

Transforms between color spaces.

Computes divergence free noise based on Perlin noise.

Computes 2d divergence free noise based on Perlin noise.

Computes divergence free noise based on Simplex noise.

Computes 2d divergence free noise based on simplex noise.

Creates a bsdf object from two CVEX shader strings.

Generates Worley (cellular) noise using a Chebyshev distance metric.

Converts the argument from radians into degrees.

The depthmap functions work on an image which was rendered as a zdepth image from mantra.

Reads the value of a detail attribute value from a geometry.

Reads a detail attribute value from a geometry.

Returns the size of a geometry detail attribute.

Returns the type of a geometry detail attribute.

Returns the type info of a geometry attribute.

Reads the value of a detail intrinsic from a geometry.

Computes the determinant of the matrix.

Diagonalizes Symmetric Matrices.

Returns a diffuse BSDF or computes diffuse shading.

Computes the rotation matrix or quaternion which rotates the vector a onto the vector b.

Reads a variable from the displacement shader for the surface.

Returns the distance between two points.

Returns the squared distance between the two points.

Returns the dot product between the arguments.

Reads the zrecords stored in a pixel of a deep shadow map or deep camera map.

Takes the value in one range and shifts it to the corresponding value in a new range.

Computes the eigenvalues of a 3×3 matrix.

Indicates the string ends with the specified string.

Returns the color of the environment texture.

Gauss error function.

Inverse Gauss error function.

Gauss error function’s complement.

Reports a custom runtime VEX error.

Creates a vector4 representing a quaternion from euler angles.

Evaluates a bsdf given two vectors.

Returns the exponential function of the argument.

Perform UDIM or UVTILE texture filename expansion.

Sends a ray from the position P along the direction specified by the direction D.

Samples the velocity field defined by a set of vortex filaments.

Returns file system status for a given file.

Sends a ray from the position P along direction D.

Returns the antialiased weight of the step function.

Finds an item in an array or string.

Finds a primitive/point/vertex that has a certain attribute value.

Returns number of elements where an integer or string attribute has a certain value.

Takes the value in one range and shifts it to the corresponding value in a new range.

Takes the value in the range (0, 1) and shifts it to the corresponding value in a new range.

Takes the value in the range (1, 0) and shifts it to the corresponding value in a new range.

Takes the value in the range (1, 1) and shifts it to the corresponding value in a new range.

Returns the largest integer less than or equal to the argument.

Generates 1D and 3D Perlin Flow Noise from 3D and 4D data.

There are two forms of Perlinstyle noise: a nonperiodic noise which changes randomly throughout Ndimensional space, and a periodic form which repeats over a given range of space.

Returns the fractional component of the floating point number.

Computes the fresnel reflection/refraction contributions given an incoming vector, surface normal (both normalized), and an index of refraction (eta).

Transforms a position from normal device coordinates to the coordinates in the appropriate space.

If dot(I, Nref) is less than zero, N will be negated.

Returns a handle to the current geometry.

Returns an oppath: string to unwrap the geometry inplace.

Reads an attribute value from geometry, with validity check.

Copies the value of a geometry attribute into a variable and returns a success flag.

Sets two vectors to the minimum and maximum corners of the bounding box for the geometry.

Returns the center of the bounding box for the geometry.

Returns the maximum of the bounding box for the geometry.

Returns the minimum of the bounding box for the geometry.

Returns the size of the bounding box for the geometry.

Returns the blurred point position (P) vector at a fractional time within the motion blur exposure.

Returns the bounding box of the geometry specified by the filename.

Extracts a single component of a vector type, matrix type, or array.

Evaluates surface derivatives of an attribute.

Returns the depth of the ray tree for computing global illumination.

Returns a light struct for the specified light identifier.

Returns an array of light identifiers for the currently shaded surface.

Returns a selection of lights that illuminate a given material.

Returns a material struct for the current surface.

Returns the object id for the current shading context.

Gets the transform of a packed primitive.

Returns the integer ID of the light being used for photon shading.

Sets two vectors to the minimum and maximum corners of the bounding box for the geometry.

Returns the center of the bounding box for the geometry.

Returns the maximum of the bounding box for the geometry.

Returns the minimum of the bounding box for the geometry.

Returns the size of the bounding box for the geometry.

Returns a selection of objects visible to rays for a given material.

Returns a transform from one space to another.

Evaluates UV tangents at a point on an arbitrary object.

Returns the gradient of a field.

Returns a BSDF for shading hair.

Checks whether a geometry attribute exists.

Returns if a geometry detail attribute exists.

Returns whether a light illuminates the given material.

Returns if a geometry point attribute exists.

Returns if a geometry prim attribute exists.

Returns if a geometry vertex attribute exists.

Returns the destination point of a halfedge.

Returns the destination vertex of a halfedge.

Returns the number of halfedges equivalent to a given halfedge.

Determines whether a two halfedges are equivalent (represent the same edge).

Determines whether a halfedge number corresponds to a primary halfedge.

Determines whether a halfedge number corresponds to a valid halfedge.

Returns the halfedge that follows a given halfedge in its polygon.

Returns the next halfedges equivalent to a given halfedge.

Returns the point into which the vertex following the destination vertex of a halfedge in its primitive is wired.

Returns the vertex following the destination vertex of a halfedge in its primitive.

Returns the point into which the vertex that precedes the source vertex of a halfedge in its primitive is wired.

Returns the vertex that precedes the source vertex of a halfedge in its primitive.

Returns the halfedge that precedes a given halfedge in its polygon.

Returns the primitive that contains a halfedge.

Returns the primary halfedge equivalent to a given halfedge.

Returns the source point of a halfedge.

Returns the source vertex of a halfedge.

Returns an anisotropic volumetric BSDF, which can scatter light forward or backward.

Generates noise matching the output of the Hscript noise() expression function.

Produces the exact same results as the Houdini expression function of the same name.

Generates turbulence matching the output of the HScript turb() expression function.

Convert HSV color space into RGB color space.

Returns an identity matrix.

Finds a point by its id attribute.

Finds a primitive by its id attribute.

Returns 1 if the edge specified by the point pair is in the group specified by the string.

Returns 1 if the point specified by the point number is in the group specified by the string.

Returns 1 if the primitive specified by the primitive number is in the group specified by the string.

Inserts an item, array, or string into an array or string.

Creates an instance transform matrix.

Interpolates a value across the currently shaded micropolygon.

This function computes the first intersection of a ray with geometry.

Computes all intersections of the specified ray with geometry.

Inverts a matrix.

Returns 1 if the vertex specified by the vertex number is in the group specified by the string.

Returns 1 if all the characters in the string are alphabetic

Parameters in VEX can be overridden by geometry attributes (if the attributes exist on the surface being rendered).

Returns 1 if all the characters in the string are numeric

Checks whether a value is a normal finite number.

Returns 1 if the shader is being called to evaluate illumination for fog objects, or 0 if the light or shadow shader is being called to evaluate surface illumination.

Checks whether a value is not a number.

Returns an isotropic BSDF, which scatters light equally in all directions.

Indicats whether the shader is being evaulated while doing UV rendering (e.g. texture unwrapping)

Checks if the index given is valid for the array or string given.

Check whether a VEX variable is varying or uniform.

Converts an integer to a string.

Concatenate all the strings of an array inserting a common spacer.

Returns an interpolated value along a curve defined by a basis and key/position pairs.

Returns the length of an array.

Returns the magnitude of a vector.

Returns the squared distance of the vector or vector4.

Performs bilinear interpolation between the values.

Limits a unit value in a way that maintains uniformity and inrange consistency.

Imports a variable from the light shader for the surface.

Samples a polyline between the key points.

Returns the natural logarithm of the argument.

Returns the logarithm (base 10) of the argument.

Computes a rotation matrix or angles to orient the zaxis along the vector (tofrom) under the transformation.

Samples a polyline defined by linearly spaced values.

Strips leading whitespace from a string.

Compute the luminance of the RGB color specified by the parameters.

Creates an orthonormal basis given a zaxis vector.

Builds a 3×3 or 4×4 transform matrix.

Returns new BSDF that only includes the components specified by the mask.

This function returns 1 if the subject matches the pattern specified, or 0 if the subject doesn’t match.

Returns a BSDF that matches the output of the traditional VEX blinn function.

Returns a BSDF that matches the output of the traditional VEX specular function.

Once you get a handle to a metaball using metastart and metanext, you can query attributes of the metaball with metaimport.

Takes the ray defined by p0 and p1 and partitions it into zero or more subintervals where each interval intersects a cluster of metaballs from filename.

Iterate to the next metaball in the list of metaballs returned by the metastart() function.

Open a geometry file and return a "handle" for the metaballs of interest, at the position p.

Returns the metaweight of the geometry at position p.

Finds the closest position on the surface of a geometry.

Generates Worley (cellular) noise using a Manhattan distance metric.

Finds a point by its name attribute.

Finds a primitive by its name attribute.

Finds the closest point in a geometry.

Finds the all the closest point in a geometry.

Returns the number of edges in the group.

Returns the point number of the next point connected to a given point.

Returns the number of points that are connected to the specified point.

Returns an array of the point numbers of the neighbours of a point.

Initializes a sampling sequence for the nextsample function.

There are two forms of Perlinstyle noise: a nonperiodic noise which changes randomly throughout Ndimensional space, and a periodic form which repeats over a given range of space.

Derivatives of Perlin Noise.

Returns the normal for the diffuse component of a BSDF.

Returns a normalized vector.

Returns the number of points in the input or geometry file.

Returns the number of points in the group.

Returns the number of primitives in the input or geometry file.

Returns the number of primitives in the group.

Nondeterministic random number generation function.

Transforms a normal vector.

Returns the number of unique values from an integer or string attribute.

Returns the number of vertices in the input or geometry file.

Returns the number of vertices in the group.

Evaluates an ocean spectrum and samples the result at a given time and location.

Returns the names of active displays supported in Open Color IO

Returns the names of active views supported in Open Color IO

Imports attributes from OpenColorIO spaces.

Returns the names of roles supported in Open Color IO

Returns the names of color spaces supported in Open Color IO.

Transform colors using Open Color IO

These functions are similar to wnoise and vnoise.

Returns the integer value of the last sequence of digits of a string

Returns the full path for the given relative path

Returns the parent bone transform associated with an OP.

Returns the parent transform associated with an OP.

Returns the parm transform associated with an OP.

Returns the preconstraint transform associated with an OP.

Returns the pretransform associated with an OP.

Returns the transform associated with an OP.

Converts an UTF8 string into a codepoint.

Evaluates an attribute at the subdivision limit surface using Open Subdiv.

Outputs the Houdini face and UV coordinates corresponding to the given coordinates on an OSD patch.

Outputs the OSD patch and UV coordinates corresponding to the given coordinates on a Houdini polygon face.

Returns a list of patch IDs for the patches in a subdivision hull.

Returns the outer product between the arguments.

Transforms a normal vector from Object to World space.

Transforms a position value from Object to World space.

Transforms a direction vector from Object to World space.

Reversibly packs an integer into a finite, nondenormal float.

Transforms a packed primitive.

This function closes the handle associated with a pcopen function.

Writes data to a point cloud inside a pciterate or a pcunshaded loop.

Returns the distance to the farthest point found in the search performed by pcopen.

Filters points found by pcopen using a simple reconstruction filter.

Returns a list of closest points from a file.

Returns a list of closest points from a file taking into account their radii.

Generates a point cloud.

Imports channel data from a point cloud inside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

This function can be used to iterate over all the points which were found in the pcopen query.

This node returns the number of points found by pcopen.

Returns a handle to a point cloud file.

Returns a handle to a point cloud file.

Changes the current iteration point to a leaf descendant of the current aggregate point.

Iterate over all of the points of a readwrite channel which haven’t had any data written to the channel yet.

Writes data to a point cloud file.

Returns a list of closest points from a file.

Samples a color from a photon map.

Computes the distance and closest point of a point to an infinite plane.

Computes the intersection of a 3D sphere and an infinite 3D plane.

Converts an English noun to its plural.

There are two forms of Perlinstyle noise: a nonperiodic noise which changes randomly throughout Ndimensional space, and a periodic form which repeats over a given range of space.

Reads a point attribute value from a geometry.

Reads a point attribute value from a geometry and outputs a success/fail flag.

Returns the size of a geometry point attribute.

Returns the type of a geometry point attribute.

Returns the type info of a geometry attribute.

Finds and returns a halfedge with the given endpoints.

Finds and returns a halfedge with a given source point or with given source and destination points.

Returns the next halfedge with the same source as a given halfedge.

Returns the list of primitives containing a point.

Returns a linear vertex number of a point in a geometry.

Returns the list of vertices connected to a point.

Computes the polar decomposition of a matrix.

Returns an array of the primitive numbers of the edgeneighbours of a polygon.

Removes the last element of an array and returns it.

Raises the first argument to the power of the second argument.

Determines if a point is inside or outside a triangle circumcircle.

Determines if a point is inside or outside a tetrahedron circumsphere.

Determines the orientation of a point with respect to a line.

Determines the orientation of a point with respect to a plane.

Reads a primitive attribute value from a geometry.

Interpolates the value of an attribute at a certain parametric (u, v) position and copies it into a variable.

Returns the normal of the primitive (prim_number) at parametric location u, v.

Evaluates the length of an arc on a primitive using parametric uv coordinates.

Reads a primitive attribute value from a geometry, outputting a success flag.

Returns the size of a geometry prim attribute.

Returns the type of a geometry prim attribute.

Returns the type info of a geometry attribute.

Returns position derivative on a primitive at a certain parametric (u, v) position.

Returns a list of primitives potentially intersecting a given bounding box.

Returns one of the halfedges contained in a primitive.

Reads a primitive intrinsic from a geometry.

Converts a primitive/vertex pair into a point number.

Returns the list of points on a primitive.

Interpolates the value of an attribute at a certain parametric (uvw) position.

Convert parametric UV locations on curve primitives between different spaces.

Converts a primitive/vertex pair into a linear vertex.

Returns number of vertices in a primitive in a geometry.

Returns the list of vertices on a primitive.

Prints a message only once, even in a loop.

Prints values to the console which started the VEX program.

Returns the product of a list of numbers.

Computes a filtered sample from a ptex texture map. Use texture instead.

This function returns the closest distance between the point Q and a finite line segment between points P0 and P1.

Transforms a vector from one space to another.

Adds an item to an array.

Simplex noise is very close to Perlin noise, except with the samples on a simplex mesh rather than a grid. This results in less grid artifacts. It also uses a higher order bspline to provide better derivatives. This is the periodic simplex noise

Periodic derivatives of Simplex Noise.

Converts a quaternion represented by a vector4 to a matrix3 representation.

Finds distance between two quaternions.

Inverts a quaternion rotation.

Multiplies two quaternions and returns the result.

Rotates a vector by a quaternion.

Creates a vector4 representing a quaternion.

Creates a euler angle representing a quaternion.

Converts the argument from degrees into radians.

Creates a random number between 0 and 1 from a seed.

Generate a random number based on the position in 14D space.

Hashes floating point numbers to integers.

Hashes integer numbers to integers.

Generates a random Poisson variable given the mean to the distribution and a seed.

Hashes a string to an integer.

Generate a uniformly distributed random number.

Looks up an unfiltered color from a texture file.

Sends a ray from the position P along the direction D.

Imports a value sent by a shader in a gather loop.

Matches a regular expression in a string

Finds all instances of the given regular expression in the string

Returns 1 if the entire input string matches the expression

Replaces instances of regex_find with regex_replace

Splits the given string based on regex match.

Returns the vector representing the reflection of the direction against the normal.

Returns the refraction ray given an incoming direction, the normalized normal and an index of refraction.

Computes the relative path for two full paths.

Returns the relative position of the point given with respect to the bounding box of the geometry.

Returns the relative position of the point given with respect to the bounding box of the geometry.

Removes an item at the given index from an array.

Removes a point from the geometry.

Removes a primitive from the geometry.

Removes an item from an array.

Reorders items in an array or string.

Sets the length of an array.

Returns an array or string in reverse order.

Convert RGB color space to HSV color space.

Convert a linear sRGB triplet to CIE XYZ tristimulus values.

Rounds the number to the closest whole number.

Applies a rotation to the given matrix.

Rotates a vector by a rotation that would bring the xaxis to a given direction.

Strips trailing whitespace from a string.

Samples a BSDF.

Samples the Cauchy (Lorentz) distribution.

Samples a CDF.

Generates a uniform unit vector2, within maxangle of center, given a uniform number between 0 and 1.

Generates a uniform unit vector2, given a uniform number between 0 and 1.

Generates a uniform vector2 with alpha < length < 1, where 0 < alpha < 1, given a vector2 of uniform numbers between 0 and 1.

Generates a uniform vector2 with length < 1, within maxangle of center, given a vector2 of uniform numbers between 0 and 1.

Generates a uniform vector2 with length < 1, given a vector2 of uniform numbers between 0 and 1.

Generates a uniform unit vector, within maxangle of center, given a vector2 of uniform numbers between 0 and 1.

Generates a uniform unit vector, given a vector2 of uniform numbers between 0 and 1.

Returns an integer, either uniform or weighted, given a uniform number between 0 and 1.

Samples the exponential distribution.

Samples geometry in the scene and returns information from the shaders of surfaces that were sampled.

Generates a unit vector, optionally biased, within a hemisphere, given a vector2 of uniform numbers between 0 and 1.

Generates a uniform vector4 with length < 1, within maxangle of center, given a vector4 of uniform numbers between 0 and 1.

Generates a uniform vector4 with length < 1, given a vector4 of uniform numbers between 0 and 1.

Samples the lognormal distribution based on parameters of the underlying normal distribution.

Samples the lognormal distribution based on median and standard deviation.

Samples the normal (Gaussian) distribution.

Generates a uniform unit vector4, within maxangle of center, given a vector of uniform numbers between 0 and 1.

Generates a uniform unit vector4, given a vector of uniform numbers between 0 and 1.

Samples a 3D position on a light source and runs the light shader at that point.

Generates a uniform vector with length < 1, within maxangle of center, given a vector of uniform numbers between 0 and 1.

Generates a uniform vector with alpha < length < 1, where 0 < alpha < 1, given a vector of uniform numbers between 0 and 1.

Generates a uniform vector with length < 1, given a vector of uniform numbers between 0 and 1.

Warps uniform random samples to a disk.

Scales the given matrix in three directions simultaneously (X, Y, Z  given by the components of the scale_vector).

Evaluates a scattering event through the domain of a geometric object.

Returns one of two parameters based on a conditional.

Sensor function to render GL scene and query the result.

Sensor function query a rendered GL scene.

Sensor function to query average values from rendered GL scene.

Sensor function query a rendered GL scene.

Sensor function to save a rendered GL scene.

Flattens an array of vector or matrix types into an array of floats.

Creates a new value based on its arguments, such as creating a vector from its components.

Sets the current animation clips for an agent primitive.

Sets the animation clips that an agent should use to compute its transforms.

Sets the current times for an agent primitive’s animation clips.

Sets the blend weights for an agent primitive’s animation clips.

Sets the collision layer of an agent primitive.

Sets the current layer of an agent primitive.

Overrides the local space transform of an agent primitive’s bone.

Overrides the local space transforms of an agent primitive.

Overrides the world space transform of an agent primitive’s bone.

Overrides the world space transforms of an agent primitive.

Writes an attribute value to geometry.

Sets the meaning of an attribute in geometry.

Sets a single component of a vector or matrix type, or an item in an array.

Sets a detail attribute in a geometry.

Sets edge group membership in a geometry.

Sets the transform of a packed primitive.

Sets a point attribute in a geometry.

Adds or removes a point to/from a group in a geometry.

Sets a primitive attribute in a geometry.

Adds or removes a primitive to/from a group in a geometry.

Sets the value of a writeable primitive intrinsic attribute.

Rewires a vertex in the geometry to a different point.

Sets a vertex attribute in a geometry.

Adds or removes a vertex to/from a group in a geometry.

Rewires a vertex in the geometry to a different point.

The shadowmap function will treat the shadow map as if the image were rendered from a light source.

Bitshifts an integer left.

Bitshifts an integer right.

Bitshifts an integer right.

Returns 1, 0, or 1 depending on the sign of the argument.

Imports a variable sent by a surface shader in an illuminance loop.

Returns the sine of the argument.

Returns the hyperbolic sine of the argument.

Yields processing for a certain number of milliseconds.

Quaternion blend between q1 and q2 based on the bias.

Slices a substring or subarray of a string or array.

Finds the normal component of frame slid along a curve.

Computes ease in/out interpolation between values.

Returns the closest equivalent Euler rotations to a reference rotation.

These functions are similar to wnoise.

Computes the solid angle (in steradians) a BSDF function subtends.

Solves a cubic function returning the number of real roots.

Applies a fullbody inverse kinematics algorithm to a skeleton.

Finds the real roots of a polynomial.

Solves a quadratic function returning the number of real roots.

Returns the array sorted in increasing order.

Returns a specular BSDF or computes specular shading.

Returns the computed BRDFs for the different lighting models used in VEX shading.

Samples a value along a polyline or spline curve.

Splits a string into tokens.

Splits a bsdf into its component lobes.

Splits a file path into the directory and name parts.

Formats a string like printf but returns the result as a string instead of printing it.

Returns the square root of the argument.

Creates an approximate SSS BSDF.

Returns 1 if the string starts with the specified string.

Strips leading and trailing whitespace from a string.

Returns the length of the string.

Returns the sum of a list of numbers.

Finds the distance of a point to a group of points along the surface of a geometry.

Use a different bsdf for direct or indirect lighting.

Rearranges the components of a vector.

Returns the trigonometric tangent of the argument

Returns the hyperbolic tangent of the argument

Returns primitive number of an adjacent tetrahedron.

Returns vertex indices of each face of a tetrahedron.

Imports attributes from texture files.

Similar to sprintf, but does expansion of UDIM or UVTILE texture filename expansion.

Computes a filtered sample of the texture map specified.

Returns the value of the 3d image at the position specified by P.

This function queries the 3D texture map specified and returns the bounding box information of the file.

Returns a string that is the titlecase version of the input string.

Transforms a position into normal device coordinates.

Converts all characters in string to lower case

Converts all characters in string to upper case

Translates a matrix by a vector.

Returns a Lambertian translucence BSDF.

Transposes the given matrix.

Removes the fractional part of a floating point number.

Transforms a normal vector from Texture to World space.

Transforms a position value from Texture to World space.

Transforms a direction vector from Texture to World space.

Returns one of the set of unique values across all values for an int or string attribute.

Returns the set of unique values across all values for an int or string attribute.

Reverses the packing of pack_inttosafefloat to get back the original integer.

Turns a flat array of floats into an array of vectors or matrices.

Adds a uniform item to an array.

Finds the distance of a uv coordinate to a geometry in uv space.

This function computes the intersection of the specified ray with the geometry in uv space.

Interpolates the value of an attribute at certain UV coordinates using a UV attribute.

Computes the position and normal at given (u, v) coordinates.

Computes the mean value and variance for a value.

Reads a vertex attribute value from a geometry.

Reads a vertex attribute value from a geometry.

Returns the size of a geometry vertex attribute.

Returns the type of a geometry vertex attribute.

Returns the type info of a geometry attribute.

Returns the halfedge which has a vertex as source.

Converts a primitive/vertex pair into a linear vertex.

Returns the linear vertex number of the next vertex sharing a point with a given vertex.

Returns the point number of linear vertex in a geometry.

Returns the linear vertex number of the previous vertex sharing a point with a given vertex.

Returns the number of the primitive containing a given vertex.

Converts a linear vertex index into a primitive vertex number.

Generates Voronoi (cellular) noise.

Returns the volume of the microvoxel containing a variable such as P.

Calculates the volume primitive’s gradient.

Gets the value of a specific voxel.

Gets the index of the bottom left of a volume primitive.

Converts a volume voxel index into a position.

Gets the vector value of a specific voxel.

Converts a position into a volume voxel index.

Gets the resolution of a volume primitive.

Samples the volume primitive’s value.

Samples the volume primitive’s vector value.

Computes the approximate diameter of a voxel.

Transforms a directional vector.

Reports a custom runtime VEX warning.

Generates Worley (cellular) noise.

Transforms a normal vector from World to Object space.

Transforms a position value from World to Object space.

Transforms a direction vector from World to Object space.

Transforms a normal vector from World to Texture space.

Transforms a position value from World to Texture space.

Transforms a direction vector from World to Texture space.

Simplex noise is very close to Perlin noise, except with the samples on a simplex mesh rather than a grid. This results in less grid artifacts. It also uses a higher order bspline to provide better derivatives.

Derivatives of Simplex Noise.

Finds the distance of a point to a geometry.

Convert CIE XYZ tristimulus values to a linear sRGB triplet.