言简意赅,视频中那里没有镜子,也没有半透明。而那里确实有一样且对称的模型,分离光通道后,分别打光。
写下这些文字的时候,距离视频发布已经过去半年了。
(资料图)
或许可以这么说,那个时候UE5还是预览版,现在UE5正式版已经到5.0.3了。
简单的说说这个视频的故事吧,在先后完成Groom毛发和动画重定向后,我突然想在动画中加入一面镜子。因为从动画的角度来说,像一个女孩对着镜子欣赏自己的舞姿,而动画最后缓缓扭腰蹲下再蹲起的动作,诸位不妨可以试试,挺考验膝盖。
然而就这一面镜子,似乎成了Lumen带来欣喜后,伴之而来的一记痛击。
作为UE4时代来的遗老,我大致明白UE4打开光追的成本何在。
需要一块支持光追的显卡。(硬件条件)
新建项目时勾选支持硬件光追。(项目设置)
如果中途勾选支持硬件光追,重启项目时要面对昂贵的着色器重编译成本。(错误示范)
之后即便是简单的金属1粗糙0的材质,都能获得良好的镜子。
而UE5EA,实现一面镜子简直是非常难受。事实上,我还算明白游戏设计中的种种障眼法,过去硬件性能不够充沛,譬如舟在湖面下面的倒影,就是倒过去的另一个舟的模型。假如舟上面还有人物,那就尽量调整视角让玩家到无法看到人物倒影的角度。然而我当时很不愿意用这种障眼法,试图通过UE5来解决这个镜子。
提升Lumen的反射分辨率,改变Lumen的反射方式,未见明显效果。
纯Lumen的反射已经告败,开启硬件光追。
硬件光追的光影与Lumen不一致,导致场景与场景的反射是两个世界,Groom毛发上也出现问题,告败。
纯硬件光追,好吧,这个有额外的问题。
平面剪裁,开启,未见明显提升,告败。
相机捕获,反射充满廉价感,角度也很难控制,很可惜,告败。
至于评论区提到的的两个模型,中间使用半透明,如果不考虑光影镜内外对称,可行。
事实上现在来看,那个视频作品很粗糙。标题中的“UE5高质量镜面”,与其说是标题立异,还不如说是带着苦笑的反讽。在看到UE5EA官方文档上轻描淡写的表示不建议用Lumen制作光滑表面,那时我还没有意识到镜子到底在Lumen是个什么样的怪物。
我信心满满的去实现那个镜子,最后发现还不如亲自构建出那个镜中世界。
现在如果有谁再去看一眼那个标题,“UE5高质量镜面实现”,或许你们都能体会到发布视频时我的反讽。我最终放弃了,并用了我所不愿的障眼法,在对面使用了同样的模型,再分离出光照通道,然后将镜中世界的光亮度降低,所以也不需要一个额外的半透明来增加负担。此刻,Lumen很好的将两个“隔离”的世界,分别照亮。我也失去了最后的耐心,没有再做任何打磨,点击渲染,结束了这场闹剧。
就这样一个带有放弃性质的视频,没想到很多人真的被标题中所谓的“UE5高质量镜面”所吸引。有人很诚恳的来问我如何实现这样的镜子。半年过去了依旧会有人关注到这个视频,也有人来问我如何实现这样的镜子。这样或技术或学术性质的话题已经超出了这个视频所能承载的分量,而我也很清楚这个不是真正意义上的高质量镜面,这个方法能复用的场景也极其有限。更何况我深知,这样一个障眼法绝非来提问的人想知道的答案。
至于之后,我很少去碰这个项目。当哪天技术有小进了,或许会做一个视频。至于Lumen中真正的镜子,我现在的建议可能是回避掉它。
如果大家真的需要一面镜子作为渲染的亮点,我也有一个思路提供给诸位。
不知道大家看电影时会不会想,为什么电影中的镜子没有反射出对着它的摄像头。
这个思路原理类似,镜子使用绿幕,后期扣掉。之后再在镜子对着的内容录制一遍,合成上去。
或者,在反射要求不高的情况下,反射可以用硬件光线追踪替代。如果反射的内容较于实际内容过暗,可以增加光线追踪的最大反弹次数,追求效果的话也可以增加最大粗糙度。如果内容有明显噪点,可以增加采样。同时可以使用DLSS插件来提升帧数,减少卡顿。
如果有大佬有高明的思路,也可以在这分享出来。
至于纯硬件光追额外的问题。直至现在UE5.0.3,半透明在纯硬件光追面前,影子也是不透明的。
作者 PickUpWind,即,拾风者也。