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;

沒有留言: