2011年8月21日 星期日

How to set glass object bypass indirect specular pass


as title...go to renderManColtrolsWindow, open Geometric Setting, create additional attribute as below, and attach all glass object that particular pass


2010年12月15日 星期三

mix8 layer blend mode

blend mode numbers and their functions

-ei 0 ") alpha"
-ei 1 ") normal.mix"
-ei 2 ") add"
-ei 3 ") multiply"
-ei 4 ") substract"
-ei 5 ") screen"
-ei 6 ") darker"
-ei 7 ") lighter"
-ei 8 ") difference"
-ei 9 ") average"
-ei 10 ") negation"
-ei 11 ") exclusion"
-ei 12 ") overlay"
-ei 13 ") hard.light"
-ei 14 ") soft.light"
-ei 15 ") color.dodge"
-ei 16 ") color.burn"
-ei 17 ") reflect"
-ei 18 ") glow"
-ei 19 ") stamp"
-ei 20 ") freeze"
-ei 21 ") heat"

2010年7月29日 星期四

two sided shader in renderman

如果遇到正反面是不同屬性的材質,可以用SLBOX來寫condition,利用model的face normal來判斷.
sl code寫法如下,v1跟v2可再各自串聯node上去

/* color */
if ((dPdu^dPdv).N>0)
result = v1;
else
result = v2;


記得maya model的double side 要關掉,renderman的ensemble的double shaded 要開

2010年5月13日 星期四

template for shader palette selection upon attachment

global proc yi_selector(string $phase)
{
string $paletteName ="";
string $s ="";
string $m ="";
string $b ="";
if ($phase == "normal")
{
$s = "/shows/tife/prod/surface/char/tife_c_yi/tife_c_yi_rig_h.splt";
$m = "/shows/tife/prod/surface/char/tife_c_yi/tife_c_yi_rig_h.surface";
$b = "/shows/tife/prod/surface/char/tife_c_yi/yi_sss_setup.mel";
}
else if ($phase == "wet")
{
$s = "/shows/tife/prod/surface/char/tife_c_yi/tife_c_yi_rig_h_wet.splt";
$m = "/shows/tife/prod/surface/char/tife_c_yi/tife_c_yi_rig_h_wet.surface";
$b = "/shows/tife/prod/surface/char/tife_c_yi/yi_sss_setup_wet.mel";
}
else if ($phase == "dirty")
{
$s = "/shows/tife/prod/surface/char/tife_c_yi/tife_c_yi_rig_h_dirty.splt";
$m = "/shows/tife/prod/surface/char/tife_c_yi/tife_c_yi_rig_h_dirty.surface";
$b = "/shows/tife/prod/surface/char/tife_c_yi/yi_sss_setup_dirty.mel";
}

$paletteName=`slimcmd slim CreatePalette -file $s`;
print "attach mel\n";
eval("source \""+$m+"\"");
eval("source \""+$b+"\"");

}
global proc surface_yi_selector()
{
if (`window -ex ABCWin`==true)
deleteUI -window ABCWin;
window -title "Select yi shader type" ABCWin;
columnLayout -adjustableColumn 2;
button -label "normal" -c "yi_selector(\"normal\")";
separator -h 10;
button -label "wet" -c "yi_selector(\"wet\")";
separator -h 10;
button -label "dirty" -c "yi_selector(\"dirty\")";
separator -h 10;
setParent ..;
showWindow ABCWin;
}
surface_yi_selector();

2010年5月11日 星期二

Old Maya Render Presets

There is no preset option to create a layer override in Maya 2009 as it was in 2008

However you can still create these overrides by using the following Mel
Where layer1 is the name of the Layer you like to override.

Ambient Occlusion

renderLayerBuiltinPreset occlusion layer1;

Luminance Depth

renderLayerBuiltinPreset linearDepth layer1;

Normal Map

renderLayerBuiltinPreset normal layer1;

Geometry Matt

renderLayerBuiltinPreset matte layer1;

Diffuse

renderLayerBuiltinPreset diffuse layer1;

Specular

renderLayerBuiltinPreset specular layer1;

Shadow

renderLayerBuiltinPreset shadow layer1;

From http://mayastation.typepad.com/

2009年12月9日 星期三

SSS parameters from Renderman Manual

refraction for twelve materials from [Jensen01]:
                 albedo              dmfp                ior
apple 0.846 0.841 0.528 6.96 6.40 1.90 1.3
chicken1 0.314 0.156 0.126 11.61 3.88 1.75 1.3
chicken2 0.321 0.160 0.108 9.44 3.35 1.79 1.3
cream 0.976 0.900 0.725 15.03 4.66 2.54 1.3
ketchup 0.164 0.006 0.002 4.76 0.58 0.39 1.3
marble 0.830 0.791 0.753 8.51 5.57 3.95 1.5
potato 0.764 0.613 0.213 14.27 7.23 2.04 1.3
skimmilk 0.815 0.813 0.682 18.42 10.44 3.50 1.3
skin1 0.436 0.227 0.131 3.67 1.37 0.68 1.3
skin2 0.623 0.433 0.343 4.82 1.69 1.09 1.3
spectralon 1.000 1.000 1.000 inf inf inf 1.3
wholemilk 0.908 0.881 0.759 10.90 6.58 2.51 1.3

2009年11月27日 星期五

把ptc拿來當color_bleeding


如果有bake好的ptc檔,可以利用color slbox讀取,當作是現成的color在用,以下例子是用在incandescence的color,串一個color slbox,目的是給shader一個bake好的color_bleeding效果,免去render時候bake ptc的時間

v1=ptc source file位置 (string)
v2= max distance value (float)
v3= indirectdiffuse (float)


string ptc_file = v1;

normal Nf = faceforward(normalize(N),I);
color IndDif = indirectdiffuse(P,Nf, 0,"filename",ptc_file,"pointbased",1, "maxdist", v2, "falloffmode", 1, "falloff", 1);

result = indDif *v3;

------------------------------------------------
更正寫法: 以下正確寫法,直接貼v1的顏色,不需要再做一次indirectdiffuse (IndDif)

string filename = v1;

normal Nf = faceforward(normalize(N),I);
color cbcolor=0;
texture3d(filename,P,normalize(N),"_indirectdiffuse",cbcolor);
result=cbcolor;