顯示具有 shader 標籤的文章。 顯示所有文章
顯示具有 shader 標籤的文章。 顯示所有文章

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 要開

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;