Shader displace_wave_uv

Click on the filename to display or download the file.

displace_wave_uv.mi
declare shader 
    scalar "displace_wave_uv" ( 
	scalar "frequency_u" default 1, 
	scalar "amplitude_u" default .5, 
	scalar "frequency_v" default 1, 
	scalar "amplitude_v" default .5 ) 
    version 1 
    apply displace 
end declare 

displace_wave_uv.c
#include "shader.h" 
#include "miaux.h" 
 
struct displace_wave_uv {  
    miScalar frequency_u; 
    miScalar amplitude_u; 
    miScalar frequency_v; 
    miScalar amplitude_v; 
}; 
 
DLLEXPORT 
int displace_wave_uv_version(void) { return(1); } 
 
DLLEXPORT 
miBoolean displace_wave_uv (  
    miScalar *result, miState *state, struct displace_wave_uv *params  ) 
{ 
    *result +=  
        miaux_sinusoid(state->tex_list[0].x, 
                       *mi_eval_scalar(&params->frequency_u), 
                       *mi_eval_scalar(&params->amplitude_u)) + 
        miaux_sinusoid(state->tex_list[0].y, 
                       *mi_eval_scalar(&params->frequency_v), 
                       *mi_eval_scalar(&params->amplitude_v)); 
    return miTRUE; 
} 

displace_wave_uv_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:29