Shader displace_ripple

Click on the filename to display or download the file.

displace_ripple.mi
declare shader 
    scalar "displace_ripple" ( 
        vector "center"    default .5 .5 0, 
	scalar "frequency" default 1, 
	scalar "amplitude" default .1 ) 
    version 1 
    apply displace 
end declare 

displace_ripple.c
#include "shader.h" 
#include "miaux.h" 
 
struct displace_ripple {  
    miVector center; 
    miScalar frequency; 
    miScalar amplitude; 
}; 
 
DLLEXPORT 
int displace_ripple_version(void) { return(1); } 
 
DLLEXPORT 
miBoolean displace_ripple (  
    miScalar *result, miState *state, struct displace_ripple *params  ) 
{ 
    *result += miaux_sinusoid(mi_vector_dist(mi_eval_vector(&params->center), 
                                             &state->tex_list[0]), 
                              *mi_eval_scalar(&params->frequency), 
                              *mi_eval_scalar(&params->amplitude)); 
    return miTRUE; 
} 

displace_ripple_util.c
double miaux_sinusoid_fit( 
    double v, double oldmin, double oldmax, double newmin, double newmax) 
{ 
    return miaux_fit(sin(miaux_fit(v, oldmin, oldmax, -M_PI_2, M_PI_2)),  
		     -1, 1,  
		     newmin, newmax); 
} 

22 April 2008 23:40:30