如何渲染才能获得逼真金属效果?( 上)

发贴时间:2014-09-08 18:54 

来自版块:共享教程

人气3094 评论8 点赞0
点赞
收藏
打赏
扫码分享给朋友
当前帖子链接已复制,快去粘贴分享吧~
下载文件
×
本帖全部文件列表
教程语言:
下载方式:


Maya(写实风格)特效示意库插件
要渲染出真实可信的金属可能需要大量的时间,因为光线追踪会对渲染时间造成负面影响,所以我们应该了解GP着色器的高光属性,让我们可以在保证渲染尽可能高效的同时实现想要的外观。
金属可以添加各种各样的图层。因为这是在未来,所以我们可以在艺术风格上有更大的自由度。从下面的金属参考可以看出,真正的金属铬可以形成区别很大的外观,比如我们可以在《兰戈》和《拜见罗宾逊一家》这样的电影看到这些效果。每一种外观都是由技术总监根据现有的技术来指定的。我们在选择金属着色器的时候需要考虑一些限制。
1_10.png
我们想在飞行汽车上实现一种处于两者之间的效果,不会太真实,也不会太卡通,但肯定会更加明亮,比较接近高导电性的铬或者锗的外观。
请观看GP着色器中的一些关键属性,它们能够帮助我们实现想要的外观。

粗糙度(Roughness)
要描绘出真实可信的金属,其中一个最重要的属性高光的不规则性。粗糙度属性能够让我们控制金属的抛光或粗糙程度,不规则的粗糙样式可以大幅提升渲染的真实感。很重要的一点是不要做出过高的粗糙度,因为高度漫反射的表面和非常粗糙的表面在某种程度上来看是一致的,导致出现过多的高成本高光光线。
2_15.png
高光增加(Specular Gain)
在控制高光不规则性时,其中一个最重要的设置是高光增加。这个数值能够接受亮度输入,定义表面高光的强度。在这个数值上使用粗糙贴图(grunge map)添加磨损和划痕总是有用的,因为这样可以改变表面的高光强度。我们在铬金属的着色上使用绘制贴图,即使是最轻微的不规则性都能将铬金属的着色的可信度大幅提升。
另外一个重要属性是模式(Mode),它能够决定使用光线追踪还是反射遮蔽来计算出反射。完全(Full)光线追踪是可以达到很高的成本的,不过它会利用到整个场景来计算出着色的最准确反射。另一方面,直接(Direct)光线追踪只会采样灯光,但同时也会使用反射遮蔽,它能够通过估计多边形的情况(不是着色)来模拟物体的反射。反射遮蔽能够提供超高的渲染效率,同时保持可信的反射外观。
3_19.png

各向异性(Anisotropy)
各向异性控制的是高光部分的形状。这个属性能够对着色的外观产生明显的影响,因为反射会弯折并跟随这个拓扑结构,帮助我们实现这种金属拉丝的外观。还有几个属性是需要与各向异性配合使用才能在着色中准确呈现:
  • 粗糙度必须大于0,通常0.2的取值就开始出现明显的各向异性特性。
  • 各向异性的方向取决于多种几何因素,包括UV、几何图形类型(多边形、NURBS、SubD等)、以及GP着色器的切线光源(Tangent Source)属性。
