Unity展厅模型预处理UV拆分光影烘焙材质后处理特效制做流程【2020】

  应不少读者的要求,本文小姐姐将以一个用户的展厅VR场景为例,详细讲解Unity3d的VR开发在美工阶段的模型预处理、UV2拆分、贴图优化、光影烘焙、后处理与特效制做以及最终做品优化的基本方法和流程,其中涉及Build-in RP(Build-in Rendering Pipeline-内置渲染管道)、URP(Universal Rendering Pipeline-通用渲染管道)、HDRP(High Definition Rendering Pipeline- 高清渲染管道)和PBR(Physically Based Rendering-基于物理渲染)材质的应用,但愿本文对使用unity3d进行VR开发但没经验及致力于虚拟展厅制做童鞋们理清思路有所帮助。安全

  这里特别说明一下,小姐姐在CSDN里发表了不少Unity3d相关的文章,天天有五六百人由于技术障碍,搜索到小姐姐的文章阅读来解决实际项目中的问题,撰写技术文献实属不易,小姐姐在这里没有任何报酬,您的点赞或关注是小姐姐笔耕不辍的最大动力!若是在阅读过程当中有什么疑问,可V联小姐姐,我将尽全力解答您的提问。ide

  咱们先来看看本案例在内置渲染管道下的效果截图:测试

在这里插入图片描述在这里插入图片描述优化


在这里插入图片描述在这里插入图片描述动画


在这里插入图片描述在这里插入图片描述ui


在这里插入图片描述在这里插入图片描述spa


在这里插入图片描述在这里插入图片描述.net


在这里插入图片描述在这里插入图片描述插件


在这里插入图片描述在这里插入图片描述3d


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


  上面这些图片是一个用户跟随小姐姐的视频教程临摹几周后独自完成的实际项目的截图,相信一些童鞋看到这些图片必定很眼馋,由于不少童鞋没有项目实战经验,单凭对Unity3d的一点点了解,硬着头皮靠本身摸索着推动项目,障碍一个接一个,搞得精疲力尽,可最后完成的却做品黯然失色。你们都知道,Unity3d的美工是做品的颜值和卖相,若是美工不过关,即便做品功能再强大,别人是不给你机会的,更别说让用户承认了,下面小姐姐将带着你们一块儿来完成这个项目的美工部分。

  须要说明的是,因为一些建模师不熟悉unity3d的美工制做,经常被美工要求反复修改模型,另外一方面,因为不合理的模型构建方法,给后续的光影烘焙和场景优化带来不少问题,所以,要作好Unity的美工,就得从建模阶段入手,作好一些模型的预处理。


1. 场景结构简介

  本案例的3dmax模型以下图所示,这个场景的原始模型是另外一用户的提供的,因为这个用户对Unity3d的美工的掌握和不少童鞋同样只停留在概念阶段,没有经验,基本也是一边摸索一边推动,结果发现困难重重,尽管他的机器很高端,可是制做的U3d场景苍白暗淡,没有美感,并且很是卡顿,最后作不下去了,向小姐姐求援。当小姐姐打开Unity工程的时候,发现材质、贴图、灯光很是多,不少模型穿插,重面、破面也不少,无奈之下,小姐姐只好放弃他的Unity工程,从3dmax场景开始,从新修改模型,下面的就是小姐姐从新修改后的场景截图。

在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


  当小姐姐打开用户提供的原始3dmax场景时,发现贴图有215张,材质有264个,并且不少顶点没有焊合。据这个用户讲,他们团队的模型师主要作影视动画的建模,难怪会有200多个贴图和材质,由于动画最终提交给用户的只是视频(图片序列),场景渲染的机器配置通常都比较高,建模时不须要过多考虑模型的面数和贴图与材质的数量,而VR和AR提交的是实时运行的3D场景,播放环境多是电脑,也多是手机,或者是网页或者3D眼镜等,这些环境下的播放设备不可能像开发者的机器同样配置很高,因此Unity对模型的要求很是苛刻,在建模阶段,必须作好场景的优化和预处理,不然会给后续的美工制做埋下灾难性的隐患。

  由上图可见,这是一个展厅场景,其中有大量的史料图片,按照现代展厅的风格,这些图片都会用背喷灯片作成灯箱,这个可做为后面布设灯光的依据。


2. 建模阶段的预处理


  小姐姐在《 Unity3d办公场景灯光布设与光影烘焙及后处理》一文中详细讲解了建模阶段的预处理,其中包括建模方法的优化; 模型拓扑布线优化预处理;重叠、隐藏面优化清理;材质、贴图的优化预处理; 基于灯光的模型预处理;碰撞物优化预处理和拆分UV2的预处理,你们可移步此文去阅读,这里仅对其中的材质和贴图优化预处理、遮挡剔除和视锥剔除优化预处理、基于灯光的模型预处理、碰撞物预处理进行讨论。

⑴. 材质和贴图优化预处理

  前面小姐姐提到过,用户提供的原始模型贴图和材质多达200多个,如此多的贴图和材质,势必会增长机器开销,致使做品实时运行卡顿,尤为是在移动端和3D眼镜中浏览,这确定是没法接受的,所以必须消减贴图和材质的数量。

  从前面的模型截图能够看到,贴图最多的是那些展牌,原始模型之因此材质数量太多,是由于建模师把每张贴图都作成了单独的材质,因此小姐姐考虑将全部的贴图分组合并,具体操做以下图步骤所示,之因此用拼音命名,是由于这些群组的名称会被传递到Unity中,为防止一些插件不支持中文,因此建议最好用拼音或英文。

在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


  按照上述操做以后,就将全部刚才选择的那些展牌的贴图在max中烘焙成了一张4096x4096的贴图,以下图所示,须要说明的是,上面将目标通道设为3,是由于UV1被以前的物体贴图占用,UV2要给光影图用,默认是1,若是不改成3,在烘焙前会先展UV,并存放在通道1上,这样以前的贴图就会错乱,烘焙后的这张图也是错乱的,因此必须改成3。

在这里插入图片描述在这里插入图片描述


  下面咱们要将刚才烘焙的这张贴图让上面这些展牌共用,接下来按下图所示建立一个新的标准材质:

在这里插入图片描述在这里插入图片描述


  默认状况下新建立的材质的贴图是在UV1通道上,以下图所示:

在这里插入图片描述在这里插入图片描述


  接下来咱们将刚才烘焙这些展牌时展开的UV3移动到UV1上,以下图所示:

在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述

  接下来点击下图所示的图标,让每一个展牌的UV1各自独立,图中绿色壳材质线框即刻消失。

在这里插入图片描述在这里插入图片描述


  经过上面的图解步骤,咱们将上述的展牌的材质和贴图就都合并成了一个,以前各自的材质即被空置,能够安全清除,这种方法也称之为多物体共享一个材质和贴图。

  另外咱们注意到,展牌的贴图比以前的暗了不少,这是由于这张合并了的贴图是经过max的烘焙所得,其中多少会有灯光的因素,因此应该将这张贴用ps打开,将其中的图片用每一个展牌贴图合并以前的原始贴图从新逐个替换一遍,保存以后,这张贴图的颜色就正常了。

  不少童鞋可能不习惯上面这种贴图方法,只习惯一个物体的不一样部分贴同一贴图的不一样部分(通常会将上述的展牌先合并为一个物体,这样作不是不能够,可是对于后续的遮挡剔除和视锥剔除很是不利),对于不一样物体贴同一贴图的不一样部分有点不太适应,但这是彻底能够的,之因此这样作,正是为了知足后续Unity的遮挡剔除和视锥剔除之需。这里插句题外话,不少读者由于制做实际项目遇到技术障碍,急得团团转,搜索到个人文章,向小姐姐求助,把小姐姐看成最后一根救命稻草。还有一些读者学Unity几年了,花了不少时间和精力,始终搞不定Unity的美工制做,因而搜索网上免费资料本身拼凑教程,结果仍是没能如愿以偿。小姐姐的文章,只能让你们理清思路,要真正掌握Unity的美工制做流程,必须学练结合,还须要前人的言传,有些东西毕竟仍是无法用图文来表达的,有兴趣的童鞋能够关注小姐姐的《Unity模型预处理布光烘焙后处理特效美工场景优化实战视频教程》,在听讲的同时,经过多案例临摹和感悟,可能脱开教程,将所学的技术应用于实际项目,须要的话可去某宝关注或V小姐姐,好了,言归正传。

  上面这种方法是在每一个展牌各自都贴好了材质和贴图以后为消减材质和贴图的数量的被动之举。咱们也能够在开始建模的时候,用手工展UV1的方法来作,也就是先规划好展牌的分类,肯定哪些展牌的贴图应该合并在一块儿,而后用ps将这些展牌须要用的贴图拼在一张大的图片中,假设下图是咱们事先拼好的一张大图:

