我在大二才接触到CS。当时的我不知道计算机图形学,更不知道OPENGL。玩CS,我太差,我更注意CS的开发,VALVE公司。毕业,工作,......直到今天,我才知道CS的模型,即骨骼动画模型MDL。而且OPENGL的课件,已经封装得很好。
CS的模型基本都是mdl。所在路径为cstrike/models文件夹。例如匪的人物模型terror.mdl,AK47的模型p_ak47.mdl。
MDL模型的接口类class TMDLModel
class TMDLModel
{
...
//提供的接口函数
//初始化模型 入参 文件路径
void Init(char *Filename); //
//绘制模型
void DrawModel(); //
//刷新帧 入参 时间间隔
void AdvanceFrame(float Time); //
//设置动作序列
long SetSequence(long Sequence);//
...
}
类TMDLModel只是单个MDL模型。实际应用中,作者建了一个新类mdlobj,处理多个模型。
//全局变量 数组,存放两个模型
TMDLModel MdlModel[2];
class mdlobj
{
public:
//统计动画播放帧数
unsigned int Animation;
//初始化模型 入参 数组下标 模型文件路径
int InitGL(int a,char* na);
//绘制指定模型 入参 坐标 模型数组下标 缩放倍数 水平角 仰角
void DrawModels(float x,float y,float z,int a,float size,float rz,f