3dsmax中带Vray材质的3D模型的导入
相信做3D的人,不可能没听过3dsmax,至少你不是做美工的,也知道白富美的美工MM就是用这东西,给你这个Unity3D写程序的屌丝来输送这东西。其次,相信了解过3dsmax的人,不可能没听过Vray,许许多多的场景,只需要利用Vray就能收到很真实的光影效果。可惜的是,Vray是3dsmax一个插件,这个渲染器由于光影效果过于逼真,渲染一张图常常需要几秒~几分钟,而unity3d有自己的渲染器,作为游戏,它肯定要做到即时渲染,渲染速度还不能超过每一帧的时间。因为1秒播放24张静态画人就会是动态的事物,所以Unity3d基本要24s完成渲染,现在的玩家还越来越刁钻,觉得你60fps才行。
尽管Vray材质整出来的3D模型弄到Unity3D这个游戏引擎听起来有些缘木求鱼,但其实可以完成的。基本思想,是让Vray在3dsmax彻彻底底完成几分钟的渲染,渲染结果以贴图形式输出,再成为Unity3D的Texture。下面以一个从零开始的例子,说明如何用3dsmax和Vray完成一个紫砂壶,然后拉到Unity3D用。希望大家能够从这个例子,应用到自己的实际操作场景中。当然对于自己不感兴趣和不需要的部分请自行跳过,对于3dsmax紫砂壶建模不感兴趣,可以直奔“三、带Vray的材质的3D模型Unity3D”这个重点!!!不过我强烈推荐耐心从头到尾看完。这个东西,我又研究了快足足一个星期了!
一、3dsmax的紫砂壶的制作
1、这个实在简单,直接拖个teapot就行。
2、不过需要注意的事,你拖完这个teapot,需要将这个teapot的坐标摆到(0,0,0)这个位置。免得到时去到Unity3D麻烦。
3、同时将单位设置成厘米,或者毫米。免得默认的“英寸”还是“像素”和Unity3D不同步。
二、利用Vray制作紫砂材质
其实紫砂材质利用3dsmax默认的standard材质制作也行,但用Vray明显更加真实,何况很多3dsmax的书籍基本都是提倡用Vray调材质的。人家白富美美工MM管你Unity3d屌丝程序猿的死活,Unity3d就是可以用Vray材质的。自己想办法!
1、按M键打开材质编辑器,相当于一个调色板。选择VRayMtl材质。
*如果没有这个Vray标准材质的话,要么你的3dsmax没有Vray,要么没将Vray设置为3dsmax默认渲染器,如下图设置,再按下面的Save as Defaults,然后再重启下3dsmax应该有了:
2、之后在Maps处的漫反射Diffuse、反射Reflect和凹凸Bump处分别贴上衰减Falloffx2和噪波Noise,漫反射Diffuse的衰减Falloff的前/侧贴图的RGB分别是R11G6B7、R31G18B21。反射Reflect的衰减类型改为Fresnel,凹凸Bump的噪波Noise大小改为10.
3、然后再回到主界面,将高光光泽HGlossiness改成0.65,反光光泽RGlossiness改成0.5。
4、这样材质叫做调完。之后给teapot上一个UVW Map的编辑器。贴图类型为Box,然后点下Fit,但这个贴图立方体适应这个teapot模型。
5、最后将刚才调好的材质球拖给这个teapot,可以按下F9看下最终效果,当然你不看也行。这就叫做在3dsmax的紫砂壶建模完毕。
三、带Vray的材质的3D模型Unity3D
1、先给teapot上一个UVW展开,你会发现这展开,由于我们刚刚给这个模型上了个UVW Map立体Box贴图,其3D模型的布线和Unity3d的走线是一模一样的,然后我们将这个布线移到Unity3D才认的第2贴图通道,而不是3dsmax默认的1。
2、之后我们开始Vray贴图的烘焙。点选要渲染的teapot,点0打开烘焙贴图编辑器。设置好贴图输出路径、细分和贴图通道之后。
下面需要烘焙两张贴图,一张是漫反射贴图。一张是高光贴图,从而相得益彰地模拟出物体本身是啥样与物体给光照射是啥样。具体操作如下:
(1)漫反射贴图的烘培,如下图,这里一定要选VRayDiffuseFilterMap而不是默认的DiffuseMap,不要拿3dsmax默认的渲染器去渲染Vray否则3dsmax会跳出,亲测!之后注意,Unity3D只认256x256的贴图。调好大小就可以渲染了。
(2)高光贴图的烘培,基本和漫反射差不多,漫反射贴图烘焙完毕,先删去原来的任务,再添加一个VRayLightingMap渲染任务,这里唯一需要注意的是,是渲染VRayLightingMap而不是LightMap。同时看看默认配置时候是Save Source,调整好256x256的大小就能够渲染了。
3、得到漫反射贴图和高光贴图之后有两个做法。一个是先在3dsmax将Vray材质怒转成Unity3d认的3dsmax自带的standard材质,这样在Unity3d则无须修改,但也不能在Unity3d中再修改。另一种是在Unity3d导入模型,再贴上这两个贴图,这样的做法是能够保证材质在Unity3d得到更好的渲染,还能进一步在Unity3d利用Sharder修改,但就是没封装,麻烦。这两种方法各有优缺点,请自行选择。下面分别说明。
四(1)、先将模型导入Unity3d再贴图
导入前先检查3dsmax是否符合笛卡尔XOY坐标系,也就是Unity3d的三维坐标系的,如下图,XYZ三者应该是全0,Y轴向上。
1、之后导出FBX,甚至OBJ也行,反正Unity3d不认Vray材质。要求Y轴向上,单位是厘米和嵌入媒体,不过嵌入不嵌入也没所谓了,反正Unity3D不认Vray。
之后导出,会弹出Some materials in this scene may not be supported by certain applications的警告,很正常,还是那句,因为Unity3D不认Vray。
2、将这个FBX和刚才整出来的两个贴图Teapot001VRayDiffuseFilterMap.tga和Teapot001VRayLightingMap.tga拖入Unity3D,将FBX当预设拖入场景,如下图,选择光影材质,再拖入漫反射贴图和高光贴图,完事!
四(2)、先将模型的材质在3dsmax再导入Unity3d
下面是方法二,同时也是3dsmax中,无第三方插件,Vray材质转Standard材质的方法,虽然这和Unity3d没什么好像没什么关系……
1、在3dsmax的材质编辑器新建一个Standard材质,其实也就是点选一个新的材质球,因为每个没调过的材质球都是standard。之后直接在漫反射Diffuse和镜面反射Specular贴图, 点选旁边的小方块按钮,选择Bitmap,再分别选择刚才弄出来的漫反射贴图Teapot001VRayDiffuseFilterMap.tga和高光贴图Teapot001VRayLightingMap.tga即可。
大家可以点选F9看下,光影效果肯定没Vray好了,但基本做到不失真!
2、之后和上面一样导出FBX,也只是导出为FBX模型,拖到Unity3D可以直接当预设用了!Unity3D对于3dsmax中带默认的standard材质是认的,拖入FBX自动打点好一切了。
最后献上两个方法的对比效果图,不就是两个完全一模一样的模型!这种用3dsmax做出来的模型,画面很可以了!