github unity 图片切换效果_Unity_Lighting

各位聚聚好。鉴于专栏一直以来都是程序向的分享文章,为了更方便像我一样菜鸡能够在Unity里面做出高质量画面渲染,于是乎就有了今天这个专栏第一个美术渲染向分享。废话不多说,毕竟无图无jb。先上图。

821252ab8fa3ed3f8d168fce40860859.png

f9e66ce1df0f8acf1dbfd0e8ec863291.png

925f4c1752caf5b41d96a67fc3a4f870.png

58c7ab271a99937bd1b2323a8989b2fc.png

d560a3b00f993e54bc45a9c175e20237.png

PS.这里模型和贴图均来自EV的第37套模型库。Maya里面处理好模型和2UV即可导入Unity环境下,材质均使用自带的Standard。因为是分享UnityLighting自然用ArchViz来展示是最适合不过的了。同时也可以测试一下Unity的全局光照精度的极限。这里主要分享的是Unity的Enlighten全局光照,如果你不清楚这个东西可以怒戳下面的链接:

Unity预计算实时GI(六)UV展开与减少光照图数量 - 综合技术 - Unity官方中文论坛 - Unity3d.com​forum.china.unity3d.com

Unity一直以来被诟病的基本都是画面差,市面上大部分Unity产品或者游戏看着也确实没有Unreal和Frosbite系列的游戏那么有次世代的感觉。考虑到全世界都是一种类型大同小异的PBR,排除渲染方程导致的差异,那么效果不够好的主要原因或许就是因为没有一个比较真实的全局光照(Gi)系统和没有比较全面的后期处理(PostProcess)系统。但实际上是Frosbite和Unity基本都是一套Enlighten的全局光照系统。那么Unity到底能不能做真实的渲染效果呢?先打个问号。当场景素材摆放好后大概是下面的样子。

e1b4d1377e252bf3daf377d0760b7ed1.png

可以看到画面效果非常"真实"。之后第一步则是制作一个光照环境,自古好看来自日出日落。所以在这儿也选择了一个日落的时间点。这里提醒一下,我见过的美术大部分都不喜欢用HDRI去做环境光而是去在窗户上放聚光灯阵列或者面光源去模拟,这样的话会失去环境颜色的DirectionLight,所以这里我的搭配则是DirectionLight和EnvironmentLight。既然日落自然也需要一个日落的HDRI。将这些设置好后就可以设置光照烘焙内容了。

4d23a5b27ff7af30afa4ddb4b0194dab.png

f94eea8b14eb066c449954766943a3b5.png

因为这里已经开着Gi了而AO是模拟Gi用的。所以一般都是二选一,如果共存会产生奇怪的脏点效果。

a1b581ff9009c10aaa8ad5bd94bcd487.png

25863971b98fc732456c4f866c97b9e9.png

太阳光这里使用了ShadowMaks,因为考虑到室内可能会有动态物体比如角色在里面走的话,然后也是为了能够产生太阳的高光点,如果使用Bake的话烘焙完后场景就等于没有这个灯光了,那么太阳的高光也会随之消失。ShadowAngle则是为了产生自然的软阴影效果。

随即进行Bake。完成之后则会得到如下图。可以看到Enlighten还是能产生比较好的全局光照(Gi)效果的,并没有传说中的那么水。

ab1afeec63b5bbf87028e0bd657ee88c.png

然后我们看到虽然有了挺不错的全局光照(Gi)效果但是画面却感觉很一片死寂,里面的金属也都是黑色的。主要原因是Enlighten只能Bake出Diffuse的全局光照(Gi)而不能产生Speculer的全局光照(Gi)。好在Unity和其他引擎一样也提供了其他的解决方案就是反射探测器(ReflectionPrbes)(吐槽一下,这个反射探测器居然只能做Box的视差矫正而且还不能旋转。不过新的HDRP里面测试到时可以旋转了,同事也有了Sphere的视差矫正),然后我们在场景中放上反射探测器 (ReflectionPrbes)。因为这个室内刚好是比较规则的正方形分布。所以只需要用Box的探测器去覆盖到场景即可。

649733f9ac1e33622d2108127324e0f5.png

4cc91467781b852caf31bf859fe2ffe2.png

bfd0b0727d7ef74bac6775cb51df2103.png

然后将反射球里面的参数调整好随机点击Bake。即可产生反射用的Cubemap数据。因为场景目前没有什么动态需要所以更新模式用Bake即可。如果你使用的是实时光照环境且光照可互动。那切换到Dynamic模式或许是个不错的选择。随机效果如下。

