3dmax 物体的真正局部空间原点
假设在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 物体的真正局部空间原点的更多相关文章
- cocos2dx 3.3将坐标由父空间转化到局部空间
设在node的父空间内有一点p,要求其转化到node局部空间后的坐标p_local,代码如下: node->getNodeToParentTransform();//in order node- ...
- unity, 相机空间 与 相机gameObject的局部空间
在unity里 相机空间 与 相机gameObject的局部空间 不重合. Camera.worldToCameraMatrix的文档中有这样一句话: Note that camera space m ...
- WebGL编程指南理论分析之物体层次模型(局部运动)
书中340页,开始讲到层次模型(关节模型),也就是整个物体,可以自由控制其各部位单独运动,就像关节一样,互不干扰或者有一定关联. 就像图中,左右键控制整个物体(arm1和arm2)的Y轴旋转,上下键控 ...
- 3DMax 物体选择方法
全选: Ctrl + A, 取消选择:Ctrl +D 加选:ctrl+鼠标左键:减选:alt+鼠标 窗口与交叉:下面红框内的右边的按钮, 是切换两种模式: 选择模式一:只要选框碰到物体边缘, 就可选中 ...
- Direct3D11学习:(六)渲染管线
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 这篇文章主要讲解渲染管线(rendering pipeline)的理论知识. 渲染管线是指:在给定一个3D场景的 ...
- DirectX12 3D 游戏开发与实战第五章内容
渲染流水线 学习目标: 了解用于在2D图像中表现出场景立体感和空间深度感等真实效果的关键因素 探索如何用Direct3D表示3D对象 学习如何建立虚拟摄像机 理解渲染流水线,根据给定的3D场景的几何描 ...
- cocos2d-x,求世界坐标
老版: http://user.qzone.qq.com/350479720/blog/1384483239 一,求node的世界坐标.因为node的contentSize为0,局部坐标原点与node ...
- python27期day10:函数的动态参数、函数的注释、函数的名称空间、函数的嵌套、global(修改全局的)、nonlocal(修改局部的)、函数名的第一类对象及使用、作业题。
1.动态参数的作用: 能够接收不固定长度参数 位置参数过多时可以使用动态参数 * args是程序员之间约定俗称(可以更换但是不建议更换) * args获取的是一个元组 ** kwargs获取的是一个字 ...
- DirectX 11---从空间变换来看3D场景如何转化到2D屏幕
DirectX 11---从空间变换来看3D场景如何转化到2D屏幕 在看<Introduction to 3D Game Programming with DirectX 11>的时候,发 ...
随机推荐
- COM结构化存储中存储对象或者流对象的命名规则
COM结构化存储中存储对象或者流对象的命名规则
- [Backbone] Parse not formatted JSON code
The good Dr. recently had another team implement the server and they slightly messed up the format o ...
- [Backbone]4. Model & View, toggle between Model and View. -- 1
如上图所示: Server有Data都交给Models处理, 然后由Models给Views Data,让View去告诉DOM如何显示, 然后DOM显示HTML; View events update ...
- (C语言)memcpy函数原型的实现
在网上看到一道题,实现一个memcpy函数,于是查了一下memcpy的函数原型,如下: void* memcpy(char *strDest, const char *strSrc, int Coun ...
- linux下线程调试 ulimit core
在linux 下写线程程序的同学预计都遇到过找bug找到崩溃的情况.多线程情况下bug的追踪实在是不easy. 如今我来介绍一个好用的方法 ulimit core. 先简介一下ulimit是个什么(你 ...
- GP开发示例:数据库去重
这个例子专业讲解基于ArcEngine使用GP开发的过程及遇到的问题.更多GP使用方法:GP使用心得 功能需求:现在外业第一次数据(简称调绘.mdb)和第二次数据(简称检查.mdb)有重复.第二次是在 ...
- Oracle体系结构二(学习笔记)
- 如何添加EXEStealth 2.5x 壳
http://tools.pediy.com/packers.htm 1 2 3 4 5 分步阅读 Exe加壳,避免被破解逆向.是开发的必备.. 工具/原料 EXEStealth 方法/步骤 查壳 ...
- Spring AOP深入理解之拦截器调用
Spring AOP深入理解之拦截器调用 Spring AOP代理对象生成回想 上一篇博客中:深入理解Spring AOP之二代理对象生成介绍了Spring代理对象是怎样生成的,当中重点介绍了JDK动 ...
- SSO是什么?
SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信仸的应用系统.它包括可以将这次主要的登录映射到其他应用中用亍同一个用户的登录的机制 ...