3dmax导出unity什么格式到unity里才能带颜色

Unity3D导入3DMax模型缩放单位问题深入分析 - 兜里
作者:切梦刀
热度:14359℃
“Unity3D导入3DMax制作的模型存在100倍缩放比例”,各Unity3D开发者基本都听过吧。
怎么保证3DMax中制作的1m导入Unity3D后还是1m?
为什么会存在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的模型:
显示单位1m,系统单位1cm,制作一个1m的模型
显示单位1cm,系统单位0.1mm,制作一个1cm的模型
显示单位1cm,系统单位1cm,制作一个1m的模型
只要符合以下公式(模型尺寸/显示单位)*(显示单位/系统单位)=100,化简一下为 模型尺寸/系统单位=100
但要达到“3DMax中创建一个1m的模型导入Unity3D也是1m”的要求,那么模型尺寸=1m 已经固定,代入公式得 系统单位=1cm。所以3DMax里系统单位要设置为cm,显示单位怎么设置都无所谓。
要保证“3DMax中创建一个1m的模型导入Unity3D也是1m”,只需要把3DMax中系统单位设置为cm
真不明白为什么Unity3D要把模型导入默认缩放因子设置为0.01。
不过有以上公式这些都不是问题,如果Scale Factor = 1只需要保证模型记录的存储单位为1,即“模型尺寸/系统单位=1”->“1m/系统单位=1”->系统单位=m
敲了这么多感觉有点啰嗦,如果感觉不明白,欢迎回复讨论^_^
转载请注明:
添加新评论
:变成什么?
:去掉BOM头变成,咋让他不变
:可以不断
:安装的时候需要断网吗?
:Unity3D 5.x之前的确有很多“不方便”之处,比如单位、Asse...
:刚好用到^_^
Thank you very much.
:其实unity中没有所谓的单位,也没有显示单位名称,所以,如果把里面的...
:补丁可以使用,感谢分享。二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
我是阿赵,请多多指教!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
然后使用3dmax自带的光线追踪渲染一下,会出现这样的效果:
很明显的,光线追踪之后的渲染效果比没有光线追踪时立体感强了很多。这是因为高级渲染器模拟了真实环境里面光线的各种反射和散射,使物体看起来接近真实的效果。
我们所要做的烘焙,其实就是把这种经过高级渲染器计算的光影效果,记录在贴图上面。
我对上面的几个物体展了UV,并使用3dmax的烘焙功能,烘焙出相应的贴图。并把这个带着UV信息的模型导出为FBX,放进Unity里面。
在unity里面,我拉出了两个模型,一个按照原来的颜色直接给予他材质,另外一个把3dmax里面烘焙的贴图贴上了模型,会出现上图的情况。场景里面也没有打灯光,假如是只有颜色的材质时,模型会没有任何的轮廓和立体感。而贴上了烘焙贴图的模型,看起来会和在3dmax里面使用光线追踪时渲染的效果差不多。
接下来我们对只有颜色的这个模型进行LightMapping烘焙处理。选择该模型,然后在Static里面选择Lightmap Static。
在菜单栏的Window——&lightMapping打开lightMapping面板,在bake栏里面设置一下烘焙的参数,我这里用了如下参数:
设置好之后,就可以烘焙了,在烘焙之前先保存场景,然后点击Bake Scene按钮。
经过漫长的等待(等待的时间取决于你的模型的复杂程度),烘焙结束,生成了贴图,我们可以在maps里面查看:
&这时候,我们可以进行一个小对比了:
&同样是场景里面没有灯光,但不论是经过Lightmapping烘焙的模型,还是在3DMax里面烘焙贴图的模型,都有了较为真实的光影效果。
&&&&& 既然两者都能达到差不多的效果,那么究竟他们之间有什么差别呢?
3dmax烘焙:
1、可以使用各种高级渲染器对模型进行烘焙,比如Vray。
2、可以烘焙像反射这样的效果。
3、因为光影是固定了,所以在引擎里面只能按照在3DMax里面的摆放,不然就会穿帮。所以模型贴图不能在各个不同场景通用。
unity的LightMapping烘焙:
1、设置的参数相对没有3DMax里面高级渲染器丰富。
2、只能烘焙光影的追踪效果,不能烘焙反射。
3、可以一个模型放在不同场景单独烘焙,模型可以通用。&
4、由于每个场景需要烘焙一组贴图,所以如果场景多了,也会增加贴图数量。
至于两者之间的具体效果对比,这要根据烘焙时的具体参数来看。
这里注意的一点是,无论哪种烘焙,你都需要对模型进行展UV操作,假如UV没有展,或者UV的范围超出了0-1的框,烘焙都是会出错的。
阅读(12952)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'unity自带LightMapping和3Ds Max烘焙贴图的小对比',
blogAbstract:'&&&&&&& 对于做虚拟现实的朋友来说,烘焙贴图应该不是一个陌生的东西。想要在有限性能的电脑上面即时运算较好的光影效果,一般都会采用烘焙贴图的方法。而除了在3dmax里面烘焙贴图之外,Unity3D也自带了LightMapping烘焙贴图的功能。下面我们来做一个小例子,对两者的意义和效果做一个小对比。
在3dmax里面,我简单的建立了几个模型,并分别赋予他们不同的颜色:
然后使用3dmax自带的光线追踪渲染一下,会出现这样的效果:
blogTag:'unity,lightmapping,烘焙,贴图,阿赵',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:8,
publishTime:6,
permalink:'blog/static/',
commentCount:21,
mainCommentCount:4,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'我是阿赵,请多多指教!',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!}

我要回帖

更多关于 3dmax导出unity 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信