3delight ptc workflow from 3delight forum

volume
ptc_surface_bake(
string ptc_file = "";
string ptc_coordsys = "world";
float i_Ci=3;
float bleeding_intensity = 0.25;
)
{
color aov_incandescence = 0;
color aov_surface_color = 0;
color Ci=0;
surface("aov_surface_color", aov_surface_color);
surface("aov_incandescence", aov_incandescence);
surface("Ci", Ci);

color color_indirect = Oi * aov_incandescence + (aov_surface_color * bleeding_intensity)+(Ci*i_Ci);

bake3d( ptc_file, "", P, N,
"coordsystem", ptc_coordsys,
"surface_color", color_indirect,
"interpolate", 1 );

Ci = Ci;
}

#pragma annotation ptc_sortbleeding "gadgettype=checkbox:0:1=custom value;"
#pragma annotation ptc_clamp "gadgettype=checkbox:0:1=custom value;"
#pragma annotation bake_ptc "gadgettype=checkbox:0:1=custom value;"
#pragma annotation ao_ptc "gadgettype=checkbox:0:1=custom value;"

volume
ptc_surface_bleeding(
string ptc_map = "";
string coordsyst = "world";
string envmap = "";
string envspace = "world";
string ptc_sides = "both";
float ptc_clamp = 1;
float ptc_sortbleeding = 1;
float ptc_bias = 0.045;
float ptc_maxdist = 1e15;
float ptc_coneangle = 180;
float ptc_maxsolidangle = .2;
float ptc_samplebase = 0;

float ptc_falloffmode = 0;
float ptc_falloff = 0;

float rad_intensity = 1;
float ao_ptc = 0;
float ao_coneangle = 180;
float ao_maxdist = 0.5;
float ao_bias=0.045;
float ao_maxsolidangle=0.2;
float ao_falloff=3;
float ao_falloffmode=1;
float bake_ptc = 0;
string ptc_bake_Ci ="";
output varying color aov_ambient = 0;
output varying color aov_envcolor = 0;
output varying color aov_occlusion = 1;
)
{
normal aov_camera_space_normal = 0;
surface("aov_camera_space_normal", aov_camera_space_normal);

color aov_surface_color = 0;
surface("aov_surface_color", aov_surface_color);

float occlusion = 0;

aov_ambient = indirectdiffuse(P, aov_camera_space_normal, 0, "pointbased", 1,
"filename", ptc_map,
"hitsides", ptc_sides,
"coneangle", ptc_coneangle,
"clamp", ptc_clamp,
"coordsystem", coordsyst,
"sortbleeding", ptc_sortbleeding,
"maxdist", ptc_maxdist,
"falloff", ptc_falloff,
"falloffmode", ptc_falloffmode,
"samplebase", ptc_samplebase,
"bias", ptc_bias,
"maxsolidangle", ptc_maxsolidangle,
"environmentmap", envmap,
"environmentspace", envspace,
"environmentcolor", aov_envcolor)*rad_intensity;

 

if(ao_ptc==1){
aov_occlusion = 1-occlusion(P, aov_camera_space_normal, 0, "pointbased", 1,
"filename", ptc_map,
"hitsides", ptc_sides,
"coneangle", ao_coneangle,
"clamp", ptc_clamp,
"coordsystem", coordsyst,
"maxdist", ao_maxdist,
"bias", ao_bias,
"maxsolidangle", ao_maxsolidangle,
"falloff", ao_falloff,
"falloffmode", ao_falloffmode);
}

 

Ci += aov_ambient * aov_surface_color * aov_occlusion;

 

if(bake_ptc == 1){
bake3d( ptc_bake_Ci, "", P, aov_camera_space_normal,
"coordsystem", coordsyst,
"surface_color", Ci,
"_radiosity", aov_ambient,
"interpolate", 1 );
}

}

 

volume brikmap_read(
string map = "";
output varying color aov_ambient = 0;
)
{

color aov_surface_color = 0;
surface("aov_surface_color", aov_surface_color);

color res =0;
texture3d(map, P, N, "_radiosity", res);
aov_ambient = res;
Ci+= res*aov_surface_color;
}

from http://www.alessandrodallafontana.com/pages/wip_mall.htm

转载于:https://www.cnblogs.com/rdRoad/archive/2009/12/19/1627664.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值