当前位置:   article > 正文

unity 贴图合并_[2018.4]Unity版本迭代与效果提升

unity lut图

077b64ece9bc29e87ae048ac5c1948e3.png

写在前面

项目最近从Unity5.5.1升级到Unity2017.4.1,抛弃了一些兼容低端机的做法,项目升级了基于standard shader的PBR、线性空间、后期效果PostProcessingStack V2,从2月的预研到3月份正式升级,在短时间内做了新的效果升级。其实2017年也一直在做效果的提升,在这个手游画面竞争愈发激烈的时代,却显得很乏力,但是2017年基于Unity5.5.1的努力不能因为结果不理想而被否定,所以我总是想对那些说我们画面比不过其他手游的同事或者对手进行技术辟谣。谨以此文献给2017年的辛苦付出,顺带提及的2018年的变化有空会重新整理。

一、主城翻新

2017年对主城翻新了2次,第一次是增加了一片野外区域,地图尺寸扩充为512*256,后来因为大轻功的需求,第二次重新调整了建筑大小和密度,地图尺寸扩充为512*512。

501dde85e77f5d6778368e65672244f1.png

每一次翻新都涉及到模型调整、光照调整、逻辑重做、历程重改等等,但是到了年底,项目仍然做出了新的决定,重做主城,毕竟游戏都做到第二版了,需要给新玩家耳目一新的感觉。

二、大地图制作

重新定义主要视角为3D视角,开始制作大野外、大地形的场景,地图尺寸512*512。而现在制作的新主城尺寸达到1024*1024,新野外尺寸也做到了2048*2048。

22106fe53e0bd8f2b393eed1bebbab1c.png

三、基于物理的渲染

渲染流程更新为真正的基于物理的渲染,光照模型升级为PBR ( Physically-Based Rendering ),替换掉以前模拟PBR所用的Blinn-phong。PBR渲染的纹理:颜色贴图、法线贴图、金属度、粗糙度、自发光。其中Metal、Roughness、Emission会合并到一张贴图的RGB通道上使用。由于项目风格还是偏向卡通化,贴图制作还是以手绘为主,相信将来移动平台的游戏制作也都会慢慢转为标准PBR流程。

cb0b4bd055a6299efbc77f9be4ff0402.png

839647a4f69c3d68095b635399eb8d4f.png

四、实时光照和实时阴影

全场景使用实时阴影,在使用实时阴影的同时,还希望场景表现有明暗关系,所以使用了实时光照+阴影+Lightmap。烘焙Lightmap时,不烘焙场景物件的阴影,只烘焙物件的AO到光照图,通过实时光照产生实时阴影。我们规范在场景中只存在一盏实时灯光,这里在烘焙AO光照图时,根据需要会增加点光源和场景补光来烘焙需要的光照信息。因为要兼容关闭阴影的情况,所以需要烘焙两套光照图,并做对应的优化方案。目前升级Unity2017后使用新的光照流程Mixed Lighting的ShadowMask模式,间接光照和阴影图分离,与旧方案达到的效果一致。

94ce708d189dd44c2a6c361934ddb5e3.png

a97b559682d19cb9cf2b1589b68b1eb4.png

五、使用Covermap

从场景的顶视图视角映射一张带光影和纹理的图片到场景地图上的物件。地面使用Covermap可以增加灯光细节,地形和草使用Covermap能增加地形细节和大片草的明暗细节。

0a24e4b0707d952562edb1b0ad0cdf14.png

2c70c01d6da343da61241e146c46b771.png

7d453fe2f8de81905b82cb5341955beb.png

六、水面实时反射

2cc635d9beac98a29b9ca033ec5cafd7.png

七、HDR+Bloom

开启HDR下的Bloom效果,使用的是旧的StandardAssets中的Optimized Bloom。

98f205431d46a56ebe2b04a94c4e0775.gif

八、GPU草及草的碰撞

