| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1758 人关注过本帖
标题:请问大家谁有读取MilkShape3D骨骼动画的代码?
取消只看楼主 加入收藏
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
结帖率:100%
收藏
 问题点数:0 回复次数:8 
请问大家谁有读取MilkShape3D骨骼动画的代码?

请问大家谁有读取MilkShape3D骨骼动画的代码?
最好是OpenGL的

我这里有个Delphi的代码,看不懂谁能帮我翻译下?
感激不尽!!

uVGnmyaI.zip (473.92 KB) 请问大家谁有读取MilkShape3D骨骼动画的代码?


搜索更多相关主题的帖子: 骨骼动画 代码 Delphi OpenGL 
2007-10-28 11:32
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 

编译出错:
--------------------Configuration: MeshConv - Win32 Release--------------------
Compiling resources...
Compiling...
WinMain.cpp
Linking...
WinMain.obj : error LNK2001: unresolved external symbol _D3DXMatrixMultiply@12
WinMain.obj : error LNK2001: unresolved external symbol _D3DXMatrixTranslation@16
WinMain.obj : error LNK2001: unresolved external symbol _D3DXMatrixInverse@12
WinMain.obj : error LNK2001: unresolved external symbol _D3DXMatrixRotationZ@8
WinMain.obj : error LNK2001: unresolved external symbol _D3DXMatrixRotationY@8
WinMain.obj : error LNK2001: unresolved external symbol _D3DXMatrixRotationX@8
Release/MeshConv.exe : fatal error LNK1120: 6 unresolved externals
执行 link.exe 时出错.

MeshConv.exe - 1 error(s), 0 warning(s)


天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-10-28 19:43
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
而且只能转换格式,又不能播放ms3d动画

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-10-29 17:00
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
主要是怎么根据数据旋转、平移?给我1个旋转的代码!!

[此贴子已经被作者于2007-10-31 17:56:13编辑过]



天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-10-31 17:01
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 

我自己写了个3D顶点旋转的代码,但是旋转后模型会变形啊??

void C3DEng::Rotate(float p0[],float p1[],float angle,float p[])
{
float lx=p0[0]-p1[0];
float ly=p0[1]-p1[1];
float r=sqrt(lx*lx+ly*ly);
float a=asin(lx/r);
float xoff=sin(a+angle)*r;
float yoff=cos(a+angle)*r;

p[0]=(p0[0]-xoff);
p[1]=(p0[1]-yoff);
}

void C3DEng::Rotate3D(float p0[],float p1[],float angle[],float p[])
{
float tmp_p1[3];
tmp_p1[0]=p1[0];
tmp_p1[1]=p1[1];
tmp_p1[2]=p1[2];
float t_p0[2],t_p1[2],t_ret[2];

t_p0[0]=p0[0];
t_p0[1]=p0[1];
t_p1[0]=tmp_p1[0];
t_p1[1]=tmp_p1[1];
Rotate(t_p0,t_p1,angle[0],t_ret);
tmp_p1[0]=t_ret[0];
tmp_p1[1]=t_ret[1];

t_p0[0]=p0[1];
t_p0[1]=p0[2];
t_p1[0]=tmp_p1[1];
t_p1[1]=tmp_p1[2];
Rotate(t_p0,t_p1,angle[1],t_ret);
tmp_p1[1]=t_ret[0];
tmp_p1[2]=t_ret[1];

t_p0[0]=p0[0];
t_p0[1]=p0[2];
t_p1[0]=tmp_p1[0];
t_p1[1]=tmp_p1[2];
Rotate(t_p0,t_p1,angle[2],t_ret);
tmp_p1[0]=t_ret[0];
tmp_p1[2]=t_ret[1];

p[0]=tmp_p1[0];
p[1]=tmp_p1[1];
p[2]=tmp_p1[2];
}


天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-11-01 13:03
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
glRotate只能改变整体坐标结构,又不能旋转单一顶点坐标,我想要可以根据一个圆心旋转ax,ay,az度的函数
要用sin,cos等三角函数计算的

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-11-01 17:02
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
你说的都是理论,我还是不懂。代码可以说明一切

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-11-02 19:17
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
如果我要一个顶点(x0,y0,z0)以r为半径旋转(a1,a2,a3)度,那怎么做?
(我主要是想看这些参数放在那个函数里?又通过怎样的计算得到新的坐标(x1,y1,z1))

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-11-03 09:19
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
恩,受益匪浅!
但是我看人家的骨骼动画都是用了CVector和CMatrix等类来进行计算的,直接用glRotatef,glTranslatef未免太简单吧?

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-11-06 17:10
快速回复:请问大家谁有读取MilkShape3D骨骼动画的代码?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018454 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved