“Unity3D导入3DMax制作的模型存在100倍缩放比例”,各Unity3D开发者基本都听过吧。

  1. 怎么保证3DMax中制作的1m导入Unity3D后还是1m?
  2. 为什么会存在100倍缩放问题?

怎么保证3DMax中制作的1m导入Unity3D后还是1m?

3DMax单位设置

英文版

中文版

按如上单位设置后,每个格子是0.1m的大小。要制作一个1m的模型得占10个格子,如下为一个边长1m的盒子:

通过以上设置后,3DMax里制作的1m导入Unity3D也是1m,继续分析原因

为什么会存在100倍缩放问题?

解释这个问题前,先明白几个概念

3DMax“显示单位”和“系统单位”有什么关系

显示单位:决定3DMax主面板显示时使用的尺寸单位,下面是分别设置为“厘米”和“米”时的情况


数值暂不用关心,看数值后面的单位cm和m,这就是显示单位的设置

系统单位:与“显示单位”一起决定,最终存储时记录的单位值(暂且叫“存储单位”吧)。
存储单位=显示单位/系统单位
做个1m的box:显示单位设置为1m时,系统单位为1m 存储单位为1,系统单位为1cm 存储单位为100
做个1cm的box:显示单位设置为1cm时,系统单位为1cm 存储单位为1,系统单位为0.1mm 存储单位为100
做个1m的box:显示单位设置为1cm时,系统单位为1cm 存储单位为100,系统单位为0.1mm 存储单位为10000

“显示单位”和“系统单位”对Unity3D的导入有何影响?

上面所说“存储单位”最终会记录到模型文件,Unity3D导入时将按“1存储单位=1m”的比例显示模型,举两组数据:

显示单位1m,系统单位1m,存储单位1,Unity3D中显示0.01m
显示单位1m,系统单位1cm,存储单位100,Unity3D中显示1m

不是说“1存储单位=1m”吗,怎么缩小了100倍?
看下Unity3D导入模型的默认设置

缩放因子为0.01,导入Unity3D的模型默认情况下会被缩小100倍。
要使3DMax导出的模型在导入Unity3D时默认1m=1m,关键得让模型中记录的“存储单位”=100。
比如这几种方式都能得到存储单位为100的模型:

  1. 显示单位1m,系统单位1cm,制作一个1m的模型
  2. 显示单位1cm,系统单位0.1mm,制作一个1cm的模型
  3. 显示单位1cm,系统单位1cm,制作一个1m的模型

只要符合以下公式(模型尺寸/显示单位)*(显示单位/系统单位)=100,化简一下为 模型尺寸/系统单位=100
但要达到“3DMax中创建一个1m的模型导入Unity3D也是1m”的要求,那么模型尺寸=1m 已经固定,代入公式得 系统单位=1cm。所以3DMax里系统单位要设置为cm,显示单位怎么设置都无所谓。

结论

要保证“3DMax中创建一个1m的模型导入Unity3D也是1m”,只需要把3DMax中系统单位设置为cm

PS

真不明白为什么Unity3D要把模型导入默认缩放因子设置为0.01。
不过有以上公式这些都不是问题,如果Scale Factor = 1只需要保证模型记录的存储单位为1,即“模型尺寸/系统单位=1”->“1m/系统单位=1”->系统单位=m

敲了这么多感觉有点啰嗦,如果感觉不明白,欢迎回复讨论^_^

转载请注明:兜里-Unity3D导入3DMax模型缩放单位问题深入分析

