后处理中bloom与outline的实现原理

bloom与outline是后处理中最常用的两个效果,这里对它们的实现原理做个基本的介绍。

bloom

bloom即是所谓的绽放效果,它能让3D对象产生“亮闪闪”的特效。让人感觉该3D对象能够发光,而且光线能够延伸到3D对象以外的空间。这种特效得益于三个后处理步骤。第一,通过一种机制将发光部分的计准图片从3D渲染得到的图片中选择出来(抠图)。这种方法可以有很多,例如,可以设定一个发光度阈值,对2维图片做个高通滤波,把一张图片中亮度高的像素点选择出来,以仅仅含有这些高像素点的图片为计准。也可以一开始先设定一些3D对象,先对整个场景有选择的对3D对象做可视性的设定,先对这些希望能让其发光的对象先做渲染,然后以这张图片为发光特效生成的基准。有了基准图片后,接着可以对此图片做多次的高斯模糊处理,让基准图片上的像素像四周延伸。最后,再把这张有选择性的,向四周延伸图片与正常场景的图片做一个混色合成。大功告成,最后得到了一张看起来图片中有部分在发光而且还影响到了其周围的物体。

outline

理解了bloom的机制,再来理解outline的工作机制就轻松一些了。其实它们的步骤差不多:第一,做选择。将需要描绘outline的部件选择出来,对这些部件单独做深度渲染到一张图片。第二,对这个做了深度渲染图片做边界的渲染,这可能包括边界的识别,边界的高斯模糊处理。第三,渲染一张正常的图片后,再把前一张图片与这张正常图片做混色合成。这就是outline的工作机制。

发表评论

邮箱地址不会被公开。 必填项已用*标注