Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
animations [2019/03/12 12:18] – admin | animations [2019/09/09 09:25] – [Model-Animation caching] admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Model-Animations ====== | ====== Model-Animations ====== | ||
- | If you load a model from DAE or X3D with embedded animations, Gorilla3D will automatically load and add all animations to the model. | + | If you load a model from G3D, DAE or X3D with embedded animations, Gorilla3D will automatically load and add all animations to the model. |
Animations are handled by the TGorillaAnimationManager inside of a TGorillaModel component. | Animations are handled by the TGorillaAnimationManager inside of a TGorillaModel component. | ||
Line 34: | Line 34: | ||
</ | </ | ||
- | ==== Iterating | + | ==== Iterating model-animations ==== |
- | To iterate | + | To iterate the animation |
<file pascal Form1.pas> | <file pascal Form1.pas> | ||
Line 88: | Line 88: | ||
Due to those performance needs, Gorilla3D offers some caching techniques for model animations. | Due to those performance needs, Gorilla3D offers some caching techniques for model animations. | ||
- | As you've seen in the previous examples for loading a model, there was a supplied parameter for animation caching: " | + | As you've seen in the previous examples for loading a model, there was a supplied parameter for animation caching: " |
Gorilla3D offers a configurable caching mechanism to suite your needs. | Gorilla3D offers a configurable caching mechanism to suite your needs. | ||
Line 95: | Line 95: | ||
^ Flag ^ Notes ^ | ^ Flag ^ Notes ^ | ||
- | | TAnimationCachingFlag.AllAttributes | + | | TAnimationCachingFlag.AllAttributes |
- | | TAnimationCachingFlag.Compressed | + | | TAnimationCachingFlag.Compressed |
- | | TAnimationCachingFlag.VertexPosition | Cached frames will be compressed inside the application memory. On MSWINDOWS x86 we use LZ4 compression for enourmous performance boost. On all other platforms we use ZLib compression algorithms by default. | | + | | TAnimationCachingFlag.VertexPosition | Cached frames will ONLY contain the vertex position. The rest of the vertex data will come from a static mesh buffer (not animatable). This is the recommend setting for caching, because in 95% of all cases you only transform vertex position on an animation skin. | |
+ | |||
+ | The constant value " | ||
+ | < | ||
+ | GORILLA_ANIMATION_CACHING_DEFAULT : TAnimationCachingFlags = [VertexPosition]; | ||
+ | </ | ||
+ | |||
+ | === Hint === | ||
+ | It is possible to combine compressed and vertex-position caching flags to reduce the number of data compressed. Otherwise on compressed caching, full vertex data will be cached. | ||
+ | |||
+ | < | ||
+ | GORILLA_ANIMATION_CACHING_COMPRESSEDEX = TAnimationCachingFlags = [TAnimationCachingFlag.Compressed, | ||
+ | </ | ||
+ | |||
+ | === Framerate === | ||
+ | |||
+ | The caching framerate used is currently fixed to 60 FPS. | ||
+ | But in future you should be allowed to configure this setting to reduce memory usage. | ||
Next step: [[materials|Materials]] | Next step: [[materials|Materials]] |