查看: 2105|回复: 0
打印 上一主题 下一主题

[插件] nuke后期:景深效果制作思路

[复制链接]

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2017-7-20 14:15:43 |只看该作者 |倒序浏览
摘要:手动创建的结果是跟使用层预制是一样的,只不过你可能要稍微理解一下节点的原理与相互的连接方式,这样你可以更加深刻地理解到我们Z通道的原理。
  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通道的透明物体制作景深通道的方法
  对于一些带透明通道的物体,如果我们直接使用上述方法直接渲染的话,本来该是透明的物体会被渲染成实心的,不是我们想要的结果。
1.jpg
      (想要的带透明通道的效果)
       2.jpg
      (实际经常渲染出来实心的效果)
  解决这个问题的方法是,在手动连接好zdepth材质以后,将我们的alpha通道连入材质的透明。但是如果你使用surface shader的话,会发现得到非常奇怪的结果。
3.jpg
       原因是,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属性里面,就可以渲染出我们期望的效果了。
4.jpg
       使用32位图片流程的重要性
  我将一张渲染好的结果,分别保存为exr文件(虽说是16位,但是具有32位图片的性质),以及png文件(8位图片)。
  对他们使用fl out of focus进行同样程度的模糊。把合成切换到32bpc,把系统设置改到srgb色彩空间,勾选linearize working space进入线性工作空间。使整个项目进入线性工作流,这样可以最大程度发挥32位图片的功能。
  这个时候你可以观察到,虽然是同样内容的图片,但是在进行了同等程度的模糊以后,得到的结果却是不同的:
5.jpg
   (8位图片模糊以后的效果)
    6.jpg
    (32位图片模糊以后的效果)
  可以看出来,主要的区别在于8位图片模糊以后,高光没有我们32位图片那么亮。主要的原因是,8位图片会把我们的亮度范围限定在0-1(0-255)的范围之内,而32位的图片却没有这个限制,它们可以拥有无限大的亮度。
  所以,当我们把鼠标放在高光点上面的时候,ae的info面板会给我们提供像素的亮度信息,8位图片最亮就是1了,而32位的这张图片却可以高到4。
  在模糊以后,图片上高光的能量会有所分散,于是原先有1的亮度的高光就变得比较暗淡了。但是32位的图片里,高光本身强度都很大,模糊以后虽然能量分散了,但是还是比8位的要大一些,甚至有些地方的亮度依然有1,为纯白色。
  从结果上来看,我们32位图片在做后期景深的时候,往往由于它承载了更多的信息而能获得更良好的高光虚化。非常的漂亮。所以,当我们对最终结果要求比较高的时候,建议大家使用32位图片来做后期,并且使用完整的线性工作流。


via yiihuu
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-4-27 20:16 , Processed in 0.119567 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部