顏色工具節點
Blend Colors
Blend Colors節點混合Color1和Color2的顏色,它根據Blender參數控製混合的程度。
Blender參數的值的範圍是0——1。
當Blender=1時,輸出Color1;
當Blender=0時,輸出Color2。
Blend Colors節點的工作原理如下:
Output = Color1*Blender + Color2 * (1 - Blender)
比如我們可以利用Blend Colors節點在紋理上加一行字,
Color1是文字紋理
Color2是背景紋理。
而Blender參數由文字紋理的Alpha通道連接。
如圖:
另:圖片是Luis幻想畫中的那個著名的女孩兒。大師的作品被我用來做說明,我感到有點兒不好意思。
Clamp
Clamp節點用來將某一顏色值保持在指定的範圍內。
Clamp節點的運算方法可以從下麵這個例子來理解。
假設Clamp節點的InputR被連接,我們設置
MinR=0.3,MaxR=0.6
那麼Clamp節點的輸出為:
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節點可以改變紋理的對比。參數的解釋如下:
Value
Color或者Texture的輸入口;
Contrast
調整對比的程度,可以單獨調整R、G、B通道。
Bias
Bias參數的值也可以單獨調節R、G、B通道,Bias參數可以理解成中間色,當Contrast增加時,Bias參數增加圖像將會變暗。
Gamma Correction
Gamma Correction節點可以校正Color或Texture的伽瑪值。
Hsv To Rgb和Rgb To Hsv
一看就明白,在HSV模式和RGB模式之間轉換。
那麼這兩個節點有什麼用?
下麵用一個極為常用的鉻金屬材質來解釋一下。
創建一球體然後指定一Blinn材質,Blinn的主要參數設置為:
Color為黑色;
Diffuse=0;
Eccentricity=0.025;
Specular Roll Off=1;
Specular Color為白色;
Reflectivity=1。
創建一EnvBall環境節點;
創建一Ramp節點;
創建一rgbTohsv節點;
再創建一file紋理節點,然後指定一反射貼圖。
節點連接情況如下:
File.outColor輸出到rgbTohsv .inRgb;
rgbTohsv.outHsvH輸出到Ramp..uCoord;
rgbTohsv.outHsvV輸出到Ramp..vCoord;
Ramp.outColor輸出到envBall.imgae;
envBall.outColor輸出到Blinn.Reflected Color。
Ramp的顏色設置如圖,最後渲染場景。
Luminance
Luminance節點將顏色轉換為灰度。
下麵的例子解釋Luminance節點的作用。
建一球體並指定一Blinn材質。
建一Luminance節點;
建一bump2d節點;
建一grid節點;
建一fractal節點。
連接方法如下:
fractal.outColor到grid.fillerColor;
grid.outColor到luminance..value;
luminance.outValue到bump2d.bumpValue;
bump2d.outNormal到Blinn.normalCamera。
因為grid的outColor不傳遞fractal的顏色,所以應該將fractal的顏色和grid的顏色通過luminance節點轉為灰度,再送入bump2d節點。
效果如圖:
深入了解Hsv To Rgb和Rgb To Hsv
有朋友捎話說有上麵那個Hsv To Rgb和Rgb To Hsv節點工具節點講得不是很清楚。
下麵我選擇一個小例子,可以更清楚地理解Hsv To Rgb和Rgb To Hsv節點的用途。以後的教程我也許會用更多的實例深入理解一下MAYA的這些工具。
這個樣例的目的是設計一個材質,並且我們可以用HSV方式隨意控製最後的渲染效果。
首先做一Plane然後指定一lambert材質。
建一file紋理;
建一Rgb To Hsv節點;
建一Hsv To Rgb節點;
建一setRange節點
材質的連接方法如下:
file.outColor到rgbToHsv.inRgb;
RgbToHsv.outHsv到setRange.Max;
setRange.outValue到hsvToRgb.inHsv;
hsvToRgb.outRgb到lambert.Color
給lambert材質添加三個自定義屬性:
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都設置為255,OldMin和Min都為0。
用IPR渲染場景,你會發現,我們隨意更改Hue、Saturation、Value的值就可以改變貼圖的色相、飽和度和亮度。
解釋一下這個材質的實現原理:
通過前麵的教程我們知道,Set Range節點是將Old Min到Old Max範圍之間的值,重新映射到Min到Max的範圍內。三個通道分別代表著R、G、B。
將file.outColor通過rgbToHsv節點轉換為H、S、V模式,然後送入setRange節點裏,這時,setRange節點的通道從左到右就等於代表H、S、V。所以我們用lambert材質的三個自定義屬性分別控製setRange節點的Value值,就可以改變最後渲染結果的H、S、V。
因為lambert.Color要接受RGB模式的顏色,所以我們又通過hsvToRgb節點將已經變為HSV模式的顏色轉換為RGB模式的顏色。
MAYA材質係統確實具有極大的靈活性,在MAYA中,現成的東西不是太多,但它給我們提供了思想、工具、空間並指明了道路。古人說過,“受之以魚不如授之以漁”,我以為MAYA正象一位導師,教我們方法而不是替我們寫作業。
材質的連接方式如圖:
Hue=128;Saturation=128;Value=255。
這是貼圖按原來顏色正常渲染。
Hue=0;Saturation=128;Value=255。
Hue=255;Saturation=128;Value=255。
深入了解vectorProduct節點
這是從國外網站下載的一個材質,設計得極為精巧,是用來模擬全局光效果的,我稍微添加了一點兒內容。
建一球體並指定一lambert材質,在相機的左側麵打一方向光。
建兩個vectorProduct節點;
建一setRange節點;
建一ramp節點。
建一sampleInfo節點。
連接方式如下:
sampleInfo.normalCamera到vectorProduct1.input1;
vectorProduct1.output到vectorProduct2.input1;
vectorProduct2.output到setRange.value;
setRange.outValueX到ramp.vCoord;
setRange.outValueZ到ramp.uCoord;
ramp.outColor到lambert.ambientColor
設置方式如下:
vectorProduct1的操作方式為Vector Matrix Product;
vectorProduct2的操作方式為Dot Product;
setRange的Max、OldMax都設為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刪除。
當改變X_Light、Y_Light、Z_Light的值時,就會驅動vectorProduct2的input2的相應參數。這時,可以控製場景中的球體任何方向的受光程度。
注意場景中隻有左上方一個光源。
建議初學者認真做一下。