游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4735|回复: 12

[请教]MAX脚本导出模型轴不正确?

[复制链接]

3

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
QQ
发表于 2006-11-21 22:41:00 | 显示全部楼层 |阅读模式
请教各位大虾一个问题:
我写了个3DSMAX脚本用来导出模型(轴放置在模型中心) 并且把Y和Z轴互换(使用的是local坐标)。导出后怎么感觉轴还在模型底部中心(茶壶底部中心)?

-- 导出脚本(3DSMax 9)
-- 导出顶点
for i=1 to obj.numverts do
(
        vp = (in coordsys local(meshOp.getVert obj i))
        WriteFloat fs vp.x;
        WriteFloat fs vp.z;
        WriteFloat fs vp.y;
)  
--导出索引
for i=1 to obj.numfaces do
(
        f = getFace obj i
        WriteLong fs (f.x - 1)
        WriteLong fs (f.y - 1)
        WriteLong fs (f.z - 1)
)

//绘制 - VS2005
void    Renderer_OpenGL:resent(void)
{
        ASSERT_FATAL(rc_ != null, "Invalid call.");
        ASSERT_FATAL(dc_ != null, "Invalid call.");

        static GLfloat angle = 0;

        angle += 0.2f;

        ::glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        ::glLoadIdentity();

        // draw here
        ::glTranslated(0, 0, -5);
        ::glColor3f(0, 0, 1);

        //画一个Y=0的平面
        ::glBegin(GL_TRIANGLES);

        ::glVertex3f(-10, 0, 10);
        ::glVertex3f(-10, 0, -10);
        ::glVertex3f(10, 0, -10);

        ::glVertex3f(10, 0, -10);
        ::glVertex3f(-10, 0, 10);
        ::glVertex3f(10, 0, 10);

        ::glEnd();

        ::glLoadIdentity();
        ::glTranslated(0, 0, -5);
        ::glScaled(0.1, 0.1, 0.1);
        ::glRotatef(angle, 0, 0, 1);

        m.Draw(); //渲染模型
        ::glFlush();
        ::SwapBuffers(dc_);
}

问题是在导出模型前我已经把轴放到模型中心啦~但是结果好像跟改变轴前一样 [em7] [em11]

3

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
QQ
 楼主| 发表于 2006-11-21 22:52:00 | 显示全部楼层

Re: [请教]MAX脚本导出模型轴不正确?

执行文件 模型文件 渲染代码(OpenGL) MAXScript代码 [em7]

sf_2006112122527.rar

120.78 KB, 下载次数:

3

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
QQ
 楼主| 发表于 2006-11-21 22:58:00 | 显示全部楼层

Re: [请教]MAX脚本导出模型轴不正确?

效果(正在绕Z轴旋转): [em11]
sf_2006112122589.gif

3

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
QQ
 楼主| 发表于 2006-11-22 00:01:00 | 显示全部楼层

Re: [请教]MAX脚本导出模型轴不正确?

再画个侏儒MM(绕Z轴旋转): [em4]
sf_200611220129.gif

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
发表于 2006-11-22 15:42:00 | 显示全部楼层

Re:[请教]MAX脚本导出模型轴不正确?

如果没猜错的话,你的模型应该也是镜像的。。。

应该是坐标系不同,一个是左手坐标系,一个是右手

3

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
QQ
 楼主| 发表于 2006-11-22 21:52:00 | 显示全部楼层

Re:[请教]MAX脚本导出模型轴不正确?

嗯...3DSMax的坐标是这样的(从前看):
z y
| /
|/____x
左手坐标系这样的(从前看):
y z
| /
|/____x
应该只要把z和y互换就可以吧?我用这种办法渲染出的模型没有问题,问题在于:导出后的模型的轴的位置好像与导出前不一样?导出前我把模型的轴对齐到模型中心了,但是导出后才发现模型的轴心还在模型底部中心?

3

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
QQ
 楼主| 发表于 2006-11-22 22:14:00 | 显示全部楼层

Re: [请教]MAX脚本导出模型轴不正确?

模型(已把轴心对齐到模型中心):
sf_20061122221424.gif

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2006-11-22 22:47:00 | 显示全部楼层

Re:[请教]MAX脚本导出模型轴不正确?

侏儒MM还带披风啊?面数还真不少。

3

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
QQ
 楼主| 发表于 2006-11-22 23:14:00 | 显示全部楼层

Re:[请教]MAX脚本导出模型轴不正确?

呵呵 用wowmodelview 把衣服穿上后导出的

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
发表于 2006-11-23 10:48:00 | 显示全部楼层

Re:[请教]MAX脚本导出模型轴不正确?

max里你的模型不就是站在0,0,0上么,dx里旋转也是基于这个点的旋转,是世界坐标系,而不是模型本身的坐标系
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 23:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表