PDA

View Full Version : mi_transmission_dir_diffuse


g8keepR
February 24th, 2006, 21:49
how do you use this node? The manual states: "Choose a direction with a distribution according to Lambert's cosine law for diffuse transmission (also known as ``diffuse translucency'')."

I've used the mi_reflection_glossy nodes successfully, but they use a mi_trace reflection call after it. Does this work similarly with another trace_call?

Thanks

bart
February 25th, 2006, 16:03
Yes. The trace function to use with the mi_transmission_dir_* functions is mi_trace_refraction.

Actually, if you are tracing more than one sample, try using the _x version of these functions in an mi_sample loop. For your case, probably mi_transmission_dir_diffuse_x. Here's the difference in their args as stated in the manual.

void mi_transmission_dir_diffuse(
miVector *dir,
miState *state);
void mi_transmission_dir_diffuse_x(
miVector *dir,
miState *state,
const double sample[2]);


We also usually add a trace depth level detection to only do multiple samples at shallow depths to prevent ray explosion.
:D

g8keepR
February 27th, 2006, 15:34
ah yes, real translucence (unlike the fake version implemented in maya's materials) thanks!