hypeshader讲解理论2.docx
《hypeshader讲解理论2.docx》由会员分享,可在线阅读,更多相关《hypeshader讲解理论2.docx(19页珍藏版)》请在冰豆网上搜索。
hypeshader讲解理论2
1.SpecialEffects特殊属性
这里所指的特殊属性实际上就是就是我们经常提到Glow光,它会在渲染之后自动添加一个Glow的效果。
表面上我们会认为它的参数只有这么一点,但实际上我们需要调节更多属性的话,我们可以通过Hypershade中的ShaderGlow来控制Glow的颜色、强度等等更多参数。
我们先来看看了解自身的这两个参数。
图3.1.2-01
HideSource:
是个开关,可以控制是否隐藏物体。
下图是隐藏模型只有Glow效果。
图3.1.2-02
GlowIntensity:
是控制Glow的强弱的。
仅仅这几个参数是不够的,我们来介绍另外一部分可以控制Glow属性的ShaderGlow的
GlowAttribute属性,这个参数是一个整体控制的参数。
图3.1.2-03
我们双击ShaderGlow可以弹出如下的面板
图3.1.2-04
GlowColor:
是控制Glow光的颜色的
GlowIntensity:
是控制Glow的强弱的
GlowSpread:
是控制Glow的扩张的
GlowEccentricity:
是控制Glow的大小的
GlowRadialNoise和GlowStarLevel:
是控制Glow的形状的。
可以呈现十字的星状。
GlowOpacity:
是控制Glow的不透明度
GlowRingIntensity:
指的是光环的强弱,实际上就是控制光晕的强弱
GlowRingFrequency:
是指光环的的频率,控制的是光晕的大小
GlowFilterWidth:
指的是像模糊一样的滤镜的模糊范围.
注意:
ShaderGlow实际上是整体控制Glow的参数,如果改变了ShaderGlow的参数那麽其他Glow的属性将会全部遵循这个变换的参数,直到我们的下一次调整。
我们来试着做一下霓虹灯效果。
建立霓虹灯管
创建一个SurfaceShader材质。
设置OutColor为泡泡糖粉红色。
设置OutGlowColor为深红色。
把材质赋给字体。
看一看最终的效果。
图3.1.2-05
2.MatteOptions不透明遮罩
这个选项在合成中的用处很大,它让你对每一种材质渲染出来的alpha值进行控制。
尤其是在分层渲染的时候。
图3.1.2-06
MatteOpacityMode共有三种模式分别是:
OpacityGain、SolidMatte、BlackHole
OpacityGain:
这是MatteOpacity的缺省模式,先计算出alpha值,然后用MatteOpacity乘与它。
因为MatteOpacity的缺省值是1,0,渲染出来的alpha值不会改变(1.0*x=x)
其公式是:
物体的遮罩参数=渲染后遮罩数值*MatteOpacity。
可以通过调整MatteOpacity值来获得下列效果:
a.对MatteOpacity的值做动画。
当在0—1时,在合成的时候就可以做出淡入的效果;当在1—0时,是淡出的效果。
b.给MatteOpacity加贴图,特别是动画的贴图,或者图片序列,可以产生有趣的合成效果。
SolidMatte:
当MatteOpacity使用SolidMatte模式时,会使用MatteOpacity的设置,而忽略计算出来的alpha值,整个物体的透明度设为MatteOpacity属性的值。
如果你需要物体具有特定的alpha值,这就十分有用。
它可以得到一个固定的遮罩数值。
其公式是:
物体的遮罩数值=MatteOpacity
例如,你有一个透明的物体,渲染出来的alpha指通常就是0,SolidMatte可以用来为透明物体设一个不是0的alpha值,如果你要渲染一个透过窗口的视图,希望合成到另外一个场景里面,用SolidMatte模式把窗口材质的MatteOpacity值设为1.0就可以做到这一点。
BlackHole:
在解决合成的问题上,BlackHole模式就十分有用,这个模式把RBGA设为(0,0,0,0),为了使物体正确的组合起来,BlackHole在最终的渲染图片中挖去了一些区域。
这里先要给大家提一种新的概念,就是分层渲染,什么是分层渲染呢?
就是我们将制作的场景文件按照合成的要求,将场景的中的物体分别放置在不同的层,然后通过层渲染(在RenderGlobals可以设定,详细请看在RenderGlobals的设定)将文件一一渲染出来,然后导入后期的软件(比如Shake、Combustion、Dfusion、Aftereffect等合成软件),将它们逐个合并起来。
这样做的好处就是可以场景的每一部分分别进行调整(包括比例、校色、复制、特效的添加等)。
头盔衬垫护目镜合成后的文件
图3.1.2-07
如果我们对后期软件有所了解的话,我们知道刚才提到的那些合成软件都是一种二维的合成软件,换句话说在我们通过层的形式叠加的时候,只有两种结果要么A在B的前面,要么B在A的前面(假设我们这里有两层分别是A和B)。
但是在三维中就不止这两种结果。
我们分层渲染的图像如下
图3.1.2-08
B图和C图的Alpha通道的图像
我们看到了上图,我们可以试验一下在后期软件中如果直接将A图+B图+C图(包括我们看到的B、C的Alpha通道)能不能等于D图的状态,经过试验后我们的答案是不可以的。
这是合成后的效果。
(此处本人所使用的合成软件是Shake)
图3.1.2-09
发现这并不是我们所需要的效果,这就需要我们在分层渲染的时候从新做设定。
如何才能处理呢?
我们其实就可用到BlackHole的这个选项。
图3.1.2-10
操作如下:
首先我们先将图片中的的背景和罐子也就是(图片A和B)先渲染出来,然后再将木槌和罐子重新放在新的层中,将罐子的材质的MatteOpacity属性的MatteOpacityMode设定为BlackHole,然后再渲染,就可以了!
这时我们来观看一下渲染合成后的效果。
我们可以得出A+B+C=D的结论了。
图3.1.2-11
B图和C图的Alpha通道的图像
3.RaytraceOptions光线追踪
是一个开关属性,打开此开关才可以有光线追踪的效果,当然同时还要打开Ren_der Global Setting\MayaSoftware\RaytracingQuality\Raytracing打开(这个选项就是一个总的开关,只有此选项打开,所有的光影追踪的属性才能生效)
图3.1.2-12
1).RefractiveIndex:
折射率。
指的是光线穿过透明物体时被弯曲的程度。
(是光线的一种介质进入另一种介质时发生,如空气进入玻璃,离开水进入空气。
折射率和两种介质有关)。
当射率为1时不弯曲,常见物体的折射率如下:
a.空气/空气1;
b.空气/水1.33;
c.空气/玻璃1.44;
d.空气/石英1.55;
e.空气/晶体2.00;
f.空气/钻石2.42
2).RefractionLimit
光线被折射的最大次数,计算机低于六次就不计算折射了,一般就是6次,次数越多,运算速度就越慢,钻石折射次数一般算为12。
如果RefractionLimit=10,则表示该表面折射的光线在之前已经过了9道折射或反射。
该表面不折射前面已经过了10次或更多次折射或反射的光。
它的取值为0~无穷,滑杆的值为0~10,缺省值为6。
图3.1.2-13
3).LightAbsorbance:
光的吸收率。
此值越大,对光线的吸收就越强,导致物体的反射和折射下降。
4).SurfaceThickness:
表面厚度。
实际上是指介质的厚度,通过此项的调节,可以影响折射的范围。
一般来说可以将一个面片渲染成一个有厚度的物体。
5).ShadowAttenuation:
阴影衰减。
是通过折射范围的不同而导致阴影范围的大小控制。
6).ChromaticAberration:
彩色相差。
它是一个开关选项。
光线在穿过透明物体的表面时,在不同的折射角度下会产生出不同光波的光线,。
效果很像三棱镜的效果。
图3.1.2-14
7).ReflectionLimit:
光线被反射的最大次数,同折射限。
如果ReflectionLimit=10,则表示该表面反射的光线在之前已经过了9道反射。
该表面不反射前面已经过了10次或更多次反射的光。
它的取值为0至无穷,滑杆的值为0—10,缺省值为1。
8).ReflectionSpecularity:
此属性用于Phong、phongE、Blinn、Anisotropic材质。
此值是减少由于光线跟踪而产生的很细小高光的抗锯齿效果的,把此值设置成1是它的默认设置而且也是最好的效果。
它对高光的控制有着很大的贡献。
(它只对有高光的Shader产生效果)
5.ExtraAttributes其它属性
可以自行添加出Shader以外的属性,便于我们对材质的控制。
主要用来驱动关键帧和粒子属性的添加。
其中主要分为AttributeName(属性名称)、DataType(数据类型)、NumbericAttributeProperties(数字属性的范围)
可以通过材质的属性编辑器选择Attribute\AddAttribute
图3.1.2-15
AttributeName:
可以创建一个属性的名称(不能输入中文及数字)
DataType:
共有六种数据类型分别是
a.Vector(矢量类型):
它可以出现X、Y、Z世界坐标系的形式
b.Float(浮点类型):
它可以出现一个Slider(滑条),它可以以小数形式进行精确控制
c.Integer(整数类型):
同样也是一个滑条,但是只能够以整数形式控制。
如1、2、3
d.Boolean(布尔形式):
可以出现一个ON/OFF按钮
e.String(字符串形式):
可以在提示符后输入数字或名称
f.Enum(全称enumerated,列举形式):
可以出现一个下拉菜单,可以在EnumNames(列举名称)中添加我们所需要的名称,如Green、Blue、Red等
NumericAttributeProperties:
可以输入最大值,最小值,及默认值,如果不输入任何值,将认为其范围是正无穷到负无穷。
6.特殊Shader
标准材质的属性我们先介绍到这里,我们还要给大家介绍一下特殊材质,这里包括ShadingMap、SurfaceShader、LayeredShader、UseBackground。
1).ShadingMap
给表面添加一个颜色,通常应用于非现实或卡通、阴影效果。
图3.1.2-16
Color:
它同其他的属性不大一样,没有滑条控制。
它可以和另外一个Shader相关连,从而可以继承另一个Shader的属性
ShadingMapColor:
就是指贴图的颜色,可以根据此值来控制我们刚刚介绍的Shader的属性,看起来参数很简单只有两个,但是如果在Color的属性中和另外一个Shader相关联后那么ShadingMap的属性就不止这么简单了。
2).卡通材质效果
用一个BilnnShader连接在ShadingMap中的Col_or的属性上,然后用一个Ramp贴图连接在它的ShadingMapColor上。
让我们来看一下它的节点网络图。
图3.1.2-17
我们将Blinn的属性进行调整,我们会发现连接在ShadingMapColor会因此受到影响,如果我们相出现透明的ShadingMap的时侯,我们可以调整Bilnn的Transparency的属性。
此时我们会发现ShadingMap变透。
在二维卡通的效果里渐变的过渡都不是很平滑,这里我们再将Ramp的Interpolation选项将Linear改为None,然后再将渐变的颜色尽量设定为一个色系。
图3.1.2-18
5)..SurfaceShader
给材质节点赋以颜色,效果与shading map差不多,但是它除了颜色以外,还有透明度,辉光度还有光洁度。
所以在目前的卡通材质的节点里,选择Surface Shader比较多,可能是它的控制要比ShadingMap的控制多一些的缘故吧!
图3.1.2-19
OutColor:
指的是SurfaceShader的颜色控制。
OutTransparency:
控制的是SurfaceShader的透明属性
OutGlowColor:
可以出现二维的发光效果
OutMatteOpacity:
可以控制图像的Alpha通道的灰度值,默认情况为白色,此时渲染出的Alpha通道是纯白色,降低此值即灰度值,Alpha通道为灰度。
图3.1.2-20
还记得我们用ShadingMap做的卡通材质,现在我们同样根据这种思路也使用一个Shader(这里我们用的是Phong)来控制一个Ramp(此Ramp的控制和之前提到过的ShadingMap的控制相同),再将Ramp连接到SurfaceShader的Color上(具体用法我们回在后面介绍到Utilities的时候给大家做一详细介绍),至于透明我们调节SurfaceShader的OutTransparency的属性就可以了。
其结果看起来ShadingMap的卡通效果很相似(除了颜色)。
图3.1.2-21
6).LayeredShader
它可以将两个或两个以上的材质或者贴图合成在一起。
每一层都具有其自己的属性,每种材质都可以单独设计,然后连接到分层底纹上。
上层的透明度可以调整或者建立贴图,显示出下层的某个部分。
在层材质中,白色的区域是完全透明的,黑色区域是完全不透明的。
可以形成很多很有个性化的Shader。
下图中用红线框圈起来的那部分区域就是Layer的工作区域,我们可以这区域可以通过鼠标的中键将Shader拖放进来,也可以通过右键点击然后通过属性来进行连接,层的位置移动都是通过鼠标中键来进行操作的。
图3.1.2-22
Color:
可以直接连接一个Shader或是一个Texture
Transparency:
调节此层中的透明属性。
这与直接调节Shader的属性中的透明有着本质的区别。
为了说明其中的区别,我们用一个BilnnShader来说明。
我们现将Bilnn拖放到层的工作区域中。
这时中调节透明,是调节Bilnn材质全部属性的透明(如color、Incandescence、Specularcolor等属性)。
现在我们打开Bilnn材质的属性来调节Transparency的滑条,此值就只控制Bilnn中Transparency属性,它是唯一的。
CompostingFlag:
包括LayerShaders、LayerTexture两种
a.LayerShaders是将贴图和Shader的属性一起作运算
b.LayerTexture指运算贴图而不运算Shader
通过LayerShader形成了一个非常有性格的Shader。
图3.1.2-23
说明:
在Maya中LayerTexture和LayerShader看起来很相似,而且有时在用法上经常会使我们混乱。
其实它们有着本质的区别,前者形成的是纹理,将纹理赋予一个Shader,然后将Shader在给与模型。
而后者便可以直接赋予模型。
LayerTextyre:
它与材质无关,操作起来更直接,而且有更多中合成的方式,其方式与Photoshop软件中层与层的叠加方式很相似,主要是颜色的运算,而且还提供了Alpha通道,以便进行遮色及图像的屏蔽。
如下图所显示的图像,假设前面一层为前景,后面的那一层为背景。
图3.1.2-24
BlendModel:
那么在以下的模式里:
黑=0;白=1
None:
就是前景的颜色,与背景无关
Over:
是Maya默认的属性,前景纹理叠加在背景上,但是保留背景的高光和阴影部分,前景的Alpha决定贴图的形状。
In:
背景纹理背剪切成前景的Alpha的形状。
Out:
与In相反,前景Alpha根据背景的形状背裁切。
Add:
前景颜色+背景颜色,一般情况下可以使图像变得更亮
Subtract:
背景颜色减去前景颜色,此时要考虑好前后关系,如果遇到黑色减去白色,最终结果还是黑色,换言之0-1=0,而不等于-1。
Multiply:
背景色*前景色,一般情况下可以使图像变暗,如果前景或背景有一个为黑色的话,那么最终的结果也是黑色,因为0乘以任何值都等于0。
若任何非黑色的颜色与白色相乘那么结果不变。
Difference:
实际上是计算前景与背景的补色关系
Lighten:
选择前景和背景中颜色较亮的部分作为最终结果
Darken:
选择前景和背景中颜色较暗的部分作为最终结果
Aturate:
是使用被景色的明度、色调及背景色的饱和度作为最终结果。
无饱和度(指灰色)时为背景色。
Desaturate:
背景有降低前景饱和度的作用,并用此结果形成最终效果。
Illuminate:
使用前景色的色调、饱和度及背景色的明度作为最终结果。
我们可以通过实践,来获得出更多效果,便于我们纹理的绘制。
7).Use Backgroud
有Specular和Reflectivity两个变量,用来作光影追踪,可用来进行合成渲染。
它的工作原理是可以用来接收阴影和折射,本身是渲染不出来的。
运用此种方法可用很少的时间制作出很棒的效果。
图3.1.2-25
SpecularColor:
控制的是UseBackground所反射出的图像的高光部分的强弱。
Reflectivity:
控制的是UseBackground的反射率,此值越大,反射出的图像就越清除。
ReflectionLimit:
反射限,其实指的就是反射次数,值越大,反射的次数就越多。
ShadowMask:
控制阴影的强弱,值为0时不能透射出阴影,为1时可透射出纯黑色的阴影,0—1之间可以形成有灰度的阴影。
7.真实场景与三维的合成渲染
你还可以用UseBackgroundShader使3D物体看上去好像是真实图片的一部分。
例如,把汽车的模型放到道路的背景镜头里,你可以按照下面的步骤做:
做一个类似的场景。
用道路的图片建立一个ImagePlane。
建立一个跟道路透视跟形状匹配的surface(替代物体)。
给道路的物体赋UseBackgroundShader。
把汽车模型放到道路的物体上。
把照到汽车上的灯的阴影打开。
渲染场景,替代物体获得阴影,好像汽车模型真的是图片的一部分似的。
图3.1.2-26
提示:
相同的方法还可以用来把ImagePlane里面的2D图片做成好像是3D场景的一部分,同样使用替代物体技术,把UseBackground赋到替代物体上,替代物体得到了场景里面其它物体的阴影和光线追踪反射,其效果很逼真。
现在我们可能会想一个问题,如果背景的图像是一个一个连续的镜头拍摄出的动画,我们想通过三维软件来实现运动匹配的话那么实际上就不是那么容易了,我们可以借助Mayalive来实现,也可以第三方软件如:
MatchMover、boujou等来算出相机的运动轨迹,然后通过自身的供能导出一个Maya的.ma或.mb的文件,然后再Maya中进行合成。
效果也是很不错的。