使用GPU Instance特性来绘制草,通过植被辅助工具生成大量的草,单个场景草的数量级可以达到300,000颗,同屏可绘制的草的顶点数可达到20,000个。

554275e204c4388bd11fb87ec53511a2.png

17c313b43a20acc3e4d4c0abb8d193ad.gif

九、角色增加流光效果

9c32cee1b8c8ba9324db0af403a18455.gif

十、角色捏脸

捏脸使用了骨骼、BlendShape、Shader参数来控制。

7aef672aa57442b20ee0603f997868fd.png

十一、存在的问题

年底Untiy官方技术人员过来答疑时,我总结了一些存在的问题

1、缺乏较好的场景LOD功能。LODGroup对于烘焙的场景不太适用且在内存方面有负担。(MeshStreaming功能还在2018计划中)

2、场景shader的LOD做法仍有不需要的_L、_N贴图被加载。

3、地形制作美术流程复杂,期望Unity自带的地形及地形LOD功能可用。(后来的反馈是,现在“WorldMachine-Unity-ZBrush-减面优化-拆分”的流程比较适合于目前在移动平台使用)

4、视距扩大后,阴影质量要开到高级才能满足效果,Unity自带阴影无法优化。(Unity2017的Mixed Lighting有对实时阴影的优化)

5、遮挡剔除不适合开放空间的游戏类型。

6、贴图尺寸变大,内存消耗过大,需要可降低内存的Mipmap Streaming技术。(开启Mipmap,并在低端机和低端画质强制QualitySettings.masterTextureLimit从1级生效,可降低内存)

7、需要更多的后期效果,合并优化。(PostProcessingStack)

8、美术资源加载和卸载的合理管理。

9、期望优化尽量对美术不可见,不需要美术通过复杂规范来实现优化,而是程序自动优化。

对于第9点,在2017年特别有感触,美术规范越来越复杂,需要先梳理一番留下必须要的规范,简化不必要的规范。

我们绕过Unity提供的功能并实现了很多额外的功能,反而是因为Unity对开发人员来说太方便了,以往在自研引擎上需要某一个功能,从发起需求到排入计划到开发功能到验收完成所需要的时间,基于Unity来实现时间大大缩短,基于Unity引擎的工具需求,因为太方便就直接做了,慢慢的堆砌出很多的潜规则反而对美术越来越不友好。如果要简化规则,就需要重视前期的规划,让规则更加合理化和黑盒化,当然也有很多必要的规范,也是为了配合程序更好的调配资源和实现功能。

我认为好的优化应该是尽量对美术不可见的,美术能专注于最高效果的表现而不是被各种各样的规范所拖累,我们不能尽善尽美,但是应该往这个方向努力。Unity开发团队更重视PC端的功能完善,对手游团队来说引擎确实存在一些问题,此外,我们对Unity引擎的引擎底层和功能的熟悉程度还需要加强,才能从更好的角度去解决问题。

在ProjectReview过程中发现一个比较严重的问题,就是美术对Lightmap参数的理解不足,官方有关于烘焙流程的详细文档,后面会进行总结。https://unity3d.com/cn/learn/tutorials/s/graphics
1、 烘焙速度问题,提高烘焙速度的两个主要问题:

1)UV Chat 分布不合理:调整Parameter的Resolution参数

2)降低UV Chain的数量:修改GenerateLightmap UV 的Advanced参数

2、 烘焙效果问题

1)未开启间接光计算精度IndirectResolution和AO。

2)直接光DirectLight过多,建议使用单盏,可以通过后期校色来得到阴影颜色,ColorGrading和Lut的开销在低配机上也是可以接收的。

3)UV Chat也与烘焙结果有关,应该提升墙体、地面的精度,降低细节部分的精度。

4)阴影精度不够可以通过模糊参数进行调整。

5)烘焙机推荐设置32核心256G内存。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/101945?site
推荐阅读
相关标签
  

闽ICP备14008679号