1、手动创建景深材质的方法

  手动创建的结果是跟使用层预制是一样的,只不过你可能要稍微理解一下节点的原理与相互的连接方式,这样你可以更加深刻地理解到我们Z通道的原理。

  我们要使用三个节点,分别是samplerInfo、setRange和multiplyDivide。其中,samplerInfo是用来计算场景中的各种距离法线角度等信息用的,手动连接菲涅尔节点的时候时常会用到,大家不会陌生。setRange节点则是一个映射节点,将原先的绿色变成现在的蓝色,把原先的红色变成现在的黄色。multiplyDivide就是乘除节点,做一些简单的乘除运算用的。

  我们将samplerInfo节点的pointCameraZ连接到乘除节点的input1X,将乘除节点的input2X设置为-1,运算方式为multiply(乘)。pointCameraZ这个参数会记录场景中物体上的点到相机的距离,但是这个距离测出来是负值,所以我们需要乘除节点,将这个值乘以-1,变成正值来使用。

  再将乘除节点的outPutX连接到setRange节点的valueX。

  然后setRange节点的oldMin、oldMax,Min和Max这几个参数,分别代表原来的最小值和最大值,以及将要映射成为的最小值和最大值。

  如果你使用层预制去做景深材质,会默认将samplerInfo节点的cameraNearClipPlane和cameraFarClipPlane分别连接到oldMin和oldMax,而且这两个数值一般是0.1和10000。上一次教程已经分析过了,这个参数在很多时候是非常不合适的。

  所以我们手动连节点的时候,完全不需要去连这个地方,这些参数,全部由我们自己手动控制。使用之前提过的measure tool里的measure distance tool来测出场景的大小。设置合理的参数。


  2、带alpha通道的透明物体制作景深通道的方法

  对于一些带透明通道的物体,如果我们直接使用上述方法直接渲染的话,本来该是透明的物体会被渲染成实心的,不是我们想要的结果。



  (想要的带透明通道的效果)



  (实际经常渲染出来实心的效果)

  解决这个问题的方法是,在手动连接好zdepth材质以后,将我们的alpha通道连入材质的透明。但是如果你使用surface shader的话,会发现得到非常奇怪的结果。



  原因是,surface shader的out color计算方法像是incandescence属性,是在所有的结果计算完毕以后再加上out color的数值。所以,只要你的out color不为0 的时候,带透明的surface shader计算结果都不是我们预期的结果。

  那么我们要怎么解决这个问题呢?我们会把一个lambert材质做成surface shader的效果。具体的做法是将lambert材质的diffuse调为0,ambient color颜色调到纯白。这个时候,我们的lambert材质就完全不会受到灯光的影响,看起来跟surface shader完全一样。这个时候,我们将连接好的zdepth节点连到我们自己做好的lambert材质的color里面,再把我们想要的透明信息输入到transparency属性里面,就可以渲染出我们期望的效果了。



  使用32位图片流程的重要性

  我将一张渲染好的结果,分别保存为exr文件(虽说是16位,但是具有32位图片的性质),以及png文件(8位图片)。

  对他们使用fl out of focus进行同样程度的模糊。把合成切换到32bpc,把系统设置改到sRGB色彩空间,勾选linearize working space进入线性工作空间。使整个项目进入线性工作流,这样可以最大程度发挥32位图片的功能。

  这个时候你可以观察到,虽然是同样内容的图片,但是在进行了同等程度的模糊以后,得到的结果却是不同的:


(8位图片模糊以后的效果)

(32位图片模糊以后的效果)


  可以看出来,主要的区别在于8位图片模糊以后,高光没有我们32位图片那么亮。主要的原因是,8位图片会把我们的亮度范围限定在0-1(0-255)的范围之内,而32位的图片却没有这个限制,它们可以拥有无限大的亮度。

  所以,当我们把鼠标放在高光点上面的时候,AE的info面板会给我们提供像素的亮度信息,8位图片最亮就是1了,而32位的这张图片却可以高到4。

  在模糊以后,图片上高光的能量会有所分散,于是原先有1的亮度的高光就变得比较暗淡了。但是32位的图片里,高光本身强度都很大,模糊以后虽然能量分散了,但是还是比8位的要大一些,甚至有些地方的亮度依然有1,为纯白色。

  从结果上来看,我们32位图片在做后期景深的时候,往往由于它承载了更多的信息而能获得更良好的高光虚化。非常的漂亮。所以,当我们对最终结果要求比较高的时候,建议大家使用32位图片来做后期,并且使用完整的线性工作流。




,nuke教程,nuke技巧