Rasagar/Library/PackageCache/com.unity.visualeffectgraph/Documentation~/Snippets/Block-SetPosition.md
2024-08-26 23:07:20 +03:00

10 KiB

Block compatibility

This Block is compatible with the following Contexts:

Block settings

Setting Type Description
Spawn Mode Enum Specify how to distribute particles within the mesh. The options are:
Random: Calculates a per-particle random progress uniform sampling among the chosen primitive in Placement Mode.
Custom: Manually specify the sampling parameters.
Placement mode Enum Specify which primitive part of the mesh to sample from:
Vertex: Samples positions from all listed vertices.
Edge: Samples from an interpolation between two consecutives vertices that are part of a triangle on the mesh.
Surface: Samples from an interpolation between three vertices that define a triangle on the mesh.
Surface coordinates Enum Specify the method this Block uses to sample the surface of a triangle.
Barycentric: Samples the surface using raw barycentric coordinates. With this method, sampled positions are not constrained by the triangle edges which is useful if you have baked a position outside of the Visual Effect Graph.
Uniform: Samples the surface uniformly within the triangle area.
This property only appears if you set Placement mode to Surface and Spawn Mode to Custom.
Source Enum (Inspector) Specify the mesh type to sample from.
Mesh: Sample from a mesh asset. The Block becomes a Set Position (Mesh) Block.
Skinned Mesh Renderer: Sample from a Skinned Mesh Renderer component. The Block becomes a Set Position (Skinned Mesh) Block.
Skinned Transform Enum Specify the transform to apply to the sample from the Skinned Mesh Renderer.
None: Apply no transform. The sample is the raw value from the geometry buffer of the Skinned Mesh Renderer.
Apply Local Root Transform: Apply the transform from the root bone, relative to the Skinned Mesh Renderer instance.
Apply World Root Transform: Apply the world transform of the root bone.

This property only appears if you set Source to Skinned Mesh Renderer.
Apply Orientation Enum (Inspector) Specify how Visual Effect Graph applies orientation to an attribute.
Direction: Sample the vertex normal, then apply the Composition Direction to the direction attribute.
Axes: Sample the vertex normal and tangent, then calculate normalized perpendicular axes (an orthonormal basis) and apply the Composition Axes to the AxisX, AxisY, and AxisZ attributes.
Composition Position Enum (Inspector) Specify how this Block calculates the position attribute.
Overwrite: Overwrites the position attribute with the new value.
Add: Adds the new value to the position attribute value.
Multiply: Multiplies the position attribute value by the new value.
Blend: Interpolates between the position attribute value and the new value. You can specify a blend factor between 0 and 1.
Composition Axes Enum (Inspector) Specify how this Block calculates the axisX, axisY, and axisZ attributes.
Overwrite: Overwrites the axis attribute values with the new value.
Blend: For each axis attribute, interpolates between the value and the new value. You can specify a blend factor between 0 and 1. The three axes might not be normalized and perpendicular to each other (orthonormal) after Visual Effect Graph blends the values.
This property only appears if you set Apply Orientation to Axes.
Composition Position Enum (Inspector) Specify how this Block calculates the position attribute.
Overwrite: Overwrites the direction attribute with the new value.
Add: Adds the new value to the direction attribute value.
Multiply: Multiplies the direction attribute value by the new value.
Blend: Interpolates between the direction attribute value and the new value. You can specify a blend factor between 0 and 1.
This property only appears if you set Apply Orientation to Direction.

Block properties

Input Type Description
Mesh Mesh The source mesh asset to sample.

This property only appears if you set Source to Mesh.
Skinned Mesh Renderer Skinned Mesh Renderer The source Skinned Mesh Renderer component to sample. This is a reference to a component within the scene. To assign a Skinned Mesh Renderer to this port, create a Skinned Mesh Renderer property in the Blackboard and expose it.

This property only appears if you set Source to Skinned Mesh Renderer.
Vertex uint The index of the vertex to sample.
This property only appears if you set Placement mode to Vertex and Spawn Mode to Custom.
Index uint The start index of the edge to sample from. The Block uses this index and the following index to select the line to sample from.
This property only appears if you set Placement mode to Edge and Spawn Mode to Custom.
Triangle uint The index of triangle to sample, assuming the index buffer contains a triangle list.
This property only appears if you set Placement mode to Surface, Spawn Mode to Custom, and Spawn Mode to Custom.
Edge float The interpolation value the Block uses to sample along the edge. This is the percentage along the edge, from start position to end position, that the sample position is taken.
This property only appears if you set Placement mode to Edge and Spawn Mode to Custom.
Barycentric Vector2 The raw barycentric coordinate to sample from the triangle at. The input is two-dimensional (X and Y) and the block calculates the Z value with the values you input: Z = 1 - X - Y. This sampling method does not constrain the sampled position inside the triangle edges.
This property only appears if you set Placement mode to Surface, Surface coordinates to Barycentric, and Spawn Mode to Custom.
Square Vector2 The uniform coordinate to sample the triangle at. The Block takes this value and maps it from a square coordinate to triangle space. To do this, it uses the method outlined in the paper A Low-Distortion Map Between Triangle and Square (Heitz 2019).
This property only appears if you set Placement mode to Surface, Surface coordinates to Uniform, and Spawn Mode to Custom.
Blend Position Float The blend percentage between the current position attribute value and the newly calculated position value.
This property only appears if you set Composition Position to Blend.
Blend Axes Float The blend percentage between the current axis attribute value and the newly calculated axis value.
This property only appears if you set Composition Axes to Blend.
Blend Direction Float The blend percentage between the current direction attribute value and the newly calculated direction value.
This property only appears if you set Composition Direction to Blend.
Transform Transform The transform to apply after sampling. If you set Source to Skinned Mesh Renderer and Skinned Transfrom to a setting other than None, Visual Effect Graph applies the transform after the root bone transform. If you set Skinned Transform to Apply World Root Transform, Visual Effect Graph converts the transform to world space.

Limitations

The Mesh sampling feature has the following limitations:

Reference list

  • Heitz, Eric. 2019. "A Low-Distortion Map Between Triangle and Square". hal-02073696v2