4_16.png
切线光源(Tangent Source)
在高级高光(Advanced Specular)标签中可以找到切线光源属性。这个属性对于各向异性高光的方向来说十分重要。
Default选项会使用表面的dPdu来计算出切线,用于各向异性和切线空间的编码。这是一个由着色系统提供的内置向量,因此无需额外的计算。如果拓扑结构有问题时就会看到过高的反射。
S选项会从ST(UV)坐标上计算出一个渐变。如果网格没有UV,那么它可能就会渲染出黑色或者dPdu的默认颜色。它不能很好地处理自动映射的UV,因为方向在接口处会发生改变,但是能够处理好带有不当拓扑结构的准确UV。
Mesh选项会从多边形网格中生成切线。为了生成所需的切线,请选择多边形形状节点,并添加一个叫做“Output Tangents”的RenderMan属性。这样会引入额外的计算。
Input选项会使用一个材质贴图来生成并计算网格的切线。简单的渐变会有最好的效果,不过可以使用任意图像来生成自定义和创意的效果。材质贴图必须连接到切线渐变(Tangent Gradient)属性上,它对带有相似方向的UV有最好的效果。
最大高光值(Max Specular Value)
这是一个很有用的属性,它能够利用高光值进行更加高效和可靠的采样和图像过滤,真正避免了物理渲染所带来的斑点和假象。如果将这个数值设成1,那么渲染数值就不会超过1,即使选择了浮点图像格式也一样。常用的设置值为2 - 10,这个区间可以将光圈值保持在合理高效的范围。
我们先来看看汽车的金属着色器。
5_15.png
你会注意到我已经将最大灯光采样(Max Light Samples)和最大反射采样(Max Reflection Samples)从16增加到32,这样可以确保粗糙区域有较高的采样,不然的话会造成噪点。RMS可以智能地使用最大采样(Max Samples)参数,它只会根据实际需要进行采样。所以在大部分情况下,将最小采样(Min Samples)保持在1就足够了。
另外要注意的是我在大部分的着色器中都将最大高光值设成了2到4之间,这样就能保证着色当中不会出现斑点或假象。
然后看一下路标的着色。
你会注意到我们的表面颜色(Surface Color)和高光颜色(Specular Color)是使用同一个漫射材质贴图的,因为跟塑料之类的绝缘材料是不一样的是,导电材料(金属)总是会反射跟漫射一样的颜色。例如黄金的高光是黄色的,而不是白色。我们也会用绘画材质贴图来控制金属(Metallic)属性和高光增加属性,将路标的粗糙部分和光泽部分分开。我们在金属属性加入了一些渐变,因为我们不想把路标做得像镜子一样光滑。
注意我们已经将切线光源设成了S,这样可以让我们更好地利用布局良好的UV,并实现美观的直接各向异性高光,即使我们没有良好的拓扑结构也能做到这些。另外一个有趣的技巧是利用程序性的噪点提升着色器的突起。这样可以为反射增加一种特别的弯曲,让路标看起来更加饱经风霜。
提示
如果与Mudbox配合使用的话,请尝试导出FBX文件来保持Maya creasing。Renderman的subD能够很好地与Maya creasing兼容,让你可以添加有趣的倾斜边缘,不会增加不必要的几何图形。
汽车喷漆
我们的复古未来汽车需要一种独特的汽车喷漆。GP着色器的其中一个有趣功能是可以生成金属喷漆薄片。结合了金属控制之后,喷漆薄片可以在汽车喷漆着色器中生成独特有趣的样式。
这张Finn McMissile和Mater的图像完美地结合了我们的外观发展。我们需要在汽车的底部实现一种磨损的效果,然后在飞行汽车的其他部分加上明亮的金属喷漆和清漆涂层。
6_14.png
接下来看看这些GP着色器属性如何帮助我们实现想要的外观。
薄片数量
薄片数量可以自由地进行艺术指导。这些薄片是基础标准(base normal)的随机分散,所以请注意不要添加过多薄片,不然的话它的样式会开始在着色上出现奇怪的噪点,特别是在动画当中。我们针对车辆采用了0.15的数值,如果用更大的数值的话就会在特定的角度出现白色的假象。这些需要根据表面的曲率进行细致的处理。
7_8.png

