在看Cg教程中,看到关键桢插值来表示一个动画的物体,例如一个动物拥有站着,奔跑,下跪等动画序列,美工将这些特定的姿态称为一个关键桢。为什么要用关键桢这种来表示了,这个比较容易理解,我们知道我们看的一些卡通动画,都不是每桢来画的,都是准备一些关键的过渡动画,然后,美工人员在根据每二幅之间来补充一些中间的动画,以增加精细的效果。

  MD2模型文件就是存储一些关键桢的动画模型,格式还是很简单的,对比OBJ模型来说,更容易读取,分为几个主要部分,一部分是头文件,里面对相应的数据描述在那,如多个面,多少桢,从那读顶点,读桢都有说明,头文件后就是数据存放位置了。

  我们先来看下头文件的定义,有用的部分我做了注释。

 1 type Md2Header =
 2     struct
 3         val magic:           int         //MD2文件标示   
 4         val version:         int         //MD2版本
 5         val skinWidth:       int         //纹理宽度
 6         val skinHeight:      int         //纹理长度
 7         val frameSize:       int         //桢的大小
 8         val numSkins:        int         //
 9         val numVertices:     int         //多少个顶点(每桢数量相同,数据不同)
10         val numTexCoords:    int         //多少个纹理顶点(所有桢共用)
11         val numTriangles:    int         //每桢由多少个三角形组成,所有桢是一样的
12         val numGlCommands:   int         //用VBO直接放弃
13         val numFrames:       int         //多少桢
14         val offsetSkins:     int         //
15         val offsetTexCoords: int         //从那开始读纹理数据
16         val offsetTriangles: int         //从那开始读三角形
17         val offsetFrames:    int         //从那开始读桢数据
18         val offsetGlCommands:int         //无用
19         val offsetEnd:       int         //可以用来检查
20     end    
MD2 头部格式

相关文章:

  • 2021-06-05
  • 2021-07-28
  • 2022-03-05
  • 2022-12-23
  • 2021-10-16
  • 2021-09-01
  • 2022-12-23
猜你喜欢
  • 2021-11-21
  • 2022-01-22
  • 2021-11-07
  • 2021-10-21
  • 2021-10-18
  • 2021-11-07
  • 2021-11-26
相关资源
相似解决方案