资源简介
Opengl写的3d人物模型,可以走,旋转。添加纹理等一些操作!!下载即可运行。。。。
代码片段和文件信息
#include
#include
#include “MathLib.h“
BOOL VectorCompare(vec3_t Vector1 vec3_t Vector2)
{
for (DWORD Loop = 0; Loop <3; Loop++)
{
if (fabs(Vector1[Loop] - Vector2[Loop]) > EPSILON)
{
return FALSE;
}
}
return TRUE;
}
void CrossProduct(vec3_t Vector1 vec3_t Vector2 vec3_t Cross)
{
Cross[0] = Vector1[1] * Vector2[2] - Vector1[2] * Vector2[1];
Cross[1] = Vector1[2] * Vector2[0] - Vector1[0] * Vector2[2];
Cross[2] = Vector1[0] * Vector2[1] - Vector1[1] * Vector2[0];
}
void R_ConcatTransforms(const float In1[3][4] const float In2[3][4] float Out[3][4])
{
Out[0][0] = In1[0][0] * In2[0][0] + In1[0][1] * In2[1][0] + In1[0][2] * In2[2][0];
Out[0][1] = In1[0][0] * In2[0][1] + In1[0][1] * In2[1][1] + In1[0][2] * In2[2][1];
Out[0][2] = In1[0][0] * In2[0][2] + In1[0][1] * In2[1][2] + In1[0][2] * In2[2][2];
Out[0][3] = In1[0][0] * In2[0][3] + In1[0][1] * In2[1][3] + In1[0][2] * In2[2][3] + In1[0][3];
Out[1][0] = In1[1][0] * In2[0][0] + In1[1][1] * In2[1][0] + In1[1][2] * In2[2][0];
Out[1][1] = In1[1][0] * In2[0][1] + In1[1][1] * In2[1][1] + In1[1][2] * In2[2][1];
Out[1][2] = In1[1][0] * In2[0][2] + In1[1][1] * In2[1][2] + In1[1][2] * In2[2][2];
Out[1][3] = In1[1][0] * In2[0][3] + In1[1][1] * In2[1][3] + In1[1][2] * In2[2][3] + In1[1][3];
Out[2][0] = In1[2][0] * In2[0][0] + In1[2][1] * In2[1][0] + In1[2][2] * In2[2][0];
Out[2][1] = In1[2][0] * In2[0][1] + In1[2][1] * In2[1][1] + In1[2][2] * In2[2][1];
Out[2][2] = In1[2][0] * In2[0][2] + In1[2][1] * In2[1][2] + In1[2][2] * In2[2][2];
Out[2][3] = In1[2][0] * In2[0][3] + In1[2][1] * In2[1][3] + In1[2][2] * In2[2][3] + In1[2][3];
}
// rotate by the inverse of the matrix
void VectorIRotate(const vec3_t In1 const float In2[3][4] vec3_t Out)
{
Out[0] = In1[0] * In2[0][0] + In1[1] * In2[1][0] + In1[2] * In2[2][0];
Out[1] = In1[0] * In2[0][1] + In1[1] * In2[1][1] + In1[2] * In2[2][1];
Out[2] = In1[0] * In2[0][2] + In1[1] * In2[1][2] + In1[2] * In2[2][2];
}
void VectorTransform(const vec3_t In1 const float In2[3][4] vec3_t Out)
{
Out[0] = DotProduct(In1 In2[0]) + In2[0][3];
Out[1] = DotProduct(In1 In2[1]) + In2[1][3];
Out[2] = DotProduct(In1 In2[2]) + In2[2][3];
}
void AngleQuaternion(const vec3_t Angles vec4_t Quaternion)
{
float Angle = Angles[0] * 0.5f;
float Sin0 = (float)sin(Angle);
float Cos0 = (float)cos(Angle);
Angle = Angles[1] * 0.5f;
float Sin1 = (float)sin(Angle);
float Cos1 = (float)cos(Angle);
Angle = Angles[2] * 0.5f;
float Sin2 = (float)sin(Angle);
float Cos2 = (float)cos(Angle);
Quaternion[0] = Sin0 * Cos1 * Cos2 - Cos0 * Sin1 * Sin2;
Quaternion[1] = Cos0 * Sin1 * Cos2 + Sin0 * Cos1 * Sin2;
Quaternion[2] = Cos0 * Cos1 * Sin2 - Sin0 * Sin1 * Cos2;
Quaternion[3] = Cos0 * Cos1 * Cos2 + Sin0 * Sin1 * Sin2;
}
void QuaternionMatrix(const vec4_t Quaternion float (*Matrix)[4])
{
Matrix[0][0] = 1.0f - 2.0f * Quaternion[1] * Quaternion[1]
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 139936 2004-08-20 15:35 MdlModel\Data\hassassin.mdl
文件 137148 2004-08-20 15:35 MdlModel\Data\hassassinT.mdl
文件 72760 2004-12-01 18:37 MdlModel\Data\Irys.mdl
文件 263240 2004-12-01 18:37 MdlModel\Data\IrysT.mdl
目录 0 2006-10-17 21:17 MdlModel\Data
目录 0 2006-10-17 21:17 MdlModel\Debug
文件 5192 2003-03-16 11:13 MdlModel\MathLib.cpp
文件 840 2003-03-16 11:12 MdlModel\MathLib.h
文件 22140 2004-12-01 19:34 MdlModel\Mdl.cpp
文件 4757 2003-03-16 00:18 MdlModel\MDLFormat.h
文件 23675 2003-03-16 11:18 MdlModel\MDLModel.cpp
文件 4316 2004-12-01 19:30 MdlModel\MdlModel.dsp
文件 541 2004-12-01 19:10 MdlModel\MdlModel.dsw
文件 221260 2004-12-01 19:34 MdlModel\MdlModel.exe
文件 2088 2003-03-16 11:12 MdlModel\MDLModel.h
文件 58368 2006-05-12 16:12 MdlModel\MdlModel.ncb
文件 48640 2006-05-12 16:12 MdlModel\MdlModel.opt
文件 1155 2004-12-01 19:34 MdlModel\MdlModel.plg
文件 905 2005-01-30 11:46 MdlModel\MdlModel.sln
..A..H. 9728 2005-01-30 11:59 MdlModel\MdlModel.suo
文件 5690 2005-01-30 11:46 MdlModel\MdlModel.vcproj
目录 0 2006-10-17 21:17 MdlModel
----------- --------- ---------- ----- ----
1022597 23
- 上一篇:多电机同步模型.zip
- 下一篇:cacti华为93CPU 温度 内存模板
评论
共有 条评论