11#ifndef FINALIZE_COLOR_GLSL
22#define FINALIZE_COLOR_GLSL
33
4- vec3 float_to_color(float value, float min_val, float max_val, vec3 [9 ] colormap_data){
4+ vec3 float_to_color(float value, float min_val, float max_val, vec3 [9 ] colormap_data)
5+ {
56 float alpha = clamp ((value - min_val) / (max_val - min_val), 0.0 , 1.0 );
67 int disc_alpha = min (int (alpha * 8 ), 7 );
7- return mix (
8- colormap_data[disc_alpha],
9- colormap_data[disc_alpha + 1 ],
10- 8.0 * alpha - disc_alpha
11- );
8+ return mix (colormap_data[disc_alpha], colormap_data[disc_alpha + 1 ], 8.0 * alpha - disc_alpha);
129}
1310
14-
15- vec4 add_light(vec4 color,
16- vec3 point,
17- vec3 unit_normal,
18- vec3 light_coords,
19- float gloss,
20- float shadow){
11+ vec4 add_light(vec4 color, vec3 point, vec3 unit_normal, vec3 light_coords, float gloss, float shadow)
12+ {
2113 if (gloss == 0.0 && shadow == 0.0 && reflectiveness == 0.0 )
2214 return color;
2315
2416 // TODO, do we actually want this? It effectively treats surfaces as two-sided
25- if (unit_normal.z < 0 ){
26- unit_normal *= - 1 ;
17+ if (unit_normal.z < 0 )
18+ {
19+ unit_normal *= - 1 ;
2720 }
2821
2922 // TODO, read this in as a uniform?
@@ -36,18 +29,11 @@ vec4 add_light(vec4 color,
3629 float shine = gloss * exp (- 3 * pow (1 - dot_prod, 2 ));
3730 float dp2 = dot (normalize (to_light), unit_normal);
3831 float darkening = mix (1 , max (dp2, 0 ), shadow);
39- return vec4 (
40- darkening * mix (color.rgb, vec3 (1.0 ), shine),
41- color.a
42- );
32+ return vec4 (darkening * mix (color.rgb, vec3 (1.0 ), shine), color.a);
4333}
4434
45- vec4 finalize_color(vec4 color,
46- vec3 point,
47- vec3 unit_normal,
48- vec3 light_coords,
49- float gloss,
50- float shadow){
35+ vec4 finalize_color(vec4 color, vec3 point, vec3 unit_normal, vec3 light_coords, float gloss, float shadow)
36+ {
5137 // /// INSERT COLOR FUNCTION HERE /////
5238 // The line above may be replaced by arbitrary code snippets, as per
5339 // the method Mobject.set_color_by_code
0 commit comments