Cal3d Architecture Analysis

Source: Internet
Author: User
Cal3d Architecture Analysis

4.1 Overview:

The basic idea in cal3d is to extract data that can be shared by multiple different objects from the data of a single object. There are many data that can be shared in skeleton animation, such as animation data and mesh data.

The cal3d library contains a series of core classes (also known as core models) that represent a type model, which stores shared data from all (other models. In addition, each series of instance models (instance classes, also known as models or instance models) are constructed from the core model, representing a specific instance in this model. (Their relationships can be compared to the relationships between classes and objects in C ++)

Example: Hero and Dragon

For example, we have a sci-fi game with heroic warriors and fatal dragons. In this way, we will have two different core models (core models), that is, the Warriors representing heroes and the dinosaurs. The core model that represents a warrior contains all the common data that a warrior may need, such as animation, material, and skin. The dinosaur is also the core model. Now, as long as a warrior or dragon is born, a new model instance will be created based on the core model. The external performance of a single instance is displayed by selecting a specific skin and material from the core model. This allows us to have an epic battle of many different warriors and dragons. Even so, most of the data we store is only one copy.

4.1.1 core classes are the same as described above. For a type model (dragon or warrior), a series of core classes contain the data required by all instances, the data can be divided into four parts. 1. inheritance structure (skeleton and skeleton) 2. motion data (animation, motion track, key frame) 3. skin properties (material) 4. body attributes (skin)


4.1.2 instance class)

Each group of instance classes contains the specific data of an instance of the model type. The data can be divided into three parts.

1. The current skeleton status.

2. Some column animations of the current activity

3. Some objects attached to the body (skin ).



There are four helper classes to simplify model processing

1. Motion Control (managed by mixer)

2. The skinning stage (physique ).
3. Clothes animation layer spring-system (in implementation stage)


4.1.3 Miscellaneous

The remaining classes can be divided into four groups.

1. Vectors and Quaternions)

2. Error Handling)

3. encapsulated platform-related code

4. auxiliary classes for loading and saving



4.1.4 animation Pipeline

The process of calculating the final model data from the core data and the current instance status must be considered as a single pipeline.

1. In "mixer", compare all the activated animations to obtain the current skeleton posture.

2. Compare all activated shape targets in morpher to obtain the current skin (planned)

3. deformation of the current skin according to the current skeleton posture in the shape.

4. Simulate the model clothes in "sping-system.

5. query final data for rendering




Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.