cf8725d0e64adedb3259947e16f49616.png

可以看到场景的金属不在黑了而是看起来像那么回事了。场景也没之前那么死寂的效果。

但是感觉好像还是有什么不对劲?没错Unity的内置渲染管线默认是不带后期处理(PostProcess)的,这也是为什么Unreal转Unity的大部分会感觉Unity效果很水的主要原因吧。好在官方也很努力跟进出了PostProcessStack。这里使用GitHub最新的UnityPostProcessStackV2,不知道的可以去下面链接下载。

Unity-Technologies/PostProcessing​github.com
cd1e8d4e4845ee2cda2506a786382f71.png

大家可以根据自己的画面喜好去调整参数。这里给出我的参数。感觉效果还行。。。。。。。。

37976c2e2501301727b23f207b5265a4.png

72e76d489e4bb96c46545131d5628d72.png

最后即可得到如开头的图片那样的光照场景。

828062d4e1716fdb79c1c5c04c44ac2e.png

可以看到瞬间画面就DuangDuang了,但是还有一种很不对劲的感觉。那是因为场景里面反射不正确。实时渲染里面的反射主流的除了IBR另外就是SSR了。

eee7ce6e63cdf7807acd02a1dbdfa2d3.png

可以看到在加入了之前说过的StochasticSSR之后画面瞬间就好了不少。特别是地板和阳台的金属框。下面放上SSR的地址。

MaxwellGengYF/Unity-Screen-Space-Reflection​github.com
1678e1db3ac568479e86c36b15c0ceec.png

进行到这儿可以看到还是很难区分是Unity还是Unreal的。也侧面反映了Unity的Enlighten还是能够做到不错的全局光照(Gi)效果的。而后说一下Unity新出的ProgressiveLightmap。

经过上面的分享和测试可以看到Enlighten是可以得到3A级的Gi效果的。那为什么Unity还要出一个ProgrssiveLightmap呢。再经过上面场景制作之前的多次光照测试得到的总结就是,Enlighten虽然可以产生很棒的全局光照效果但是精细程度并不够。举个栗子如图。

58e14752484383933323e991bb74faca.png

可以看到椅子的腿下面产生了很自然的环境光阴影。而桌子腿因为太细导致这个很漂亮的阴影直接消失。

为了解决这个问题。我测试了Enlighten的极限。在IndirectResolution为10和LightingProfile里的Resolution为5的情况下可以产生一些这种极致的细节阴影。但是Bake时间会蹭大道原来的几十倍。因此测试了一下ProgrsssiveLightmap(设置都一样只需要在Lighting界面吧Enlighten换成Progrssive重新Bake即可)。

5e320dffe7bf3290ce7393cc09eaad22.png

Enlighten的可以看到椅子腿基本没阴影了。

cd1aa82e78595bda0fdcfcea7e2f97dc.png

Progrssive的可以看到椅子腿有明显的接触阴影效果。

或许因为速度和精度考虑,Unity官方才出了Progrssive来替代Enlighten做高质量的LightingBake。但是就目前测试来看Progrssive的速度也是很堪忧。。上图在i9上Bake了近乎7小时,而Enlighten则只用了30分钟不到。鉴于2018.3也推出了GPUProgrssive的预览版官方吹的是速度快10X。具体不详。各位聚聚有兴趣可以试试。放上一些制作这个分享之前的测试图。

f5f19669367ecc278bd447e1d791769b.png

ProgrssiveLightmap。

fba24a0dd3584e7068d24958ab5bd9bd.png

Enlighten。注意看左边书桌上的阴影细节。

bc3415d034769df7441abe203a440c7d.gif

实时的Enlighten环境光测试

0bc25eeee874d8d1028d404857a58a5b.gif

实时的Enlighten直射光测试

88a1128c4ef5b29c8483413e88e536b8.gif

实时的Enlighten自发光测试

851b4fd21598be4654be599d59eb4c88.png
一段鬼畜的Enlighten测试。。https://www.zhihu.com/video/1052634787621150720

总结 : 就目前阶段Unity里Enlighten还是速度和质量的平衡者,效果也是能大幅度接近Unreal的并没有传说中的。Progrssive虽然精度高但是速度是真的太慢了,而GPU版本还处于预览版。可见未来很长一段时间还是得开Enlighten。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值