在这里插入图片描述在这里插入图片描述


  而后以下图所示将其指定给一个新建的材质的Diffuse:

在这里插入图片描述在这里插入图片描述


  接下来将这个新建的材质赋给须要贴这张图中小图片的对应物体,以下图所示:

在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


  经过上述的图示步骤,可将多张拼合在一块儿的大图中的小图,正确地贴到对应的物体上。接下来再选择另外一个须要贴这张大图中小图的物体, 用一样的方法将对应的小图贴到其上,这种方法就叫手工展UV1,也称为手工拆分UV1,此法同样能够实现合并材质和贴图的目标,与前一种方法不一样的是,此法无需经过烘焙合并贴图,因此贴图不会变暗。

  以上讨论了多个物体在不合并的状况下将其材质和贴图合并的两种方法。

  接下来将场景中较小的展牌所有分离成单个的物体,以下图所示,而后群组,并命名为“xiao_deng_xiang”,用上述的步骤同法泡制,将材质和贴图合并为一个。

在这里插入图片描述在这里插入图片描述


  最后将场景中全部的文字展牌所有分离成单个的物体,以下图所示,而后群组,并命名为“wen_zi_deng_xiang”,也用上述的步骤同法泡制,将材质和贴图合并为一个。

在这里插入图片描述在这里插入图片描述


  经过上述的操做,场景中的全部展牌就被合并成了三个材质和三张贴图,整个场景中的材质由264个骤减为50个,贴图由原来的的215张骤减为50几张,大幅度下降了机器负载,若是不作这样的材质、贴图优化预处理,导入Unity以后,会很是卡顿。

  这里特别强调一点,unity3d有本身的材质系统,不兼容建模软件中高级渲染器的材质,所以只需用标准材质贴基本的纹理便可。

⑵. 遮挡剔除和视锥剔除优化预处理

  Unity3d场景既要控制贴图、材质的数量,也要控制物体的数量和场景中模型的总面数,为此,一些童鞋经常将不少物体在建模软件中合并(Attach),这样一来,物体的数量减小了,可是模型面数却无法消减。Unity3d引入了遮挡剔除和视锥剔除技术来优化相机视图中模型的面数,若是为了减小物体数量而将不少物体合并,反倒不利于Unity3d的遮挡剔除和视锥剔除,例如前面的展牌,若是将全部展牌物体所有合并,相机不管如何移动和旋转,相机会认为这些展牌的面数始终在视野以内,没法将真正处于视野之外的模型面剔除,从而致使运行卡顿。这里说明一点,模型面数对机器形成的负载相对物体的数量来讲,要大得多,所以控制模型的面数比控制物体数量要重要的多。

  基于上述的概念,对于场景中众多的物体,小姐姐倾向于对其分类群组,不建议随意合并,以方便在unity进行视锥剔除和遮挡剔除优化。

⑶. 基于灯光的模型预处理

在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


⑷. 碰撞物预处理

  为加速Unity的相机渲染,能够依据场景的轮廓,构建以下图所示的简版模型做为场景的替身,来接受Unity中碰撞物或称障碍物(Colliders)的实时检测,以防止相机自由下落或穿墙而过。这个简版模型相对带有复杂贴图和光影图的众多场景模型的来讲,计算量会小不少,所以会大幅度加速相机的实时渲染,这个简版模型必须在建模软件中预先构建好,并且应与场景模型重合,右下图左上角可见,该模型只有300多个面,远远小于场景的总面数(18万+),这个模型无需贴图,也无需烘焙和渲染,仅用于碰撞检测。

