用的是之前排除反射的OSL,只不过这里是把“cam”选项关掉,这样体积雾中的漫射光没了
raytype_contribution.osl
shader raytype_contribution(
float cam = 1 [[string label = "Camera", float min=0, float max=1]],
float shad = 1 [[string label = "Shadow", float min=0, float max=1]],
float AO = 1 [[string label = "Ambient occlusion", float min=0, float max=1]],
float diff = 1 [[string label = "Diffuse", float min=0, float max=1]],
float refl = 1 [[string label = "Reflection", float min=0, float max=1]],
float refr = 1 [[string label = "Refraction", float min=0, float max=1]],
output color c = 0
)
{
c = cam*raytype("camera") + shad*raytype("shadow") + AO*raytype("AO")
+ diff*raytype("diffuse") + refl*raytype("reflection") + refr*raytype("refraction");
}
补充:oc2021新增了一个Ray switch节点,不需要手动OSL了