zoukankan      html  css  js  c++  java
  • Skeletal Animation

    [Skeletal Animation]

      Skeletal animation is the use of “bones” to animate a model. The movement of bones themselves can cause changes to other bones.

      

    Advantages:

       1, It's very important to the pro-grammers, is that such animations take up less storage space. Instead of storing a new set of vertices for each frame, all that needs to be stored is the rotation and translation of the bone. 

       2. A good skeletal animation system will cut the time the artists need to animate their models.

       3. it is possible to reposition them in real-time if you want, allowing needed animations to be created during runtime.

    [Inner Workings of Skeletal Animation]

     1. when you move a bone “farther up” in your arm, everything below it moves as well. This is one of the most basic concepts of skeletal animation.

     2. The root joint is the ultimate joint in the model. Every other joint eventually finds its way back to this one joint. Any operations done on the root joint, whether they be translation or rotation, affect every vertex in the model. You can think of the root joint as the joint that controls all other joints.

       

     3.  A joint can have parent and child joints. The parent of a joint affects everything it does. The parent’s rotations and translations are all taken into account when computing the current joint’s new position.

     4. Instead of each keyframe containing its own copy of the vertices, a skeletal animation keyframe or boneframe contains a transformation, both rotation and translation, generally in the form of an X,Y,Z value for translation, and three values containing rotation around the X,Y, and Z axes, respectively.

     5. Relative Matrix & Absolute Matrix

    [Attaching the Mesh]

     1. Each mesh vertex stores an index into the joint array to signify that it is attached to a certain bone.

        

      Each model contains just one set of texture coordinates and triangle information. Just because the positions of the vertices change does not mean the triangle indexes and texture coordinates have to. This means you don’t have to worry about them once you set them up.

      Normals are another story. Because the orientation of the polygons and vertices change, so will the normals. If you are using just face normals, you need to recalculate them manually every frame before sending them to the renderer. However, if you calculated vertex normals at the beginning, you are in luck. Vertex normals do not have to be completely recalculated after transformation. They can be transformed by the same matrix as the vertices were. The only difference here is that you do not take in account translation.

  • 相关阅读:
    IO 单个文件的多线程拷贝
    day30 进程 同步 异步 阻塞 非阻塞 并发 并行 创建进程 守护进程 僵尸进程与孤儿进程 互斥锁
    day31 进程间通讯,线程
    d29天 上传电影练习 UDP使用 ScketServer模块
    d28 scoket套接字 struct模块
    d27网络编程
    d24 反射,元类
    d23 多态,oop中常用的内置函数 类中常用内置函数
    d22 封装 property装饰器 接口 抽象类 鸭子类型
    d21天 继承
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3557568.html
Copyright © 2011-2022 走看看