在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


  不少童鞋完成的做品跑起来很卡,大部分状况是直接将场景中全部物体设为了碰撞物,实时运行时,每帧都要检测相机与全部物体的碰撞状况,机器负载很是巨大,若是改用上面的简版物体做为碰撞物,做品跑起来当即就流畅多了,所以在建模软件中的碰撞物预处理是很是必要的。

⑸. 拆分UV2

  前面和你们讨论过拆分UV1,UV1是物体的纹理贴图坐标,咱们使用拆分UV1,合并了多个不一样物体的材质和贴图,UV2是物体光影图的贴图坐标,拆分UV2,是为unity中烘焙物体的光影图拆分贴图坐标,小姐姐在别的文章中屡次强调,Unity3d的UV2拆分功能有缺陷,烘焙简单的场景还行,对于实际的工程,一烘焙就出现黑斑、亮斑、硬边、鬼影等缺陷,这些都是UV2的拆分缺陷引发的,要消除这些问题,得经历无数次的参数修改和烘焙测试,耗时费力,因此小姐姐建议在建模软件中拆分UV2,由于建模软件中拆分的UV2在Unity中烘焙通常没什么问题,这个工做须要在模型导出前来完成,因此拆分UV2也属于模型的预处理,下面咱们就来拆分这个案例模型的UV2。

  拆分UV2以前,得根据后期光影烘焙的须要,对整个场景进行一个规划,也就是先肯定哪些物体须要烘焙,哪些不须要烘焙,不须要烘焙的物体就不须要拆分UV2了,须要烘焙的物体还得根据物体的重要性和面的大小进行权衡,并本着节省光影图的原则,尽可能将更多的物体拆分在一个UV2里面。须要注意的是,拆分在一个UV2里的物体,与前面拆分在一个UV1里的物体没有任何关系,各管各的事。不一样的多个物体能够共享一个纹理,不一样的多个物体也能够共享一个光影图,这些都是由于不一样的多个物体共享了一个UV1或UV2产生的,具体将哪些物体拆分在一个UV2里面,这须要一些实战经验,若是有条件,可跟着个人视频教程去临摹案例来感悟和积累经验。另外,做为建模师,对后期的光影烘焙和场景优化等美工各阶段必须有足够的了解,不然构建的模型不是须要反复修改,就是相互扯皮。

  由于这个场景中的墙体是最大也是最重要的,因此先来拆分墙体,可是若是把全部的墙体拆分在一个UV2里,光影图的分辨率须要设到4096X4096才可能看上去不虚,但是光影图太大,烘焙太费时、同时后期的实时运行负载太大,因此把墙体分为南墙和北墙分别拆分,这样南墙和北墙就能够分别用2048X2048的分辨率来拆分了,一张4096x4096的光影图至关于4张2048x2048的光影图,两张2048x2048的光影图比一张4096x4096的光影图的负载小一半。

  以下图所示,选中南墙(将墙体上的展牌(灯箱)和地台及3D文字等物体排除)全部物体,而后群组,并命名为“nan_qiang_2048”,请你们养成用英文或拼音命名的习惯,以防Unity中的某个插件不支持中文出问题,拼音用低划线隔开是为了好识别,由于有的人一看到字母就觉得是英文,直接就懵了,模型是要转给美工的和程序的,得让他们好识别。2048是表示这个群组拆分UV2的分辨率,在群组名称里标识,也是为了传递到Unity中给美工烘焙时设定光影图的分辨率时参考。

在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


  按下图所示步骤拆分“nan_qiang_2048”群组的UV2:

在这里插入图片描述在这里插入图片描述


  拆分的UV2以下图所示,注意,虽然这些物体的UV2拆分在一个UV里了,可是这些物体并无也不须要合并成一个物体,理由前面已经说过了。

