The Cal3D User's Guide

Version 0.11

This documentation describes Cal3D, a free 3d character animation library. Please take a minute of your time to report problems when compiling or using cal3d.

Important

This is a draft version of the Cal3D User's Guide. It surely contains errors, obscure descriptions and other anomalies. Please report them to the authors, or to the mailing list and help us make it better, thanks!


Table of Contents
1. Introduction
1.1. What is Cal3D?
1.2. About this Guide
1.3. Credits
1.4. Licenses
2. History, Goals and Design Decisions
2.1. A brief History of Cal3D
2.2. Goals and Design Decisions
2.2.1. Functionality
2.2.2. Ease of Use
2.2.3. Portability
2.2.4. Scalability
2.2.5. Flexibility
2.2.6. Performance
2.2.7. Interoperability
3. Setup
3.1. How to obtain Cal3D
3.2. Requirements
3.3. Installation
3.4. Compilation
3.4.1. automake/autoconf
3.4.2. MS Visual C++
4. Architecture
4.1. Overview
4.1.1. Core Classes
4.1.2. Instance Classes
4.1.3. Miscellaneous Classes
4.1.4. Animation Pipeline
4.2. Vectors and Quaternions
4.3. Skeletons and Bones
4.4. Animations, Tracks and Keyframes
4.5. The 'Mixer'
4.6. Materials
4.7. Meshes and Submeshes
4.8. The 'Renderer'
4.9. Error Handling
5. Usage
5.1. Preparations
5.2. Core Model Handling
5.2.1. Creation
5.2.2. Data Loading
5.2.3. Material System Setup
5.2.4. Destruction
5.3. Model Instance Handling
5.3.1. Creation
5.3.2. Attachment and Detachment of Meshes
5.3.3. Level-of-Detail Control
5.3.4. Material Control
5.3.5. Animation Control
5.3.6. State Update
5.3.7. Rendering
5.3.8. Destruction
A. GNU Lesser General Public License
0. PREAMBLE
1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
B. GNU Free Documentation License
0. PREAMBLE
1. APPLICABILITY AND DEFINITIONS
2. VERBATIM COPYING
3. COPYING IN QUANTITY
4. MODIFICATIONS
5. COMBINING DOCUMENTS
6. COLLECTIONS OF DOCUMENTS
7. AGGREGATION WITH INDEPENDENT WORKS
8. TRANSLATION
9. TERMINATION
10. FUTURE REVISIONS OF THIS LICENSE
List of Figures
4-1. Core Classes
4-2. Instance Classes
4-3. Miscellaneous Classes
4-4. Animation Pipeline
4-5. The skinned Cally model
List of Examples
4-1. Warriors and Dragons
4-2. The waving Walker
4-3. The waving Limper
4-4. The legendary paladin goes shopping
5-1. Header-File Inclusion
5-2. Core Model Creation
5-3. Skeleton Data Loading
5-4. Animation Data Loading
5-5. Mesh Data Loading
5-6. Material Data Loading
5-7. Texture Loading
5-8. Material Thread/Set Setup
5-9. Core Model Destruction
5-10. Model Instance Creation
5-11. Mesh Attachment
5-12. Mesh Detachment
5-13. Level-of-Detail Control
5-14. Material Set Change
5-15. Cycle Animation Control
5-16. Action Animation Control
5-17. State Update
5-18. Model Rendering
5-19. Model Instance Destruction