标题:
3Ds MAX子面散射材质精彩效果和原理
[打印本页]
作者:
funsky
时间:
2006-3-13 02:35 PM
标题:
3Ds MAX子面散射材质精彩效果和原理
作者: 陈孝强 原创
乍一看,3DsMAX琉璃和透光材质(比如玻璃)是有很多相似之处的地方,但事实上,琉璃(以及与之类似的材质,比如石蜡、皮肤、晶体等等)还有一个普通玻璃所没有的特点,即“子面散射”(SubSurface Scattering,简称SSS),这种现象是由于材质内部散射光线的作用而形成的,即当光线进入之后在物体内部不断折射而形成的效果。
今天我们先来了解一下SSS的效果和原理。
首先来看一张没有使用SSS材质和使用SSS材质(皮肤)的渲染效果对比:
(图片来源:
www.laumug.org)
再来看一张没有使用SSS材质和使用SSS材质(牛奶)的渲染效果对比:
(图片来源: mental images GmbH, Berlin, Germany.)
SSS效果在3DSMAX——包括其他3D设计软件的材质设计中都是相当复杂的。因为此类材质和光线的交互过程比较复杂。当光线透过烟雾、云彩、污水、石蜡、琉璃等等这些物体时,物体自身会“参与”到光线的传播中,在3D设计中,这类物体有一个专门的名称:“参与介质”(Participating Media)。在mental Ray渲染器中,有很多专有贴图以Parti打头,Parti就是Participating的缩写,此类贴图在制作SSS材质时就会派上大用场,例如Parti Volume(physics) 、Parti Volume Photon(physics)等等。
下面是一张SSS的原理图片,图中上方的黄色箭头是入射光线,当这束光线碰到材质颗粒时,呈放射状散开,散射出来的光线会对模型内部构成照明效果,红色箭头指向的三个红点表明模型不同深度的位置得到的散射光线的照射强度各不不同。
背景知识:Mental Ray的结构
Mental Ray材质库的扩展名是dll(动态链接库),每个材质库文件还有一个同名的.mi文件。这些文件分别存放在3DSMAX安装目录下mentalray目录下面的shaders和includes两个目录下面。注意看一下这两个目录中的文件名就能明白为什么mental ray材质和贴图后面通常会带一个括号了,括号中的内容就是材质或者贴图所属于的材质库的名称。例如,Parti Volume(physics)后面括号中的physics表明这个贴图属于physics库。
下节我们详细介绍Mental Ray渲染器。
作者:
funsky
时间:
2006-3-13 02:36 PM
上一节我们介绍了
3Ds MAX中的“子面散射”
(SubSurface Scattering,简称SSS)的效果和原理,这种现象是由于材质内部散射光线的作用而形成的,即当光线进入之后在物体内部不断折射而形成的效果。这一节我们以前面的“琉璃”制作过程为例,来看看在Mental Ray材质库中实现SSS的基本方法。
主要有三个步骤:
一、使用Mental Ray渲染器和材质的选择
二、Parti Volume贴图
三、Parti Volume Photon贴图
今天我们介绍“子面散射”(SubSurface Scattering,简称SSS)效果实现的第二步:
Parti Volume贴图。
材质
1、添加贴图
进入材质的mental ray Connection卷展栏,单击Volume后面的None按钮,从材质/贴图浏览器中选择贴图为Parti Volume(physics)。
选择贴图
现在进行渲染可以看到如下图所示的效果:
渲染后的效果
2、Scatter参数实现“泼溅”纹理
是不是感觉和开始的效果没什么区别,下面我们就开始逐一调整参数,首先调整Scatter(关于这些参数的具体含义,请参阅本小节后面的“背景知识”),单击Scatter通道后面的小按钮,从弹出的材质/贴图浏览器中选择选择Splat。Splat是一种非常简单的程序贴图,其作用就是产生“泼溅”纹理,由于我们在Scatter通道中使用这种贴图,将会形成一定的立体效果,类似翡翠中的杂质。注意,Scatter通道中既可以使用默认的颜色,这样可以得到比较纯净的质感,也可以单击后面的贴图按钮贴入贴图来得到含有杂质的质感。
泼溅纹理
Scatter贴图设置好之后,渲染一下可以看到大致如下的效果:
效果
作者:
funsky
时间:
2006-3-13 02:36 PM
作者: 陈孝强 原创
上次我们介绍了3Ds MAX中的“子面散射”(SubSurface Scattering,简称SSS)的效果和原理,这种现象是由于材质内部散射光线的作用而形成的,即当光线进入之后在物体内部不断折射而形成的效果。这一节我们以前面的“琉璃”制作过程为例,来看看在Mental Ray材质库中实现SSS的基本方法。
主要有三个步骤:
一、使用Mental Ray渲染器和材质的选择
二、Parti Volume贴图
三、Parti Volume Photon贴图
今天我们介绍“子面散射”(SubSurface Scattering,简称SSS)效果实现的第三步:
Parti Volume Photon贴图。
图1
仍然在mental ray Connection卷展栏中,单击Photon Volume通道后面的按钮,从材质/贴图浏览器中选择Parti Volume Photon(physics)贴图,
图2
利用该贴图的默认设置直接进行渲染可以得到这样的效果:
extinction(光子)=0.001
可以看到效果略有改进,但是仍然非常不明显,继续提高extinction的大小
extinction(光子)=0.01
extinction(光子)=1.5
这时的渲染效果已经非常“出格”了,原因并非extincetion参数太大,而是当前这个光子贴图的mode设置有问题,下面我们调整一下。
作者:
funsky
时间:
2006-3-13 02:36 PM
我们将其设置为2(设置为2时,模型不再是整个都散射光线,只有一层具有子面散射特性),然后再次渲染可以得到这样的效果:
extinction(光子)=1.5 mode(光子)=2
现在的问题是,光子的消散距离太短,都在模型内部消散了,这样就会使模型内部亮度过高,因此需要增加max_step_len(注意不要将这个参数和前面Parti Volume贴图中的同名参数混淆,它们的作用是不同的),我们将max_step_len增加为20,再次渲染可以得到如下的效果。
extinction(光子)=1.5
mode(光子)=2
max_step_len(光子)=20
这里要强调一下,SSS材质的渲染效果是和模型尺寸相关的,在max_step_len设置值上表现得尤其明显,在本文介绍的例子中,模型的最大的宽度是20,因此我们这里设置max_step_len为20。在你自己实际使用中可以根据情况进行类似的设置,当然不必死板,可以根据模型的尺寸上下浮动。
背景知识:Parti Volume贴图的参数
mode:当mode参数被设置为0时,整个模型都是“参与介质”,当mode设置为大于0的值时,下面的height参数将会起作用,模型只有一部分是“参与介质”,也就是材质只有一定的厚度的一部分参与光线的散射。
scatter:scatter参数设置材质将对那种颜色的光线进行散射,这个颜色就是模型“体”所显示出来的颜色。
extinction:extinction是介质的“消散系数”,它用来决定光线(光子)进入模型内部之后有多少被吸收,有多少被散射。这个参数设置为0时,相当于光线在在清洁的空气或者真空中传递,这个参数越大,材质的密度越大,光线越难透过(因为光子被散射掉的量比较大)。
r、g1和g2:这三个参数乍一看有点让人感到莫名其妙,不过他们却提供了对材质的散射效果的更加细致的控制。如果g1和g2都设置为0,则光线进入材质内部后进行“同性散射”,也就是说,光子碰到材质的微粒后,可能会向任何方向散射出去。这里插一句,只有材质内部的颗粒半径和光子半径相接近时,散射现象才可能出现。g1和g2设置为不等于0的值,光子将会作“异性散射”,-1
nonuniform:这个参数决定材质是同质的,还是异质的,如果设置为0,表明材质是完全同质的,也就是密度均匀,光线的散射也比较均匀;如果设置为1,材质是完全异质,光线的散射会有较大的变化,渲染出来的效果会显得材质中“杂质”比较多;当然也可以将这个参数设置为0到1之间的值。
height:决定参与光线散射的模型的厚度。从这个参数的存在,我们也能感觉到SSS材质不再像许多其他材质那样可以“一次设计,任意移植”,SSS材质的参数设置和模型的尺寸形状是有密切关系的,通常我们并不能直接将别人设计好的SSS材质拿过来直接使用,而是要根据自己的模型修改一些参数,比如这里的Height就是其一。注意,如果最开始的mode参数设置为0,height参数是没有效果的。
min_step_len和 max_step_len:这两个参数决定光子在异质材质内部散射时的最小步长和最大步长。
小结
SSS材质可以说是最复杂的材质了,在很多场合中,要想达到逼真的渲染效果,经常要使用SSS材质。此类材质的效果是比较难控制的,参数也比较多,含义不像其他材质那么容易明白,但是一般只要抓住extinction、scatter和max_step_len就可以制作比较好的效果。
另外如果你在实际操作中没有实现文中介绍的效果,首先请检查一下模型的尺寸和材质的参数设置,其次检查一下光源的设置。检查光源设置时考虑两个因素,一是光源的强度要恰当,二是尽量不要使用漫反射光源(Omni),因为这种光源会浪费很多光子(也就是很多光子没有照射到模型上,渲染器必须对其进行计算,但是又不会得到任何效果),不但会导致渲染速度下降,而且会影响最终的效果。
作者:
xmenkk
时间:
2006-8-21 11:01 PM
知道了,顶楼主
欢迎光临 梦游时光互联 (http://web.meyu.net/)
Powered by Discuz! 4.0.0