unity3d中水彩风渲染有什么用

这篇文章主要介绍了unity3d中水彩风渲染有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

   关于水彩风渲染的研究,主要分为三大类:基于笔触空间的方法、基于图像空间的方法和基于物体空间的方法。

   这篇文章提出了一套水彩风渲染的管线,属于基于图像空间范畴,如下图。

unity3d中水彩风渲染有什么用

 

 
水彩风渲染管线  



水彩风渲染管线

   这个管线的输入可以是2d图片或者3d模型或者两者的结合,经过抽象化处理(Abstraction)水彩风效果添加(Watercolor effects),最后输出水彩风场景。

   如下图,(a)(b)(c)三幅图就是通过这个管线渲染出来的,(a)和(b)的输入是3d模型,(c)的输入是2d图片,经过这个管线,最后得到效果图。

unity3d中水彩风渲染有什么用

   下面分别对管线的两个组成部分进行详细描述。


抽象化处理(Abstraction)

   与真实感渲染相比,水彩风渲染不需要那么多的细节。所以,水彩风渲染管线的第一步:对输入的模型或者图片进行抽象化或者简化。用到的方法如下:

对3d模型的光照效果进行抽象:水彩画中对光照效果的表达,一般是利用颜料的叠加等方式。例如湿画法(wet-on-wet,先用水将画纸润湿,然后在湿润的纸上晕染上颜色)中,得到的叠加效果一般比较平滑;干画法(wet-on-dry,一层颜色干了之后叠加上另一层颜色,或是运用干枯的画笔在画纸上用擦的方式上色)中,得到的叠加效果一般界限分明。如下图,图片链接。

unity3d中水彩风渲染有什么用

   为了实现上述效果,可以用到一种toon shader,准备一个色阶图,用于表现干画法界限分明的效果;对色阶图进行平滑处理,用于表现湿画法平滑的效果,如下图。

unity3d中水彩风渲染有什么用

   即使如此,模型本身依然还会有很多细节。所以对于模型本身,采用法线平滑(normal smoothing)的方式对模型细节进行简化。如下图。

unity3d中水彩风渲染有什么用

对2d图像的颜色进行抽象:对于2d图像而言,同样也需要进行抽象,抽象方式就是采用颜色分割的办法。具体来说,可以采用均值漂移算法(mean shift algorithm)。如下图中,(a)为原始图像,(b)为没有进行颜色分割的水彩着色效果,(c)为进行了颜色分割的水彩着色效果。

unity3d中水彩风渲染有什么用

形态平滑(Morphological Smoothing):在进行了前面的处理之后,无论是3d模型还是2d图像,仍然存在一些小的色块,使得整体效果看上去还是“太详细了”。我们可以接着进行一次形态平滑过滤(morphological smoothing filter)。上图中的(d)就是在(c)的基础上进行了一次形态平滑过滤的结果。相比起来,(d)中又少了一些细节。


水彩效果(Watercolor effects)的添加

   经过上面的一系列抽象化处理,水彩效果添加过程的输入是一张2d图像。水彩效果主要分为三个部分:水彩纸模拟、边缘变暗和颜料密度变化。

   水彩画的纸用的不是普通的纸,也有很多讲究。按纹理分为粗纹、中粗纹和细纹;按材质分为木浆、棉浆和棉木混合。根据所画的内容和想表达的效果,进行不同的水彩纸选择。比如粗纹适合画粗犷的风景画,中粗适合画静物、人物等,细纹适合比较细致的写实风格画。

   为了对水彩纸进行模拟,采用两种方式:干笔刷(dry brush)效果和边缘摆动(Wobbing)。下图中(a)是没有进行干笔刷效果和边缘摆动的结果。干笔刷效果是指一个干燥的笔刷以某种特定角度在一张比较粗糙的纸上绘画时,笔迹只会出现在纸张相对较高的地方,较低的地方会出现不规则的白色裂痕和边缘,如下图(b)。边缘摆动是指由于纸张粒度导致水彩画中物体边缘会有摆动现象,如下图(c)。干笔刷效果可通过一个mask完成,边缘摆动可以通过屏幕空间的x和y坐标的偏移完成。

unity3d中水彩风渲染有什么用

   接下来,模拟边缘加深效果(edge darkening),是指湿度较大的笔刷作用到干燥的纸上时会出现边缘加深,这是因为颜料边干的过程中,会从着笔区域的内部移动到边缘,从而形成水彩特有的边缘加深效果,有点像卡通渲染中描边的感觉,如下图。这种效果可以通过卷积的方式实现。

unity3d中水彩风渲染有什么用

   最后,可以通过颜料密度的变化(pigment density variation)来实现紊流、颜料分散和纸张变化等效果。如下图,分别对应了上述三个效果,分别用三张纹理实现。

unity3d中水彩风渲染有什么用

感谢你能够认真阅读完这篇文章,希望小编分享的“unity3d中水彩风渲染有什么用”这篇文章对大家有帮助,同时也希望大家多多支持编程之家,关注编程之家行业资讯频道,更多相关知识等着你来学习!

相关文章

这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画...
这篇文章主要介绍了Unity3D如何播放游戏视频,具有一定借鉴价...
这篇文章给大家分享的是有关Unity3D各平台路径是什么的内容。...
小编给大家分享一下Unity3D如何实现移动平台上的角色阴影,希...
如何解析基于Unity3D的平坦四叉树地形与Virtual Texture的分...
这篇文章主要介绍Unity3D如何实现动态分辨率降低渲染开销,文...