Unity3D导入3DMax模型缩放单位问题深入分析的更多相关文章

  1. Unity3d导入3dmax后model 的缩放为0.0254的原因以及解决办法

    http://blog.csdn.net/pdw_jsp/article/details/51259493 这个问题其实已经早都出现过了,今天我们这边也碰到了,这里做个记录吧 导致的问题~ 场景的比例 ...

  2. Unity3D导入MAX文件的一些问题(zz)

    1.轴向偏转 MAX模型导入Unity3D后,X轴会自动偏转-90度.是因为Unity3D采用的是左手坐标系,而3DMax采用的是右手坐标系.无奈啊,这是很多游戏引擎跟Max结合后都会产生的问题.兼容 ...

  3. Unity 3d导入3dMax模型 产生若干问题

    Unity 3d导入3dMax模型 会产生若干问题,按照官方 的说明,将max 模型导成fbx文件 导入untiy似乎也不能解决 1.x轴向偏转3dmax模型导入后自动有一个x轴270度的偏转,巧合的 ...

  4. Unity3d导入工程出现错误“Creating unique file”的解决方法

    Unity3d导入工程出现错误“Creating unique file:creating file Temp/tempFile failed.Please ensure there is enoug ...

  5. Unity3D 导入Xcode 工程后。编译很慢

    Unity3D 导入Xcode 工程后.编译很慢 选择Targets-->Build options -->debug information format  然后选择DWARF 这样再次 ...

  6. Windows下Qt开发环境:OpenGL导入3DMax模型(.3DS)

    参考:http://blog.csdn.net/cq361106306/article/details/41876541 效果: 源代码: 解释: CLoad3DS.h为加载3DMax模型的头文件,C ...

  7. Unity3d 导入图像尺寸失真解决方案

    导入到unity3d内的图像被默认长宽变换为满足2^n关系. 例如以下图,我有张图片名称为984plus598表示我尺寸为984*598.拷贝到unity3d中后的大小为1024*512 方法一: 在 ...

  8. Unity3D 导入贴图、模型等资源文件时自动设置参数

    脚本继承至AssetPostprocessor, 存放在Editor目录下! using UnityEngine; using System.Collections; using UnityEdito ...

  9. Unity3D 导入aar注意事项

    导出供Unity使用的*.aar文件 1)点击“Build -> Build APK”,生成aar文件 2)由于Unity在打包APK时会自动包含自身的classes.jar,所以需使用压缩软件 ...

随机推荐

  1. java 轨迹栈

    printStackTrace()方法所提供的信息可以通过getStackTrace()方法直接访问. getStackTrace()方法返回一个由根轨迹中的元素所构成的数组,每一个元素都表示栈中的一 ...

  2. 欢迎来到abc2237512422的博客

    这是第一篇博文. 本博客已迁移到 abc233.site

  3. Java编程的逻辑 (35) - 泛型 (上) - 基本概念和原理

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  4. PhoneGap学习地址 / PhoneGap API介绍:Events

    http://blog.csdn.net/phonegapcn 事件类型: backbutton deviceready menubutton pause resume searchbutton on ...

  5. 013 jquery中关于表格行的增删问题

    1.程序 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  6. 高能天气——团队Scrum冲刺阶段-Day 4

    高能天气--团队Scrum冲刺阶段-Day 4 今日完成任务 于欣月:基本实现课程表功能:每一个设置课程表的地方设置一个EditText和一个TextView,根据我们学校的课程情况设置了25个Edi ...

  7. 013.Zabbix的Items(监控项)

    一 Items简介 Items是从主机里面获取的所有数据,可以配置获取监控数据的方式.取值的数据类型.获取数值的间隔.历史数据保存时间.趋势数据保存时间.监控key的分组等. 通常情况下item由ke ...

  8. js数组去重与性能分析(时间复杂度很重要)

    随着js的深入和实际项目对性能的要求,算法的简单实现已经不能满足需要,在不同的应用场景下,时间复杂度很重要. 首先是创建数组与性能处理函数: // 保证时间差的明显程度,创建不同量级的数组,size为 ...

  9. rabbitmq学习(一) —— 安装篇

    安装篇之windows: 略(楼主在windows上安装基本就是按部就班的没遇到什么坑) 安装篇值centos7: 主要记录下centos7下的安装,因为在该系统下安装稍微折腾了下 参考https:/ ...

  10. Python学习——set集合的补充

    set 是一个无序且不重复的元素集合>>> num = {1,2,3,4,5} 1.add()添加一个元素 >>> num.add(6) >>> ...