Maya材質(zhì)教程
Maya材質(zhì)教程:MAYA材質(zhì)系統(tǒng)的Utilities工具簡介
編輯:Penny來源:發(fā)布時間:2010-06-28
01顏色工具節(jié)點(diǎn)
Blend Colors
Blend Colors節(jié)點(diǎn)混合Color1和Color2的顏色,它根據(jù)Blender參數(shù)控制混合的程度。
Blender參數(shù)的值的范圍是0——1。
當(dāng)Blender=1時,輸出Color1;
當(dāng)Blender=0時,輸出Color2。
Blend Colors節(jié)點(diǎn)的工作原理如下:
Output = Color1*Blender + Color2 * (1 - Blender)
比如我們可以利用Blend Colors節(jié)點(diǎn)在紋理上加一行字,
Color1是文字紋理
Color2是背景紋理。
而Blender參數(shù)由文字紋理的Alpha通道連接。
如圖:另:圖片是Luis幻想畫中的那個著名的女孩兒。
02Clamp
Clamp節(jié)點(diǎn)用來將某一顏色值保持在指定的范圍內(nèi)。
Clamp節(jié)點(diǎn)的運(yùn)算方法可以從下面這個例子來理解。
假設(shè)Clamp節(jié)點(diǎn)的InputR被連接,我們設(shè)置
MinR=0.3,MaxR=0.6
那么Clamp節(jié)點(diǎn)的輸出為:
InputR: 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
OutputR: 0.3 0.3 0.3 0.4 0.5 0.6 0.6 0.6 0.6
Contrast
Contrast節(jié)點(diǎn)可以改變紋理的對比。參數(shù)的解釋如下:
Value
Color或者Texture的輸入口;
Contrast
調(diào)整對比的程度,可以單獨(dú)調(diào)整R、G、B通道。
Bias
Bias參數(shù)的值也可以單獨(dú)調(diào)節(jié)R、G、B通道,Bias參數(shù)可以理解成中間色,
當(dāng)Contrast增加時,Bias參數(shù)增加圖像將會變暗。
Gamma Correction
Gamma Correction節(jié)點(diǎn)可以校正Color或Texture的伽瑪值。
Clamp節(jié)點(diǎn)用來將某一顏色值保持在指定的范圍內(nèi)。
Clamp節(jié)點(diǎn)的運(yùn)算方法可以從下面這個例子來理解。
假設(shè)Clamp節(jié)點(diǎn)的InputR被連接,我們設(shè)置
MinR=0.3,MaxR=0.6
那么Clamp節(jié)點(diǎn)的輸出為:
InputR: 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
OutputR: 0.3 0.3 0.3 0.4 0.5 0.6 0.6 0.6 0.6
Contrast
Contrast節(jié)點(diǎn)可以改變紋理的對比。參數(shù)的解釋如下:
Value
Color或者Texture的輸入口;
Contrast
調(diào)整對比的程度,可以單獨(dú)調(diào)整R、G、B通道。
Bias
Bias參數(shù)的值也可以單獨(dú)調(diào)節(jié)R、G、B通道,Bias參數(shù)可以理解成中間色,
當(dāng)Contrast增加時,Bias參數(shù)增加圖像將會變暗。
Gamma Correction
Gamma Correction節(jié)點(diǎn)可以校正Color或Texture的伽瑪值。
Hsv To Rgb和Rgb To Hsv
一看就明白,在HSV模式和RGB模式之間轉(zhuǎn)換。
那么這兩個節(jié)點(diǎn)有什么用?
下面用一個極為常用的鉻金屬材質(zhì)來解釋一下。
創(chuàng)建一球體然后指定一Blinn材質(zhì),Blinn的主要參數(shù)設(shè)置為:
Color為黑色;
Diffuse=0;
Eccentricity=0.025;
Specular Roll Off=1;
Specular Color為白色;
Reflectivity=1。
創(chuàng)建一EnvBall環(huán)境節(jié)點(diǎn);
創(chuàng)建一Ramp節(jié)點(diǎn);
創(chuàng)建一rgbTohsv節(jié)點(diǎn);
再創(chuàng)建一file紋理節(jié)點(diǎn),然后指定一反射貼圖。
節(jié)點(diǎn)連接情況如下:
File.outColor輸出到rgbTohsv .inRgb;
rgbTohsv.outHsvH輸出到Ramp..uCoord;
rgbTohsv.outHsvV輸出到Ramp..vCoord;
Ramp.outColor輸出到envBall.imgae;
envBall.outColor輸出到Blinn.Reflected Color。
Ramp的顏色設(shè)置如圖,最后渲染場景。
一看就明白,在HSV模式和RGB模式之間轉(zhuǎn)換。
那么這兩個節(jié)點(diǎn)有什么用?
下面用一個極為常用的鉻金屬材質(zhì)來解釋一下。
創(chuàng)建一球體然后指定一Blinn材質(zhì),Blinn的主要參數(shù)設(shè)置為:
Color為黑色;
Diffuse=0;
Eccentricity=0.025;
Specular Roll Off=1;
Specular Color為白色;
Reflectivity=1。
創(chuàng)建一EnvBall環(huán)境節(jié)點(diǎn);
創(chuàng)建一Ramp節(jié)點(diǎn);
創(chuàng)建一rgbTohsv節(jié)點(diǎn);
再創(chuàng)建一file紋理節(jié)點(diǎn),然后指定一反射貼圖。
節(jié)點(diǎn)連接情況如下:
File.outColor輸出到rgbTohsv .inRgb;
rgbTohsv.outHsvH輸出到Ramp..uCoord;
rgbTohsv.outHsvV輸出到Ramp..vCoord;
Ramp.outColor輸出到envBall.imgae;
envBall.outColor輸出到Blinn.Reflected Color。
Ramp的顏色設(shè)置如圖,最后渲染場景。
03Luminance
Luminance節(jié)點(diǎn)將顏色轉(zhuǎn)換為灰度。
下面的例子解釋Luminance節(jié)點(diǎn)的作用。
建一球體并指定一Blinn材質(zhì)。
建一Luminance節(jié)點(diǎn);
建一bump2d節(jié)點(diǎn);
建一grid節(jié)點(diǎn);
建一fractal節(jié)點(diǎn)。
連接方法如下:
fractal.outColor到grid.fillerColor;
grid.outColor到luminance..value;
luminance.outValue到bump2d.bumpValue;
bump2d.outNormal到Blinn.normalCamera。
因?yàn)間rid的outColor不傳遞fractal的顏色,
所以應(yīng)該將fractal的顏色和grid的顏色通過luminance
節(jié)點(diǎn)轉(zhuǎn)為灰度,再送入bump2d節(jié)點(diǎn)。
效果如圖:
Luminance節(jié)點(diǎn)將顏色轉(zhuǎn)換為灰度。
下面的例子解釋Luminance節(jié)點(diǎn)的作用。
建一球體并指定一Blinn材質(zhì)。
建一Luminance節(jié)點(diǎn);
建一bump2d節(jié)點(diǎn);
建一grid節(jié)點(diǎn);
建一fractal節(jié)點(diǎn)。
連接方法如下:
fractal.outColor到grid.fillerColor;
grid.outColor到luminance..value;
luminance.outValue到bump2d.bumpValue;
bump2d.outNormal到Blinn.normalCamera。
因?yàn)間rid的outColor不傳遞fractal的顏色,
所以應(yīng)該將fractal的顏色和grid的顏色通過luminance
節(jié)點(diǎn)轉(zhuǎn)為灰度,再送入bump2d節(jié)點(diǎn)。
效果如圖:
04深入了解Hsv To Rgb和Rgb To Hsv
有朋友捎話說有上面那個Hsv To Rgb和Rgb To Hsv節(jié)點(diǎn)工具節(jié)點(diǎn)講得不是很清楚。
下面我選擇一個小例子,可以更清楚地理解Hsv To Rgb和Rgb To Hsv節(jié)點(diǎn)的用途。
以后的教程我也許會用更多的實(shí)例深入理解一下MAYA的這些工具。
這個樣例的目的是設(shè)計(jì)一個材質(zhì),并且我們可以用HSV方式隨意控制最后的渲染效果。
首先做一Plane然后指定一lambert材質(zhì)。
建一file紋理;
建一Rgb To Hsv節(jié)點(diǎn);
建一Hsv To Rgb節(jié)點(diǎn);
建一setRange節(jié)點(diǎn)
材質(zhì)的連接方法如下:
file.outColor到rgbToHsv.inRgb;
RgbToHsv.outHsv到setRange.Max;
setRange.outValue到hsvToRgb.inHsv;
hsvToRgb.outRgb到lambert.Color
有朋友捎話說有上面那個Hsv To Rgb和Rgb To Hsv節(jié)點(diǎn)工具節(jié)點(diǎn)講得不是很清楚。
下面我選擇一個小例子,可以更清楚地理解Hsv To Rgb和Rgb To Hsv節(jié)點(diǎn)的用途。
以后的教程我也許會用更多的實(shí)例深入理解一下MAYA的這些工具。
這個樣例的目的是設(shè)計(jì)一個材質(zhì),并且我們可以用HSV方式隨意控制最后的渲染效果。
首先做一Plane然后指定一lambert材質(zhì)。
建一file紋理;
建一Rgb To Hsv節(jié)點(diǎn);
建一Hsv To Rgb節(jié)點(diǎn);
建一setRange節(jié)點(diǎn)
材質(zhì)的連接方法如下:
file.outColor到rgbToHsv.inRgb;
RgbToHsv.outHsv到setRange.Max;
setRange.outValue到hsvToRgb.inHsv;
hsvToRgb.outRgb到lambert.Color
給lambert材質(zhì)添加三個自定義屬性:
Hue:最小值=0、最大值=255、缺省值=128,float;
Saturation:最小值=0、最大值=255、缺省值=128,float;
Value:最小值=0、最大值=255、缺省值=128,float;
然后將Hue、Saturation、Value分別連接到setRange的ValueX、ValueY、ValueZ上。
將setRange的OldMaxX、OldMaxY、OldMaxZ都設(shè)置為255,OldMin和Min都為0。
用IPR渲染場景,你會發(fā)現(xiàn),我們隨意更改Hue、Saturation、Value的值就可以改變
貼圖的色相、飽和度和亮度。
解釋一下這個材質(zhì)的實(shí)現(xiàn)原理:
通過前面的教程我們知道,Set Range節(jié)點(diǎn)是將Old Min到Old Max范圍之間的值,重新
映射到Min到Max的范圍內(nèi)。三個通道分別代表著R、G、B。
將file.outColor通過rgbToHsv節(jié)點(diǎn)轉(zhuǎn)換為H、S、V模式,然后送入setRange節(jié)點(diǎn)里,
這時,setRange節(jié)點(diǎn)的通道從左到右就等于代表H、S、V。所以我們用lambert材質(zhì)的
三個自定義屬性分別控制setRange節(jié)點(diǎn)的Value值,就可以改變最后渲染結(jié)果的H、S、V。
因?yàn)閘ambert.Color要接受RGB模式的顏色,所以我們又通過hsvToRgb節(jié)點(diǎn)將已經(jīng)變?yōu)镠SV模式
的顏色轉(zhuǎn)換為RGB模式的顏色。
MAYA材質(zhì)系統(tǒng)確實(shí)具有極大的靈活性,在MAYA中,現(xiàn)成的東西不是太多,但它給我們提供了
思想、工具、空間并指明了道路。古人說過,“受之以魚不如授之以漁”,我以為MAYA正象
一位導(dǎo)師,教我們方法而不是替我們寫作業(yè)。
材質(zhì)的連接方式如圖:
Hue:最小值=0、最大值=255、缺省值=128,float;
Saturation:最小值=0、最大值=255、缺省值=128,float;
Value:最小值=0、最大值=255、缺省值=128,float;
然后將Hue、Saturation、Value分別連接到setRange的ValueX、ValueY、ValueZ上。
將setRange的OldMaxX、OldMaxY、OldMaxZ都設(shè)置為255,OldMin和Min都為0。
用IPR渲染場景,你會發(fā)現(xiàn),我們隨意更改Hue、Saturation、Value的值就可以改變
貼圖的色相、飽和度和亮度。
解釋一下這個材質(zhì)的實(shí)現(xiàn)原理:
通過前面的教程我們知道,Set Range節(jié)點(diǎn)是將Old Min到Old Max范圍之間的值,重新
映射到Min到Max的范圍內(nèi)。三個通道分別代表著R、G、B。
將file.outColor通過rgbToHsv節(jié)點(diǎn)轉(zhuǎn)換為H、S、V模式,然后送入setRange節(jié)點(diǎn)里,
這時,setRange節(jié)點(diǎn)的通道從左到右就等于代表H、S、V。所以我們用lambert材質(zhì)的
三個自定義屬性分別控制setRange節(jié)點(diǎn)的Value值,就可以改變最后渲染結(jié)果的H、S、V。
因?yàn)閘ambert.Color要接受RGB模式的顏色,所以我們又通過hsvToRgb節(jié)點(diǎn)將已經(jīng)變?yōu)镠SV模式
的顏色轉(zhuǎn)換為RGB模式的顏色。
MAYA材質(zhì)系統(tǒng)確實(shí)具有極大的靈活性,在MAYA中,現(xiàn)成的東西不是太多,但它給我們提供了
思想、工具、空間并指明了道路。古人說過,“受之以魚不如授之以漁”,我以為MAYA正象
一位導(dǎo)師,教我們方法而不是替我們寫作業(yè)。
材質(zhì)的連接方式如圖:
05:Hue=128;Saturation=128;Value=255。
這是貼圖按原來顏色正常渲染。
這是貼圖按原來顏色正常渲染。
06Hue=0;Saturation=128;Value=255。
07 Hue=255;Saturation=128;Value=255。
08深入了解vectorProduct節(jié)點(diǎn)
這是從國外網(wǎng)站下載的一個材質(zhì),設(shè)計(jì)得極為精巧,是用來模擬全局光效果的,我稍微添加了一點(diǎn)兒內(nèi)容。
建一球體并指定一lambert材質(zhì),在相機(jī)的左側(cè)面打一方向光。
建兩個vectorProduct節(jié)點(diǎn);
建一setRange節(jié)點(diǎn);
建一ramp節(jié)點(diǎn)。
建一sampleInfo節(jié)點(diǎn)。
連接方式如下:
sampleInfo.normalCamera到vectorProduct1.input1;
vectorProduct1.output到vectorProduct2.input1;
vectorProduct2.output到setRange.value;
setRange.outValueX到ramp.vCoord;
setRange.outValueZ到ramp.uCoord;
ramp.outColor到lambert.ambientColor
設(shè)置方式如下:
vectorProduct1的操作方式為Vector Matrix Product;
vectorProduct2的操作方式為Dot Product;
setRange的Max、OldMax都設(shè)為1;
給lambert添加三個自定義屬性:
X//_Light:最小值為-1、最大值為1、缺省值為0;
Y//_Light:最小值為-1、最大值為1、缺省值為0;
Z//_Light:最小值為-1、最大值為1、缺省值為0;
lambert的自定義屬性連接方式如下:
lambert. X//_Light到vectorProduct2.input2X;
lambert. Y//_Light到vectorProduct2.input2Y;
lambert. Z//_Light到vectorProduct2.input2Z;
ramp的Color0為白色,Color1為黑色,Color2刪除。
這是從國外網(wǎng)站下載的一個材質(zhì),設(shè)計(jì)得極為精巧,是用來模擬全局光效果的,我稍微添加了一點(diǎn)兒內(nèi)容。
建一球體并指定一lambert材質(zhì),在相機(jī)的左側(cè)面打一方向光。
建兩個vectorProduct節(jié)點(diǎn);
建一setRange節(jié)點(diǎn);
建一ramp節(jié)點(diǎn)。
建一sampleInfo節(jié)點(diǎn)。
連接方式如下:
sampleInfo.normalCamera到vectorProduct1.input1;
vectorProduct1.output到vectorProduct2.input1;
vectorProduct2.output到setRange.value;
setRange.outValueX到ramp.vCoord;
setRange.outValueZ到ramp.uCoord;
ramp.outColor到lambert.ambientColor
設(shè)置方式如下:
vectorProduct1的操作方式為Vector Matrix Product;
vectorProduct2的操作方式為Dot Product;
setRange的Max、OldMax都設(shè)為1;
給lambert添加三個自定義屬性:
X//_Light:最小值為-1、最大值為1、缺省值為0;
Y//_Light:最小值為-1、最大值為1、缺省值為0;
Z//_Light:最小值為-1、最大值為1、缺省值為0;
lambert的自定義屬性連接方式如下:
lambert. X//_Light到vectorProduct2.input2X;
lambert. Y//_Light到vectorProduct2.input2Y;
lambert. Z//_Light到vectorProduct2.input2Z;
ramp的Color0為白色,Color1為黑色,Color2刪除。
09當(dāng)改變X//_Light、Y//_Light、Z//_Light的值時,
就會驅(qū)動vectorProduct2的input2的相應(yīng)參數(shù)。
這時,可以控制場景中的球體任何方向的受光程度。
注意場景中只有左上方一個光源。
建議初學(xué)者認(rèn)真做一下。
就會驅(qū)動vectorProduct2的input2的相應(yīng)參數(shù)。
這時,可以控制場景中的球體任何方向的受光程度。
注意場景中只有左上方一個光源。
建議初學(xué)者認(rèn)真做一下。
更多動畫制作教程,請關(guān)注http://m.podcasthelpdesk.com/。