Shader store_diffuse_photon

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(&params->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