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(¶ms->center),
&state->tex_list[0]),
*mi_eval_scalar(¶ms->frequency),
*mi_eval_scalar(¶ms->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