Click on the filename to display or download the file.
store_diffuse_photon.mi
declare shader
color "store_diffuse_photon" (
color "diffuse_color" default 1 1 1 )
version 1
apply photon
end declare
store_diffuse_photon.c
#include "shader.h"
#include "miaux.h"
struct store_diffuse_photon {
miColor diffuse_color;
};
DLLEXPORT
int store_diffuse_photon_version(void) { return 1; }
DLLEXPORT
miBoolean store_diffuse_photon (
miColor *result, miState *state, struct store_diffuse_photon *params )
{
miVector diffuse_direction;
miColor *diffuse_color = mi_eval_color(¶ms->diffuse_color);
mi_store_photon(result, state);
miaux_multiply_color(result, diffuse_color);
mi_reflection_dir_diffuse(&diffuse_direction, state);
return mi_photon_reflection_diffuse(result, state, &diffuse_direction);
}
store_diffuse_photon_util.c
void miaux_multiply_color(miColor *result, miColor *color)
{
result->r *= color->r;
result->g *= color->g;
result->b *= color->b;
}
22 April 2008 23:40:25