原标题:如何达成照片级渲染效果UE4来助你一臂之力
silujy:Lasse Rode在探求使用实时渲染工具表现照片级场景的过程中,利用虚幻引擎做了一些颇为有益的尝试表现对象则是一间唯媄的,几乎是纯白色的柏林公寓很多人在论坛里已经看过了。
通常我们会使用“传统”的三维工具比如3ds Max之类的来做作品。我们一直在鈈断地尝试新的渲染器目前主要使用的是corona渲染器教程,V-Ray和Octane每个渲染器都有它们的专长,我们一直本着物尽其用发挥专长的原则来使鼡它们。
在我看来可视化行业所追求的主流无非如是:追求照片级的的写实以及更快的渲染速度(如果不是实时画面的话)。不用每次眼巴巴的等渲染农场把图渲出来一直是我们的梦想,特别是渲动画的时候!
实时渲染最大的缺点就是画面质量比不上预先渲染的静帧和動画所能达到的极致所以尽管它很吸引人,在可视化产业中应用实时渲染似乎还是很难想象的——说实在的那种游戏画面一样的质感,大部分有品位的建筑设计和产品设计甲方是不买账的
但是这种局面改变得非常快。实时引擎能够达到的极致是非常漂亮而且可信的
虛幻4引擎的发售引起了业内不小的关注,未来的可能性也似乎是无限的PBR(Physically Based Rendering)物理材质系统和易用的模型导入接口都是吸引我们进行尝试嘚原因——更不要说输出结果的质量上限非常之高!如果你看过Koola的作品(在虚幻商城可以找到),几周前几乎是病毒式传播——估计你也會和我们一样确信虚幻4引擎画面可以达到令人叹服的质量。
在接下来的文章中我会为你们简介一下我制作柏林公寓的工作流程这个场景文件你们可以在虚幻商城下载到,然后分享一下我在创作过程中总结的经验和技巧有些是我自己悟出来的,有的是从网络上的资料中借用过来的虚幻引擎官方论坛和官方帮助文档是非常有用且丰富的学习资料,同样有用的还有引擎自带的新手帮助信息以及虚幻商城中鈳以找到的各种场景和资源
从2013年初我就开始为这套公寓创作了一系列的图片,这是柏林的一间老房子使用的软件是3ds Max和corona渲染器教程。这款渲染器在处理颜色曝光映射方面非常地灵活所以很有助于我表现图面的那种白色气氛。这同样也是我选择这个公寓进行UE4引擎实验的原洇
我注意到UE4在表现阴暗场景和丰富材质的场景方面很出色。所以我就怀疑它不能在场景亮度很高的时候得到很准确的投影和间接光事實的确如此:非常不容易!
以上是我之前用3ds Max和corona渲染器教程制作的场景原图。要查看整个场景请点击这里下方是用这个场景所制作的UE4视频:
整个模型都是使用3ds Max建立的,由于追求快所以我只把最终镜头中看得见的地方做了细节。但是如果客户能使用实时浏览引擎观察模型的烸一个角落的话这招就不能用了。为了把这个模型重新调整为虚幻引擎能用的场景我不得不缩小了一点表现范围,因为如果要把每一個家具和细节都雕琢好就太费时间了有违我做测试的初衷。
我决定只导出两个房间:就是截图中靠下的两间
为虚幻引擎导出场景模型
洳果你牢记几件事的话,这一步其实非常简单!
导出会让模型有点分裂因为lightmass静态全局光照是每个物体分成几块计算的,遇到大面积平面仳如天花地板的时候最好小心地控制参数也因为这一点,我只导出了我们看得到的内墙面
另外我还给墙面上下延伸了一些,将来会和忝花板交叉我发现这是防止“漏光”的好办法——“漏光”一般是因为实体不闭合或者模型面不交叉。这些瑕疵在昏暗场景或者材质丰富的场景也许不起眼但是因为我们的场景非常明亮,因此要尽一切可能保证灰阶着色的精确特别是角落。
第二件重要的事情就是为存儲GI的通道创建UV展开坐标系这个通道是用来存储虚幻引擎算出的lightmass静态全局光照的。在3ds Max中的话就是UV通道2。
通道1是用来放其他纹理的比如凅有色(diffuse)啦,粗糙度(roughness)啦法线(normal)啦等等。虚幻引擎的通道数从0开始计数所以一开始可能有点懵,但是一旦熟悉了就没什么了。
注意:UV展开仅仅是对于光照贴图(Light-map)通道很重要!普通贴图通道什么投影方式都无所谓立方体,圆柱体投影都行大部分情况下,3ds Max展開命令里最基本的“展平(flatten mapping)”就可以很有效地建立UV坐标系!
如果你想在虚幻引擎里把场景按照3ds Max场景原样组装起来那么最好整个空间原樣导出,这样最后的坐标是更容易对齐单独的物件比如椅子和家具,最方便的做法是只导出一次然后把它在虚幻引擎中设为关联组件。为了这个目的你最好把这些小组件移动到3ds Max的原点处,因为最后这个物体在虚幻引擎里的控制点就在那
你肯定能注意到我使用了一个高精度模型,没有进行任何的LOD(Level Of Detail)远中近景别简化这种情形当然仅仅是在这种小型场景才推荐使用的,而且由于我追求非常平滑的场景表现不希望有一丁点锯齿在镜头中出现,所以这个操作对我自己来说是适用的但是我丝毫不会怀疑这个模型有很大的优化空间。
确保伱的每一个家具都拼合成了一个个的独立物件并且赋予了不同的材质材质ID,将来就可以在虚幻引擎中调材质了
好,接下来就把模型保存成*.fbx格式然后就可以进入到虚幻引擎编辑器了!
FBX文件导入虚幻4引擎的过程是非常顺利的,导入过程我分成了若干次
为了拼合场景,我汾别做了几个文件:
- 房间模型单独是一个fbx文件
- 不同的家具分成不同的文件,每个文件里有几件家具
一定要确保取消“拼合网格(Combine Meshes)”嘚勾选,这样能让物件彼此分开否则就都塌陷成一个网格模型了!
我是个非常干脆利落的人,非常热衷于简单明了的步骤!这多少有点囚生哲学的意思但是用最简化的步骤得到最好的结果,绝对不等于使用那些只有你才能懂的野路子或者是半年再看到这个文件却再也想不起来的昏招儿。
这个材质的例子非常简单一张固有色贴图,降了饱和度和黑色混合在一块,同一张贴图调色以后反相放在了材質的粗糙度(roughness)通道里。完成
这个材质的凹凸用法线贴图的话就有点过火了,但是你自己在探索的时候可以随便试试
上图中你可以看箌木材材质被赋予了桌椅——深黑的染色木质,带着清爽的哑光反射反映出了木质的天然纹理。
在这张图中你还可以看到两个比较有用嘚材质窗帘是被阳光从背面照亮的——这是一个双面材质。
为了获得半透明效果你必须把材质类型设置成“次表面(Subsurface)”材质,然后紦一个小于1的常数节点输入到材质的不透明度参数一栏
前景的玻璃罐材质非常简单:
玻璃材质的固有色层明度很暗,完全没有粗糙度(roughness)数值反射度(specular)设置得很高。我还设置了一个1.5的菲涅尔节点来控制不透明度和折射想要生成逼真的玻璃材质还需要更复杂的设置,方法也很多但是说实话我有点没搞定,而且现在这个简单版的玻璃也还凑合用
注意,我在左侧的细节参数面板中勾选了“双面(Two Sided)”并把透明度光照模式设成了“TLM Surface”。
还有一个我想要介绍的材质是地板因为这是唯一一个用到了法线贴图的材质。
你可以看到材质由固囿色凹凸贴图和法线贴图组成。固有色就是一个浅灰由四个参数控制。
凹凸贴图稍微有点复杂:左边你可以看到同一张图通过贴图唑标(TexCoord)节点被调成三种不同的尺度。然后每张图的红通道都拿出来正片叠底到一起作为一个alpha通道输入到线性解析(Lerp)节点中把数值混匼到一起。这个例子中的0.3和0.2是为了在地板上得到微妙的反光最后这个图层被输入到了乘方(Power)节点中,来调整最终需要的凹凸大小
法線贴图也是通过贴图坐标(TexCoord)节点调整大小,然后通过“法线拍平(FlattenNormal)”节点中的数值控制最终的效果
在把家具丢到场景里之前,最好昰先在物件编辑器里先把材质附好这几乎是个一劳永逸的工作,而且以后你想在主场景里修改也是可以的这是个很高效的过程:你会發现当时事先把材质ID区分开是多么的方便。
很简单一句话:该怎么拼就怎么拼首先你需要把房间模型丢进来。最好的方法就是一次选中所有需要的模型然后拖动到空白场景中。然后就是把家具配景都一一摆布进来
这里你看到墙面消失了,是因为单片墙的法线背面朝着伱我之前解释过了:这样对进行静态全局光计算有好处。
为了同样的目的你也最好把大面积物件的光照贴图分辨率设置高一些,比如峩的墙面就设置的是2048
上文也提到过,漏光可能会很讨厌为了防止漏光,我用黑盒子把屋子包起来了虽然从外面看乱七八糟,里面可昰干净多了
布光同样也是很简单的步骤:我用了Koola的方法——结合太阳和放在窗前的面状光源来模拟天光,很有效而且很好控制
到目前這一步,计算全局光照时只有个别几个参数是重要的:
我大量提高了光线反弹次数和间接光质量。而且我还把间接光平滑度下降到了0.6.这樣一来细节就表达好多了而且阴影也不会很含糊。
我还把直接光照设置成了动态阴影这样阴影质量会更好。而且这是后期动画中可移動光源的重要条件
最后,在点击“建立”之前要把光照质量设置为“产品级(Production)”。
这样设定的话每个地方的光影就会很柔和了。
說实在话第一次做到这一步的时候,我激动得都抖了!这就是这个引擎最精髓的地方真的能让你激动起来。能够实时地在自己的“渲染”里浏览实在是太让人兴奋了!
一项非常棒的功能就是引擎允许你直接在编辑器中后期添加颜色校正和镜头特效。添加一个后期处理范围模块(PostProcessVolume)就可以控制全局的后期参数我微调了饱和度,镜头暗角光晕,然后把曝光的最大最小值都设置成了1来禁用自动曝光然後把曝光偏移设成了1.42左右来大幅增加室内亮度。我还添加了一个镜头光晕特效因为我发现这个效果在实时情况下非常出彩。
能够在场景Φ自由移动使得动画制作过程变得简单有趣因为所有的结果都是实时反馈的。我已经是视频软件的老手了所以很快就上手了引擎内置嘚Matinee动画编辑器。
打开Matinee以后你会看到一个多轨编辑界面以及一个路径曲线编辑器。
相机创建和动画设定都是非常直觉化的动画由关键帧控制,路径曲线也和其他动画软件大同小异剪辑工作也是一同在Matinee编辑器里完成。
我在空间里创建了若干个相机缓缓地平移拍摄:在你能實时看到镜头的效果的时候再去调整镜头的运动速度和轨迹就方便太多了。
你可以在编辑器里看到摄像机的轨迹还可以随意临时修改!在Matinee中完成了初步剪辑以后,我把全部动画导出成*.AVI文件最终在Premiere里细致剪辑了一下,把它和背景音乐对齐
从3ds Max导出模型,再倒入虚幻引擎4调整材质和布光,输出动画一直到发布动画在Youtube上,全部的时间只花了我一天左右这种速度是在建筑表现行业闻所未闻的,也揭示了茬建筑表现业应用虚幻4引擎的巨大潜力
消灭了“渲图”的时间,一下子就让创作过程变得灵活起来实时的反馈机制是革命性的。
我们┅直在尝试和思考在实际工作和生活中使用这个工作流程的可能性
还有很多类似的软件,我们非常乐意去尝试
希望silujy在本文中把创作思蕗和步骤讲解得足够清晰,希望读者朋友们喜欢我的案例