很久没有发新贴了,今天趁着火星时代论坛的改版,发个新贴捧捧场先。
同时,我也希望能通过这个帖子抛砖引玉,真正地让高手发表一下自己的意见和想法。
三维渲染的东西要和真实场景合成一向是比较棘手的事情,除了摄像机问题外,
真实场景中的很多因素无法完全真实的在三维中重现,给最终的合成带来了许多麻烦。
就我掌握的知识来看,三维渲染和真实场景的合成有很多方法可用。
例如可以在三维渲染中进行分层渲染,将渲染结果按照
diffuse、specular、reflection、light、depth、shadow等分开,
然后到后期软件中统一合成。
例如,如果可能,真实场景中的灯光照明最好能够精确测量,
可以利用在场景中设置粗糙表面的场景球、镜面球来获取场景
的光照方向、相对亮度等情况。
如果有可能,通过拍摄光探头图像也就是制作场景的hdr贴图
可以获取更为真实的环境光效。
后一种方法存在着一些局限性,例如,动态视频的情况下,
不可能来准确获取一个变化场景的光照参数,
而且,在三维下用全局光加hdr贴图渲染太耗费时间,调整也十分不便。
接下来,我来探讨一种在AE下简单可行的合成方法,虽然在下水平有限,
但我感觉这还不失为一个可以考虑的常规用法。
例如,我们要考虑把下面的风景和汽车模型合成在一起。
如果在三维中简单的把图片放在后面做背景,汽车设置一些反射来渲染的话
(当然这儿不谈全局光这些耗费时间的东西),那么如图:
参数我并没有仔细去调整,所以效果可见是十分的差,汽车表面完全没有映衬出环境光来,例如天空的蓝色,路边麦田的黄色。
有的朋友或许说,可以在三维软件下打上各色的等来弥补,
但是,渲染静帧固然可行,如果是动态视频背景的话,就会问题多多了。
那么如果从合成的角度来解决这个问题的话,同样的三维场景,同样的灯光设置,只要做一些分层渲染,就可以在很大程度上提升画面的效果和质量。
可以把汽车的diffuse、shadow、reflection、light这些通道分别渲染输出
渲染diffuse图层的时候,在max下的话,需要把环境光打到白,然后关闭场景内所有灯光,渲染即可。
由于在After Effects中要用到WE插件,所以,在max下输出灯光层需要把独立成组的灯光分不同颜色,并把三维物体的材质设成缺省standard,再渲染。
这样在AE下就可以准确识别灯光的来源。
当然,在max下的灯光分布也要大概和真实场景中的光源方向类似。
我在max下把三个灯设成红绿兰三色,
在做其他合成的时候,场景内的灯原则上可以无数个,
但是输出灯光层的时候要将颜色分组,目前最多不能超过6组,否则AE就无法正确识别。
另外,三维物体上暗部位的材质需要相应调暗,玻璃类透明物体全部予以删除。
玻璃这类高反射的透明物体甚至可以另外单独渲染,最后再合成,这里就不多展开了。
下面先来看下需要合成的背景层。
我们在AE下使用WE插件,来模拟真实场景的灯光,反射等情况。可以得到的结果是: