Geometries in the Viz Engine Render Pipeline can be either static (for example, from imported 3D models) or dynamic. Dynamic geometries offer a very flexible and efficient way in handling these data.
While static geometries can not be modified after the data has been uploaded to the GPU, dynamic geometries can be transformed by one or multiple Node Modifiers. Almost every Classic Render Pipeline geometry plug-in can be converted into a Dynamic Geometry.
To Convert a Geometry into a Dynamic Geometry
Right click on a container holding a basic geometry and choose Convert n to Dynamic Geometry.
Once the geometry has been converted, the Icon of the geometry changes to indicate a Dynamic Geometry. Clicking on this Geometry Icon shows you a list of a Generator and one or more Modifiers.
A generator is an instance of the original geometry plug-in. A special type of generator is a Blendshape model. Operations on Dynamic Geometries should usually be performed on the GPU as this performs much faster than on the CPU. The option Prefer GPU calculates only the required ones on the CPU and proceeds to perform all other calculations on the faster GPU. If enabled it will search for the earliest possible node to upload its data (based on the requirements of all nodes). If an invalid node combination is found, later nodes that do not meet the requirements will be skipped.
You can replace the existing Generator by clicking on the
icon and selecting a new geometry, or by dragging a new geometry on to the Dynamic Geometry icon on the scene tree.Node Modifiers in Detail
A node modifier takes the node data of the generator or the previous node and transforms it into a new one. Therefore, the order of the applied node modifiers matters. For example, if you first twist a geometry and extrude it afterwards, the result looks different.
Add a new modifier by clicking on the
icon inside the modifier accordion and the list of available modifiers are shown.To replace a modifier.
Remove a modifier by clicking on the trashcan icon.
As the order matters, you can change the sequence by clicking on the arrow icons.
Twist Node Modifier
The Twist modifier allows to add a twist effect to any geometry. As more vertices are available on the geometry, the better the result is.
You should always try to increase the number of vertices on the base geometry by increasing the tessellation value.
The Twist modifier allows to rotate on X,Y or Z-Axis.
The Angle is applied between the Begin and End property.
Extrusion Modifier
The Extrusion modifier can be used to turn any 2D object (like a rectangle or circle) into a 3D object.
Modify the length of your extrusion using the Extrusion Depth parameter.
Start at the end of the extrusion effect can be changed by using the Bevel Size option. Depending which Extrusion Type you have chosen, the effect of the bevel looks different.
Some Extrusion types also allow to modify the Detail of the bevel effect or the Shading Angle.
Visualize Backface turns off the additional vertices; however, as all these calculations are performed on the GPU, this might only be needed in some rare use cases.
Information: Text can not be converted into a Dynamic Geometry, but the Built-In Extrusion on the text geometry is based on the same algorithms.
Color Modifier
The color modifier is a very basic one, adding a color to the geometry.
Generate Normals Modifier
The Generate Normals modifer is usually only applied to recalculate normals on a geometry if they are missing.
The normal defines how a face is facing the camera.
Combining Multiple Modifiers
The power of Dynamic geometries and the modifiers is that all of them can be combined. Lets take a simple example:
We start with a basic start geometry with about 20 corners.
Convert it to a Dynamic Geometry by right clicking on the geometry icon in the scene tree and choose Convert Star to Dynamic Geometry.
Now lets add the Extrusion Modifier to it.
Add a Twist Node Modifier to it. This twists our geometry along the X -Axis.
Add a second Twist Node Modifier to it and set the axis to the Z-axis. Increase the number of Corners to about 100.
To Use Blendshapes
Blendshapes (in conjunction with techniques such as “bone and skin”) are used to animate an imported static geometry (for example, from an .FBX file).
Multiple versions of a deformed mesh are stored within a Blendshape. These expressions are then interpolated and mixed together to create a new impression and is often used for character facial expression, simulate the bending of muscles or other deformations of a 3D model.
Blendshapes are very flexible and efficient as they provide very realistic animations and lightweight data to process. They offer precise control over the character's expression and movement.
Blendshapes are usually created in modeler tools like Maya or Houdini, Blender (Shape Keys), 3DS Max (Morph Targets) or Cinema 4d (PoseMorph) and then imported in Viz Engine for Realtime animation. Apples ARKit also supports Blendshapes for their real time avatars.
To import a .FBX file with blendshapes, make sure to check the option “TO BE DEFINED” in the import dialog box:
TODO: Add screenshot of import dialog box
Information: Only .FBX files can be imported as Blendshapes.
Once the model is imported, it is shown as Dynamic Geometry and the Blend Shapes Generator as well as the Normals Modifier is applied. The Prefer GPU option should always be kept unless there is a reason to move the calculation to the other (slower) CPU.
The Generator node now displays a list of all Blendmodes within the model as well as a modifier to each expression to control the strength of it:
The names of the expressions varies from model to model, however Apples AR Kit defines 52 sets of expressions (for faces).
The weight can be set from a value between 0 and 100 and mixes the shapes into a new expression.
Credits: "Old Man Clem Head with Blendshapes" (https://skfb.ly/orZpx) by skullvez is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).
See Also