深度图像比一般的RGBA图像存储更多的数据,基于每个像素上有不透明不同层度的深度信息。深度图像合成不仅仅是处理大气雾或者云烟等的合成解决方案。尽管一般图像的合成流程已经很成熟。但是深度图像合成将来是趋势。首先,ILM公司在开始研发exr 2格式,这个格式支持深度信息。其次,ILM、Dream works、DrD、animal logic(animal logic公司在2010年的siggraph大会上发表了一个关于deep image compositing的论文,但是好像被拒绝)等等公司都在使用深度图像合成,而且也有了很成熟的流程。目前,我们在the foundry网站上看到一个使用深度图像合成的例子:使用nuke的Deep系列节点合成电影《猩猿崛起》的一个镜头。那么如何渲染输出深度图像呢?


  我们要搞清楚将来深度图像到底是使用什么格式的。在国外论坛上看了些资料发现,貌似是使用dtex格式,但究竟如何输出dtex格式文件,没有找到解答,或许dtex就不是一种图像格式,不得而知。我感觉不同的公司会开发不同的deep shadow map的存储格式的,首先renderman和houdini的格式就不一样,这样就导致后期合成的软件nuke和fushion就要支持更多的格式,用户就要使用自己喜欢的渲染器渲染自己喜欢的deep shadow map合成,这样从渲染输出到合成将形成不同的流程。只是知道目前支持渲染输出深度图像的渲染器有Vray、Mantra和Prman、3Delight等。我最近两天研究mantra如何输出深度图像,也没有什么实质进展(第一是因为mantra没有输出dtex格式的能力,我本人认为,输出exr还不能支持nuke的deep read节点的读入,当然可以单独输出深度图层。第二是因为,mantra可以输出dcm和dsm的图像,dcm是相机深度图像,dsm是深度阴影图像,都是.rat的格式的。同时,也不支持nuke的deep read入读.rat格式。 第三不管是在houdini的官网帮助文档还是nuke的帮助文档上面关于深度图像合成都没有详细的解答,尤其是houdini的文档,看完之后感觉没看一样。)那么是不是等到exr2格式出来的时候就有渲染器新功能支持输出exr2格式,同时可以使用nuke的deep系列节点合成。希望如此。究竟如何创建深度图像,原理都是使用deep shadow map,mantra也可以输出deep shadow map,上文提到了。在houdini帮助文档上说明了如何输出deep shadow map但是输出的格式是.rat。这样的.rat格式文件可以使用houdini的合成模块转化成一般图像,我也没尝试。我也不清楚如何使用这个输出的数据在nuke中使用deep系列节点合成(如果有知道的朋友,请email:keke19870609@163.com,先谢谢您)。


  由于deep image compositing合成的资料很少,(想了解更多http://www.deepimg.com/in-depth/。)我到现在也没有弄明白deep image compositing的流程到底有神马不可逾越不可模仿的优势。个人感觉,深度合成首先,优化了合成流程,因为不管deep image使用何种格式,有一点是肯定的那就是它必将深度信息渲染集成到了RGBA上面。这样的图像格式(就想EXR格式)必将优化合成流程。其次,深度图像或许更加方便或者说更加自如的使用深度信息调节图像(比如使用深度信息控制fog效果,调节远处物体的饱和度低些,近处物体的饱和度高些等等基于深度的模拟大气效应的效果)。第三,使用deep合成就不在考虑物体遮挡了,因为有了深度信息,而且还有不同程度的透明度,这就不必渲染输出遮罩层了。第四,the foundry公司开发nuke的Deep 系列节点是基于论文研究deep image compositing的结果,既然deep image compositing理论基础已经很成熟,而且实践上也有很多公司有了宝贵的经验。我个人觉得deep image compositing将来会有更多的优势,nuke 的deep image系列节点将来会有更多的人使用吧。第五,deep image compositing最大的好处就是更快的速度完成更高的质量的产品。


  下面附上Animal Logic未发表的论文:



,nuke教程,nuke节点