Graphics Reference
In-Depth Information
vec3
Rainbow( float t )
{
t = clamp( t, 0., 1. );
// b -> c
vec3 rgb = vec3( 0., 4. * ( t - (0./4.) ), 1. );
// c -> g
if( t >= (1./4.) )
rgb = vec3( 0., 1., 1. - 4. * ( t - (1./4.) ) );
// g -> y
if( t >= (2./4.) )
rgb = vec3( 4. * ( t - (2./4.) ), 1., 0. );
// y -> r
if( t >= (3./4.) )
rgb = vec3( 1., 1. - 4. * ( t - (3./4.) ), 0. );
return rgb;
}
vec3
HeatedObject( float t )
{
t = clamp( t, 0., 1. );
vec3 rgb = vec3( 3. * ( t - (0./6.) ), 0., 0. );
if( t >= (1./3.) )
{
rgb.rg = vec2( 1., 3. * ( t - (1./3.) ) );
}
if( t >= (2./3.) )
{
rgb.gb = vec2( 1., 3. * ( t - (2./3.) ) );
}
return rgb;
}
Figure 15.22 shows a gallery of common themes for color transfer func-
tions. Left to right and going down the gallery, these themes and some of their
common uses are described in Table 15.1.
Search WWH ::




Custom Search