薄片频率(Flake Frequency)
薄片频率是指薄片在表面上的大小。它并非处于真实世界的空间,所以我们需要根据每个物体的需要微调薄片的大小,得到想要的外观。我们的薄片频率被设置成了10左右,因为对于这个镜头距离来说能够达到很好的外观。如果取更大的数值的话,我们就需要大量的过滤来阻止薄片出现闪烁。另一方面,如果取值过低的话,薄片就可能会变得过大。
8_10.png
时我们也要确保较高的IOR(Index of Refraction,折射率),或者大于0的金属属性,这样才能看到金属薄片。正如下方例子所示,薄片在高光部分添加了一个有趣的样式。
9_8.png
现在回到我们的汽车喷漆着色器。
金属汽车喷漆会在观看角度中变暗,而且颜色也会产生变化。为了实现这种效果,我们会利用“samplerInfo”节点的表面比率来控制渐变的V坐标。之前的绘制材质贴图用来控制其他的属性,例如表面颜色和高光增加,这样汽车泥泞的底部就不会出现高光着色。
10_7.png
这个汽车喷漆着色器当中很重要的一点是它采用了次级高光叶片,它可以在金属喷漆层的顶部做出一层透明漆,不需要用到副着色器。同时还会用到一个类似的渐变来控制高光颜色,不过颜色会变得更加不饱和,避免环境有过于鲜艳的着色。我已经将粗糙度维持到最低的水平,也将高光混合(Specular Blend)设成了0.5。这样做会保留一半的次级高光和一半的主要高光。注意不要让其中一种高光比另一种高出很多,不然就不会出现分层的效果。我们也会在两个高光叶片上使用“Full”的高光模式来反射整个环境,从而得到更加准确的映像,特别是地面的反射。
由于大小的关系,金属薄片会比较难准确的过滤。为了克服这点,我在Car Paint Shader中添加了一个着色率(Shading Rate)的属性,它会覆盖掉全局的设置。我已经将着色率设置成0.5,这样能够确保我们的着色能够在每个像素上细分两次。

玻璃
玻璃的渲染通常都是非常昂贵的。这就是RMS 18拥有一个专门的GP Glass着色器的原因,它是专门优化用于复杂的可信着色的。在这个部分我们将会详细了解在我们的汽车上使用GP Glass的优点和缺点。我们也会研究如何使用GP着色器来取代GP Glass着色器,做出一种有趣的磨损玻璃效果,同时尽量减少渲染的时间。
我们的视觉发展需要不会遮挡角色,同时可以跟环境良好互动的玻璃。这种玻璃还需要足够薄,而且可以有一点折射,再加上一些来自道路的尘土。在下面的参考图像中我们可以找到一些有用的粒子,从巴斯光年的透明塑料面罩到一块饱经风霜的玻璃。我们需要在这些图像之间达到一种平衡。
11_3.png
我们现在来看看GP Glass和GP Surface着色器中的一些有用的参数和巧妙的用法,以及它们是如何帮助我们实现想要的外观的。
GP Glass
虽然GP Glass着色器可以快速地做出照片级的玻璃外观,它在渲染折射时会比GP Surface着色器要慢得多。如果我们可以为了可信的外观而牺牲准确度,那么我们就可以用GP Surface 着色器做出非常好看的玻璃外观。
正如我们在这里看到的,使用GP Surface着色器的“Direct”反射来对玻璃着色的效果是跟“Full”反射差不多的,但是渲染成本只有三分之一。GP Glass能够做到美观而且折射,但是缺乏GP着色器可以做出的特别磨损效果。它还需要更多的高光深度来生成可接受的结果,这样会增加渲染的时间。
我们会在汽车前灯使用GP Glass着色器,我们已经在车灯上做了一些细节来实现美观的灯泡折射。
12_3.png

GP Surface
因为汽车上的玻璃比较轻薄,所以使用非折射着色器已经可以有不错的效果,如果我们能够用上副着色器和遮罩就更好了。对于我们的镜头来说这是一个很好的妥协。
先来看一下我们的“低成本”玻璃着色器。
13_0.png
我们在主着色器和副着色器上加入了不规则的磨损和透明。副着色器带有一个连接到遮罩(Mask)输入的粗糙贴图,它能够切断副着色器并让它在某些区域变得更加不透明。我们也使用了一个强制执行的透明度贴图来调整主着色器的粗糙度(Roughness)。这样可以确保我们的灯光可以在不同的强度下得到反射。最后我们会添加一个绘制贴图来分离主玻璃着色器的整体高光。磨损效果会为我们的高光内容提供一些不错的刮痕。
最重要的是,我选择了“Direct”的高光模式,这样可以在设计和效率之间达到一个很好的平衡。跟“Full”高光相比,它可以做出纤薄的玻璃外观,同时减少渲染的时间。我们也可以看到长满毛发的角色在车中也不会被遮挡,正如我们可以透过巴斯光年的面罩看到他一样。

复制以下链接分享到 QQ群 QQ空间 贴吧 或其他CG网站上,每进来一个人你将获得: 2微豆

客服
快速回复 返回顶部 返回列表