Animated Geometry (Legacy 3DS MAX)
- Last UpdatedApr 02, 2025
- 3 minute read
Note This topic is relevant only for 3DS Max legacy workflow.
Animated Geometry enables you to animate various elements of geometry.
These elements are supported:
-
Vertex Position
-
Vertex Normal
-
Face UV Map channel 1
Creating animated geometries
Animated geometry is defined in 3DSMax using a dummy. This dummy will contain all the information needed to export animated geometry.
For each dummy, and therefore for each animated geometry, you must specify a mesh using the szMesh parameter. The animation data will be extracted from this mesh.
The mesh is then exported normally; however, the data of the animated geometry will be elsewhere.
The engine requires both the original mesh and the geometry animation data to work correctly.
Channels
Animated geometry has different animation channels. It is possible to animate only certain elements, such as vertex position, and leave the others intact, such as the normals.
You can specify several channels at the same time with the szDynamicData parameter. For example, the vertex position and the UV Map 1, leaving all the other fixed elements.
Based on the number of elements to be animated, the number of vertices, the number of frames,and so on, these animated geometries can occupy a lot of space in system memory and use more or less CPU resources.
Therefore, it is necessary to use different compression schemes, whose effectiveness depends on the situation, such as the mesh, the number of frames and so on.
Code example
This is an example with animated positions and UV.
$AnimatedGeometry
{
iVersion = 1
szMesh = Box01
szCompression = None
szDynamicData = Pos
szDynamicData = UV1
$Anim
{
szID = FireAnim
dwStartFrame = 0
dwEndFrame = 10
fFPS = 5
bInterpolate = true
bCircularInterpolation = true
}
$Anim
{
szID = DieAnimation
dwStartFrame = 11
dwEndFrame = 23
fFPS = 8
bInterpolate = false
}
$Anim
{
szID = Dunno
dwStartFrame = 28
dwEndFrame = 30
}
}
To use animated geometry
-
Create a mesh in which you animate something.
-
Create a dummy and then assign it the parameters.
-
In the engine, launch the animation on the mesh.
By default, the mesh is always rendered normally, without animations.
Compression schemes
For a description of the various compression schemes, see the szCompression parameter.
You can create a different animation for each dummy.
For example, in the scene we can have two animations, one that goes from the frame 0..50 and runs to 10FPS while another that goes from the frame 55..80 and runs to other FPS. Each of these animations is defined by a substructure $ Anim.
To ensure animated data is exported, include at least one $Anim definition in the animated geometry definition.
Interpolation
It is possible to enable interpolation between the various frames using the bInterpolate parameter. In this way, it is possible to use a different frame rate than the rendering one, or to use fewer frames (thus occupying less memory), without taking a picture animated geometry.
Animated geometries can be exported both in World Space and in Object Space. The mode is the same as for a normal mesh.
Limitations
-
Currently, the optimizations of the mesh from which the animated geometry is created are disabled. As a result, this mesh has a number of vertices equal to NumFaces * 3, even if, at the end, many of these vertices are duplicated.
-
Each animation must contain at least two frames.