varying vec3 eye_look_dir;
float thickness(float c, float r)
{
varying vec3 eye_look_dir;
float thickness(float c, float r)
{
}
void main()
{
vec3 n_eye_look_dir = normalize(eye_look_dir);
vec3 n_eye_sun_dir = normalize(gl_LightSource[0].position.xyz);
}
void main()
{
vec3 n_eye_look_dir = normalize(eye_look_dir);
vec3 n_eye_sun_dir = normalize(gl_LightSource[0].position.xyz);
{
float look_scale = thickness(dot(n_eye_look_dir, eye_sky_dir), 635.0);
float sun_scale = thickness(dot(n_eye_sun_dir, eye_sky_dir), 635.0);
{
float look_scale = thickness(dot(n_eye_look_dir, eye_sky_dir), 635.0);
float sun_scale = thickness(dot(n_eye_sun_dir, eye_sky_dir), 635.0);
color = sun_intensity*scatter_strength*(exp(-scatter_factor*sun_scale)-exp(-scatter_factor*look_scale))/(1.0-sun_scale/look_scale);
if(dot(n_eye_look_dir, n_eye_sun_dir)>cos(sun_size))
color += exp(-scatter_factor*look_scale)*sun_intensity;
color = sun_intensity*scatter_strength*(exp(-scatter_factor*sun_scale)-exp(-scatter_factor*look_scale))/(1.0-sun_scale/look_scale);
if(dot(n_eye_look_dir, n_eye_sun_dir)>cos(sun_size))
color += exp(-scatter_factor*look_scale)*sun_intensity;
- gl_FragColor = vec4(srgb(color.r), srgb(color.g), srgb(color.b), 1.0);
+ if(srgb_output)
+ gl_FragColor = vec4(srgb(color.r), srgb(color.g), srgb(color.b), 1.0);
+ else
+ gl_FragColor = vec4(color, 1.0);