假设在3dmax中创建一个 长x宽x高=1cm x 1cm x 1cm 的单位立方体,则默认局部坐标系原点在底面中心,进入 “层次”面板->轴->调整轴,按下“仅影响轴”,再点“居中到对象”,可以将局部坐标系原点对齐到立方体中心,不过当我们将立方体导出为fbx,并通过fbx sdk从中提取出顶点数据查看会发现局部空间顶点坐标并不是关于(0,0,0)对称分布的,即局部坐标原点并不是在立方体中心,而是仍然跟未调整轴之前一样,局部坐标原点在立方体底面中心。经进一步实验证实,调整轴并不会影响物体顶点的局部空间坐标,所以无论怎么调整,立方体的局部空间原点都是位于底面中心。

那么如何得到一个局部空间原点在中心的单位立方体呢?

可以通过移动顶点实现,方法如下:

1,创建 1cm x 1cm x 1cm 的单位立方体(此时局部坐标系原点在底面中心),并将其世界坐标设为(0,0,0)(此时底面中心与世界原点对齐)。

2,将上面立方体转化成可编辑多边形,然后进入顶点层级,选中所有顶点向下移动0.5cm。

此时若再将立方体导出为fbx并从中提取顶点数据,就会发现其顶点的局部空间坐标是关于(0,0,0)对称分布的了,即局部空间原点真的是在立方体中心了。

应用场景:

有时候我们在3dmax里摆放一些box用于标记位置,以便导入到程序中在这些位置生成Boss。如果我们摆box的时候按box中心为目标位置,但实际box的局部空间原点却不在box中,那么我们在程序中用box mesh的position作为解析出的boss位置,实际上是不正确的。所以我们需要在3dmax中使用局部空间原点真正在其中心的box。

补充(2015-4-10):

为了查看物体的真正局部坐标原点位置,可以选中物体然后进入 “层次”面板->轴->调整轴,按下“重置轴”(这样就可以排除掉“调整轴”的影响了),并且将“参考坐标系”选“局部”,这时视图中显示的坐标系的原点即为物体当前的真正局部坐标原点。

3dmax 物体的真正局部空间原点的更多相关文章

  1. cocos2dx 3.3将坐标由父空间转化到局部空间

    设在node的父空间内有一点p,要求其转化到node局部空间后的坐标p_local,代码如下: node->getNodeToParentTransform();//in order node- ...

  2. unity, 相机空间 与 相机gameObject的局部空间

    在unity里 相机空间 与 相机gameObject的局部空间 不重合. Camera.worldToCameraMatrix的文档中有这样一句话: Note that camera space m ...

  3. WebGL编程指南理论分析之物体层次模型(局部运动)

    书中340页,开始讲到层次模型(关节模型),也就是整个物体,可以自由控制其各部位单独运动,就像关节一样,互不干扰或者有一定关联. 就像图中,左右键控制整个物体(arm1和arm2)的Y轴旋转,上下键控 ...

  4. 3DMax 物体选择方法

    全选: Ctrl + A, 取消选择:Ctrl +D 加选:ctrl+鼠标左键:减选:alt+鼠标 窗口与交叉:下面红框内的右边的按钮, 是切换两种模式: 选择模式一:只要选框碰到物体边缘, 就可选中 ...

  5. Direct3D11学习:(六)渲染管线

    转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 这篇文章主要讲解渲染管线(rendering pipeline)的理论知识. 渲染管线是指:在给定一个3D场景的 ...

  6. DirectX12 3D 游戏开发与实战第五章内容

    渲染流水线 学习目标: 了解用于在2D图像中表现出场景立体感和空间深度感等真实效果的关键因素 探索如何用Direct3D表示3D对象 学习如何建立虚拟摄像机 理解渲染流水线,根据给定的3D场景的几何描 ...

  7. cocos2d-x,求世界坐标

    老版: http://user.qzone.qq.com/350479720/blog/1384483239 一,求node的世界坐标.因为node的contentSize为0,局部坐标原点与node ...

  8. python27期day10:函数的动态参数、函数的注释、函数的名称空间、函数的嵌套、global(修改全局的)、nonlocal(修改局部的)、函数名的第一类对象及使用、作业题。

    1.动态参数的作用: 能够接收不固定长度参数 位置参数过多时可以使用动态参数 * args是程序员之间约定俗称(可以更换但是不建议更换) * args获取的是一个元组 ** kwargs获取的是一个字 ...

  9. DirectX 11---从空间变换来看3D场景如何转化到2D屏幕

    DirectX 11---从空间变换来看3D场景如何转化到2D屏幕 在看<Introduction to 3D Game Programming with DirectX 11>的时候,发 ...

随机推荐

  1. 用vs2013开发node.js的addon.

        下载node.js的源代码. https://github.com/joyent/node 如果用svn下载,后面加上/trunk,以免把用不着的branches也下载下来,浪费时间. 安装V ...

  2. [Node.js]23. Level 4: Semantic versioning

    Update the versions on your dependencies to be a little more flexible, adding the ~ in front of your ...

  3. C#.NET常见问题(FAQ)-如何将cs文件编译成dll文件 exe文件 如何调用dll文件

    比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...

  4. Grails开发环境的高速搭建

    Grails开发环境的高速搭建 1 JAVA环境变量的设置和Grails设置环境变量 个人參考 JAVA_HOME =E:\kaifa\Java\jdk7_32 GRAILS_HOME =E:\kai ...

  5. WebService 与 Socket 区别

    一.WebService 1.什么是WebService Web Service(WEB服务)能够快捷和方便地综合结合各种系统.商务和任何应用平台.利用最新的Web Service 标准能够使任何软件 ...

  6. itext Protecting your PDF

    /* * This class is part of the book "iText in Action - 2nd Edition" * written by Bruno Low ...

  7. js 数组清空 方法 汇总

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. JVM中类的卸载机制

    类的生命周期 当Sample类被载入.连接和初始化后,它的生命周期就開始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就会结束生命周期.Sample类在方法区内的数 ...

  9. json(JavaScript Object Natation)学习

    Json必需的包: commons-httpclient-3.1.jar commons-lang-2.4.jar commons-logging-1.1.1.jar json-lib-2.2.3-j ...

  10. ORA-27090 故障一例

    近期的alert日志中碰到了ORA-27090的错误信息.其错误提示为Unable to reserve kernel resources for asynchronous disk I/O.依据这个 ...