VEX Dictionary / primuv
primuv
Reads any attribute at an exact parametric (uv) location on a primitive.
group: attribprimattrib
Available in every context
Usage
<type> primuv( <geometry>; string attribute_name; int prim_num; vector uvw)
<type>[] primuv( <geometry>; string attribute_name; int prim_num; vector uvw)
Examples
// Before this wrangle, store the binding on the rest mesh:
// i@bindprim / v@binduv from xyzdist against input 1 at frame 1.
// Input 1: the deforming mesh
@P = primuv(1, "P", i@bindprim, v@binduv);Store the primitive and uv once on the rest pose. Each frame, primuv looks them up on the deforming mesh, so the points ride along with it. This is a lightweight alternative to Point Deform.
Use cases
- Attaching feathers, fur guides or debris to animated skin
- Sampling any attribute at a parametric location
Signatures (from vcc -X)
matrix2 primuv(int, string, int, vector)all contextsmatrix2 primuv(string, string, int, vector)all contextsmatrix3 primuv(int, string, int, vector)all contextsmatrix3 primuv(string, string, int, vector)all contextsmatrix primuv(int, string, int, vector)all contextsmatrix primuv(string, string, int, vector)all contextsfloat primuv(int, string, int, vector)all contextsfloat primuv(string, string, int, vector)all contextsint primuv(int, string, int, vector)all contextsint primuv(string, string, int, vector)all contextsvector4 primuv(int, string, int, vector)all contextsvector4 primuv(string, string, int, vector)all contextsvector2 primuv(int, string, int, vector)all contextsvector2 primuv(string, string, int, vector)all contextsvector primuv(int, string, int, vector)all contextsvector primuv(string, string, int, vector)all contextsmatrix2[] primuv(int, string, int, vector)all contextsmatrix2[] primuv(string, string, int, vector)all contextsmatrix3[] primuv(int, string, int, vector)all contextsmatrix3[] primuv(string, string, int, vector)all contextsmatrix[] primuv(int, string, int, vector)all contextsmatrix[] primuv(string, string, int, vector)all contextsfloat[] primuv(int, string, int, vector)all contextsfloat[] primuv(string, string, int, vector)all contextsint[] primuv(int, string, int, vector)all contextsint[] primuv(string, string, int, vector)all contextsvector4[] primuv(int, string, int, vector)all contextsvector4[] primuv(string, string, int, vector)all contextsvector2[] primuv(int, string, int, vector)all contextsvector2[] primuv(string, string, int, vector)all contextsvector[] primuv(int, string, int, vector)all contextsvector[] primuv(string, string, int, vector)all contexts