Table of Contents
Field Input Functions
OpenVDB grids, also known as Fields, are a powerful method for creating advanced visual effects. ME-L was designed to efficiently handle large amounts of volumetric data, and as such, it is optimized for processing 3D Field data. Most ME-L functions are able to utilize multiple processor cores through the use of multi-threading and parallel processing. When working with OpenVDB Fields in ME-L, it is recommended to create the Field input as the first connection input, as this allows all voxel data to be accessed in parallel.
Find below a list of functions specifically designed to handle Field data.
Global Variables
Variable | Description |
---|---|
field_in | Scalar or vector value of the current voxel, Note this is only valid when the first input is a Field (parallel processing). |
field_in_voxelsize | World voxel size |
field_in_ovoxelsize | voxel size in object space |
field_in_pid | TP particle id of the field |
field_in_id | returns the index of the input you created (starting with 0 excluding Time and On). |
field_in_isample
Used to gather an interpolated value from within a field either in voxel space or world space
Calls:
field_in_isample(in_vposition) field_in_isample(in_world_position, out_vector)
Parameters for Scalar fields:
Name | Description |
---|---|
in_vposition | Position in voxel space to sample. |
Return for Scalar fields:
Sampled Scalar value
Parameters for Vector fields:
Name | Description |
---|---|
in_world_position | field Position in Worldspace |
out_vector | Specify a Vector[3] variable to receive the content of the field |
Return for Vector fields:
Length of Vector
field_in_wsample
Used to gather an interpolated valueof a scalar field in world space
Calls:
field_in_wsample(in_world_position) field_in_wsample(in_world_position, out_vector)
Parameters for Scalar fields:
Name | Description |
---|---|
in_world_position | World position to sample. |
Return for Scalar fields:
Sampled Scalar value from World Position
Parameters for Vector fields:
Name | Description |
---|---|
in_world_position | field Position in Worldspace |
out_vector | Specify a Vector[3] variable to receive the content of the field |
Return for Vector fields:
Length of Vector
field_in_transform
This function transforms a vector or point from one space into various other coordinate spaces. Vector transform represents only rotate/scale and NO translation. Point rtransforms represent a full transform including rotation, scale and translation.
Calls:
field_in_transform(transform_point, in_fromto_type, in_vector[3], out_vector[3]);\\ field_in_transform(transform_vector, in_fromto_type, in_vector[3], out_vector[3]);\\ field_in_transform(transform_point,in_fromto_type, in_out_vector[3]);\\ field_in_transform(transform_vector,in_fromto_type, in_out_vector[3]);
Parameters:
Name | Description |
---|---|
transform_type | sets the transformation type to either vector or point(complete transform). |
in_fromto_type | specifies the transformation space to use see below table for possibel options. |
in_vector[3] | specifies the input 3D vector to transform |
out_vector[3] | stores the transformed result of this function |
in_out_vector[3] | the passed in vector will be overwritten with the result of the transformation |
transform_types:
Name | Description |
---|---|
transform_point | will do a full transformation (Rotation,Scale,Translation) |
transform_vector | will do a transformation (Rotation,Scale) |
transform_direction | will do a rotatioon transformation, only |
transform_normal | will do a transformation (Rotation,Scale) |
transform_transrot | will do a transformation (Rotation,Translation) |
fromto_types:
Name | Description |
---|---|
object2world | will convert the vector from object to world coordinates |
world2object | will convert the vector from world to object coordinates |
voxel2world | will convert the vector from voxel to world coordinates |
world2voxel | will convert the vector from world to voxel coordinates |
voxel2object | will convert the vector from voxel to object coordinates |
object2voxel | will convert the vector from object to voxel coordinates |
Return:
0; Fail, 1; Succed
field_in_distance
This function calculates the world-nearest distance between a point and surface (ISO value 0). This only works with SDF fields.
Calls:
distancefield_in_distance(in_world_pos[3], out_world_dist, out_world_normal[3]); distancefield_in_distance(in_world_pos[3], out_world_dist); out_world_dist = distancefield_in_distance(in_world_pos[3]);
Parameters for Scalar fields:
Name | Description |
---|---|
in_world_pos[3] | the point to sample in world-coordinates |
out_world_dist | returns nearest world distance to the SDF (iso value 0) surface, negative values are inside positiv values are outside |
out_world_normal[3] | returns the surface normal at the nearest SDF surface point. |
Return:
0; Fail, 1; Succeed. There is a special case when there is a position supplied, only. In this case, the function directly returns a distance (scalar).
©2024, cebas Visual Technology Inc.