在这里插入图片描述在这里插入图片描述


  看到这里,相信童鞋们会用一样的方法来拆分北墙了,具体过程这里就不赘述了。接下来将选择全部的展牌,并命名为“deng_xiang_128”,有的人说展牌这么大,这么多,分辨率怎么才设128呢,由于这些展牌后续要在Unity里用发光材质做为光源来照亮场景,而自发光的物体是不接受阴影的,也就是自发光物体上是不会有光影图的,同时自发光物体的光照须要烘焙才会有效果,要烘焙得设分辨率,舍得太大又毫无心义,因此这里就设为128。

在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


  按下图所示的参数拆分后的结果以下,须要注意的是,拆分完一个群组隐藏一个,一方面对于选择物体方便,另外一方面不至于丢掉哪一个物体。

在这里插入图片描述在这里插入图片描述

  以此类推,将其余物体根据须要分别群组并拆分UV2,具体过程就再也不赘述,有关拆分UV2的方法就讨论到这里。最后强调一点,要分批次烘焙,就得在建模软件中将物体群组拆分UV2,之因此分批次烘焙,一方面是由于整个场景烘焙太费时,一旦某个群组里的物体有问题或者须要修改,只需修改后导入unity从新烘焙这个群组就能够了,已经烘焙好的没有问题的物体是不受影响的,若是不分批次烘焙,每修改一次物体,就得把整个场景烘焙一遍,另外一方面,分批次推动烘焙,不至于等的让人心急。


3. 模型导出

  模型的导出在别的文章里面已经讨论过了,在这里再次讨论,是由于须要告诉你们,若是要分批次烘焙,就得将上面的群组一个一个导出成FBX文件,以下图所示:

在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述


  由于整个场景导出的FBX文件导入Unity后,其下的物体一旦有问题,是不能删除的,以下图所示,只有单独的FBX文件是能够删除的,因此为了能让有问题的物体所在的群组能单独删除,就得将建模软件中的群组分批次一个一个导出成FBX文件,这样导入Unity后,即便烘焙了,删除某个有问题的FBX文件,别的已经烘焙好的物体是不会受任何影响的,将有问题的物体在建模软件中修改后,从新导入Unity中,只需烘焙这一个群组就能够了,不知道你们明白个人意思不。

在这里插入图片描述在这里插入图片描述


在这里插入图片描述在这里插入图片描述

  模型导出须要注意的问题就说到这里。


4. 模型导入Unity


  模型导入Unity在别的文章中也讨论过了,这里须要讨论的是当把分批次导出建模软件的物体群组FBX加载到场景时,有两种方式,一种是直接拖至层级面板,一种是直接拖至场景中,这是两种不一样的方试,拖至层级面板,全部物体群组会按建模软件中的坐标原点对齐,这样每一个物体都按建模软件中的相对位置定位,而直接拖至场景中,鼠标在哪,物体群组就会放在哪,这样整个场景就会散乱。

在这里插入图片描述在这里插入图片描述




5. 灯光布设


  下图为全部模型导入Unity后搭建的场景,由图可见,没有任何层次,不少作程序的人和初学者,对美工没概念,作的场景就这样直接发布了,这显然是不行的,现代社会,任何产品都有美学的要求,对于Unity做品亦不例外,因此必须进行美工处理,美工的第一道工序就是场景布光。

在这里插入图片描述在这里插入图片描述


  和动画、电影、电视场景同样,Unity场景也须要采用经典的三点布光法(主光、辅光、背光)来照明,同时应根据场景的特色和实际状况来布设灯光。对于现代展厅,和舞厅、K厅同样,通常都是密闭空间,主要靠人工灯采光和营造气氛,无需天然光的参与,因此首先关闭默认的平行光和环境光,以下图所示:

在这里插入图片描述在这里插入图片描述


因为这里文章有字数限制,更多内容可去CSDN阅读,若有什么问题可V询(qtpl_wx)小姐姐,若是以为小姐姐讲的有道理,请给小姐姐的实战视频教程一些支持!

相关文章
相关标签/搜索