diff options
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/windlight')
10 files changed, 688 insertions, 0 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl new file mode 100644 index 0000000000..48cf234aa0 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl @@ -0,0 +1,54 @@ +/**  + * @file class2\wl\atmosphericsF.glsl + * + * $LicenseInfo:firstyear=2007&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2007, Linden Research, Inc. + *  + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + *  + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + *  + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + *  + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ + +vec3 getAdditiveColor(); +vec3 getAtmosAttenuation(); +vec3 scaleSoftClipFrag(vec3 light); + +vec3 srgb_to_linear(vec3 col); +vec3 linear_to_srgb(vec3 col); + +uniform float sky_hdr_scale; + +vec3 atmosFragLighting(vec3 light, vec3 additive, vec3 atten) +{  +    light *= atten.r; +    additive = srgb_to_linear(additive*2.0); +    // magic 1.25 here is to match the default RenderSkyHDRScale -- this parameter needs to be plumbed into sky settings or something +    // so it's available to all shaders that call atmosFragLighting instead of just softenLightF.glsl +    additive *= sky_hdr_scale; +    light += additive; +    return light; +} + +vec3 atmosFragLightingLinear(vec3 light, vec3 additive, vec3 atten) +{ +    return atmosFragLighting(light, additive, atten); +} + +vec3 atmosLighting(vec3 light) +{ +    return atmosFragLighting(light, getAdditiveColor(), getAtmosAttenuation()); +} diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl new file mode 100644 index 0000000000..437fa0a6d5 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl @@ -0,0 +1,159 @@ +/** + * @file class2\windlight\atmosphericsFuncs.glsl + * + * $LicenseInfo:firstyear=2022&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2022, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ + +uniform vec3  lightnorm; +uniform vec3  sunlight_color; +uniform vec3  moonlight_color; +uniform int   sun_up_factor; +uniform vec3  ambient_color; +uniform vec3  blue_horizon; +uniform vec3  blue_density; +uniform float haze_horizon; +uniform float haze_density; +uniform float cloud_shadow; +uniform float density_multiplier; +uniform float distance_multiplier; +uniform float max_y; +uniform vec3  glow; +uniform float scene_light_strength; +uniform float sun_moon_glow_factor; +uniform float sky_hdr_scale; + +float getAmbientClamp() { return 1.0f; } + +vec3 srgb_to_linear(vec3 col); +vec3 legacy_adjust(vec3 col); + +// return colors in sRGB space +void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, +                         out vec3 atten) +{ +    vec3 rel_pos = inPositionEye; + +    //(TERRAIN) limit altitude +    if (abs(rel_pos.y) > max_y) rel_pos *= (max_y / rel_pos.y); + +    vec3  rel_pos_norm = normalize(rel_pos); +    float rel_pos_len  = length(rel_pos); +     +    vec3  sunlight     = (sun_up_factor == 1) ? sunlight_color: moonlight_color; +     +    // sunlight attenuation effect (hue and brightness) due to atmosphere +    // this is used later for sunlight modulation at various altitudes +    vec3 light_atten = (blue_density + vec3(haze_density * 0.25)) * (density_multiplier * max_y); +    // I had thought blue_density and haze_density should have equal weighting, +    // but attenuation due to haze_density tends to seem too strong + +    vec3 combined_haze = blue_density + vec3(haze_density); +    vec3 blue_weight   = blue_density / combined_haze; +    vec3 haze_weight   = vec3(haze_density) / combined_haze; + +    //(TERRAIN) compute sunlight from lightnorm y component. Factor is roughly cosecant(sun elevation) (for short rays like terrain) +    float above_horizon_factor = 1.0 / max(1e-6, lightnorm.y); +    sunlight *= exp(-light_atten * above_horizon_factor);  // for sun [horizon..overhead] this maps to an exp curve [0..1] + +    // main atmospheric scattering line integral +    float density_dist = rel_pos_len * density_multiplier; + +    // Transparency (-> combined_haze) +    // ATI Bugfix -- can't store combined_haze*density_dist*distance_multiplier in a variable because the ati +    // compiler gets confused. +    combined_haze = exp(-combined_haze * density_dist * distance_multiplier); + +    // final atmosphere attenuation factor +    atten = combined_haze.rgb; + +    // compute haze glow +    float haze_glow = dot(rel_pos_norm, lightnorm.xyz); + +    // dampen sun additive contrib when not facing it... +    // SL-13539: This "if" clause causes an "additive" white artifact at roughly 77 degreees. +    //    if (length(light_dir) > 0.01) +    haze_glow *= max(0.0f, dot(light_dir, rel_pos_norm)); + +    haze_glow = 1. - haze_glow; +    // haze_glow is 0 at the sun and increases away from sun +    haze_glow = max(haze_glow, .001);  // set a minimum "angle" (smaller glow.y allows tighter, brighter hotspot) +    haze_glow *= glow.x; +    // higher glow.x gives dimmer glow (because next step is 1 / "angle") +    haze_glow = pow(haze_glow, glow.z); +    // glow.z should be negative, so we're doing a sort of (1 / "angle") function + +    // add "minimum anti-solar illumination" +    haze_glow += .25; + +    haze_glow *= sun_moon_glow_factor; + +    vec3 amb_color = ambient_color; + +    // increase ambient when there are more clouds +    vec3 tmpAmbient = amb_color + (vec3(1.) - amb_color) * cloud_shadow * 0.5; + +    // Similar/Shared Algorithms: +    //     indra\llinventory\llsettingssky.cpp                                        -- LLSettingsSky::calculateLightSettings() +    //     indra\newview\app_settings\shaders\class1\windlight\atmosphericsFuncs.glsl -- calcAtmosphericVars() +    // haze color +    vec3 cs = sunlight.rgb * (1. - cloud_shadow); +    additive = (blue_horizon.rgb * blue_weight.rgb) * (cs + tmpAmbient.rgb) + (haze_horizon * haze_weight.rgb) * (cs * haze_glow + tmpAmbient.rgb); + +    // brightness of surface both sunlight and ambient +     +    sunlit = sunlight.rgb; +    amblit = tmpAmbient; + +    additive *= vec3(1.0 - combined_haze); +} + +vec3 srgb_to_linear(vec3 col); + +// provide a touch of lighting in the opposite direction of the sun light  +    // so areas in shadow don't lose all detail +float ambientLighting(vec3 norm, vec3 light_dir) +{ +    float ambient = min(abs(dot(norm.xyz, light_dir.xyz)), 1.0); +    ambient *= 0.5; +    ambient *= ambient; +    ambient = (1.0 - ambient); +    return ambient; +} + + +// return lit amblit in linear space, leave sunlit and additive in sRGB space +void calcAtmosphericVarsLinear(vec3 inPositionEye, vec3 norm, vec3 light_dir, out vec3 sunlit, out vec3 amblit, out vec3 additive, +                         out vec3 atten) +{ +    calcAtmosphericVars(inPositionEye, light_dir, 1.0, sunlit, amblit, additive, atten); + +    // multiply to get similar colors as when the "scaleSoftClip" implementation was doubling color values +    // (allows for mixing of light sources other than sunlight e.g. reflection probes) +    sunlit *= 1.5; +    amblit *= 0.5; +     +    // override amblit with ambient_color if sky probe ambiance is not zero +    amblit = mix(amblit, ambient_color, clamp(sky_hdr_scale-1.0, 0.0, 1.0)); + +    amblit = srgb_to_linear(amblit); +    amblit *= ambientLighting(norm, light_dir); +} diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersF.glsl new file mode 100644 index 0000000000..800d08047a --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersF.glsl @@ -0,0 +1,44 @@ +/** + * @file class2\wl\atmosphericsHelpersV.glsl + * + * $LicenseInfo:firstyear=2005&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2005, Linden Research, Inc. + *  + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + *  + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + *  + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + *  + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ + +// Output variables + +uniform float scene_light_strength; + +vec3 atmosFragAmbient(vec3 light, vec3 amblit) +{ +    return amblit + light / 2.0; +} + +vec3 atmosFragAffectDirectionalLight(float lightIntensity, vec3 sunlit) +{ +    return sunlit * lightIntensity; +} + +vec3 scaleDownLightFrag(vec3 light) +{ +    return (light / scene_light_strength ); +} + diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl new file mode 100644 index 0000000000..6ecbfaecb1 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl @@ -0,0 +1,57 @@ +/** + * @file class2\wl\atmosphericsHelpersV.glsl + * + * $LicenseInfo:firstyear=2005&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2005, Linden Research, Inc. + *  + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + *  + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + *  + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + *  + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ +  + + +// Output variables +vec3 getSunlitColor(); +vec3 getAmblitColor(); +vec3 getAdditiveColor(); +vec3 getAtmosAttenuation(); +vec3 getPositionEye(); + +uniform float scene_light_strength; + +vec3 atmosAmbient() +{ +    return getAmblitColor(); +} + +vec3 atmosAffectDirectionalLight(float lightIntensity) +{ +    return getSunlitColor() * lightIntensity; +} + +vec3 atmosGetDiffuseSunlightColor() +{ +    return getSunlitColor(); +} + +vec3 scaleDownLight(vec3 light) +{ +    return (light / scene_light_strength ); +} + + diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl new file mode 100644 index 0000000000..cc3617ba61 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl @@ -0,0 +1,56 @@ +/** + * @file class2\wl\atmosphericsV.glsl + * + * $LicenseInfo:firstyear=2005&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2005, Linden Research, Inc. + *  + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + *  + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + *  + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + *  + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ + +// out param funcs + + +uniform vec3 sun_dir; +uniform vec3 moon_dir; +uniform int sun_up_factor; + +void setSunlitColor(vec3 v); +void setAmblitColor(vec3 v); +void setAdditiveColor(vec3 v); +void setAtmosAttenuation(vec3 v); +void setPositionEye(vec3 v); + +vec3 getAdditiveColor(); + +void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten); + +void calcAtmospherics(vec3 inPositionEye) { +    vec3 P = inPositionEye; +    setPositionEye(P); +    vec3 tmpsunlit = vec3(1); +    vec3 tmpamblit = vec3(1); +    vec3 tmpaddlit = vec3(1); +    vec3 tmpattenlit = vec3(1); +	vec3 light_dir = (sun_up_factor == 1) ? sun_dir : moon_dir;	 +    calcAtmosphericVars(inPositionEye, light_dir, 1, tmpsunlit, tmpamblit, tmpaddlit, tmpattenlit); +    setSunlitColor(tmpsunlit); +    setAmblitColor(tmpamblit); +    setAdditiveColor(tmpaddlit); +    setAtmosAttenuation(tmpattenlit); +} diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl new file mode 100644 index 0000000000..34669a6796 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl @@ -0,0 +1,48 @@ +/**  + * @file class2\wl\atmosphericVarsF.glsl + * + * $LicenseInfo:firstyear=2007&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2007, Linden Research, Inc. + *  + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + *  + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + *  + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + *  + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ +  + +in vec3 vary_AdditiveColor; +in vec3 vary_AtmosAttenuation; + +vec3 getSunlitColor() +{ +	return vec3(0,0,0); +} + +vec3 getAmblitColor() +{ +	return vec3(0,0,0); +} + +vec3 getAdditiveColor() +{ +	return vary_AdditiveColor; +} + +vec3 getAtmosAttenuation() +{ +	return vec3(vary_AtmosAttenuation); +} diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl new file mode 100644 index 0000000000..1b854d80b3 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl @@ -0,0 +1,84 @@ +/**  + * @file class2\wl\atmosphericVars.glsl + * + * $LicenseInfo:firstyear=2007&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2007, Linden Research, Inc. + *  + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + *  + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + *  + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + *  + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ +  + +out vec3 vary_AdditiveColor; +out vec3 vary_AtmosAttenuation; + +vec3 additive_color; +vec3 atmos_attenuation; +vec3 sunlit_color; +vec3 amblit_color; +vec3 position_eye; + +vec3 getSunlitColor() +{ +	return sunlit_color; +} +vec3 getAmblitColor() +{ +	return amblit_color; +} + +vec3 getAdditiveColor() +{ +	return additive_color; +} +vec3 getAtmosAttenuation() +{ +	return atmos_attenuation; +} + +vec3 getPositionEye() +{ +	return position_eye; +} + +void setPositionEye(vec3 v) +{ +	position_eye = v; +} + +void setSunlitColor(vec3 v) +{ +	sunlit_color  = v; +} + +void setAmblitColor(vec3 v) +{ +	amblit_color = v; +} + +void setAdditiveColor(vec3 v) +{ +	additive_color = v; +	vary_AdditiveColor = v; +} + +void setAtmosAttenuation(vec3 v) +{ +	atmos_attenuation = v; +	vary_AtmosAttenuation = v; +} diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl new file mode 100644 index 0000000000..7a6741fe0e --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl @@ -0,0 +1,50 @@ +/**  + * @file class2\wl\atmosphericVarsWaterF.glsl + * + * $LicenseInfo:firstyear=2007&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2007, Linden Research, Inc. + *  + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + *  + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + *  + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + *  + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ +  +in vec3 vary_PositionEye; +in vec3 vary_AdditiveColor; +in vec3 vary_AtmosAttenuation; + +vec3 getSunlitColor() +{ +	return vec3(0,0,0); +} +vec3 getAmblitColor() +{ +	return vec3(0,0,0); +} +vec3 getAdditiveColor() +{ +	return vary_AdditiveColor; +} +vec3 getAtmosAttenuation() +{ +	return vary_AtmosAttenuation; +} +vec3 getPositionEye() +{ +	return vary_PositionEye; +} + diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl new file mode 100644 index 0000000000..23c3aed4d8 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl @@ -0,0 +1,81 @@ +/**  + * @file class2\wl\atmosphericVarsWaterV.glsl + * + * $LicenseInfo:firstyear=2007&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2007, Linden Research, Inc. + *  + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + *  + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + *  + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + *  + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ +  +out vec3 vary_PositionEye; +out vec3 vary_AdditiveColor; +out vec3 vary_AtmosAttenuation; + +vec3 atmos_attenuation; +vec3 sunlit_color; +vec3 amblit_color; + +vec3 getSunlitColor() +{ +	return sunlit_color; +} +vec3 getAmblitColor() +{ +	return amblit_color; +} + +vec3 getAdditiveColor() +{ +	return vary_AdditiveColor; +} +vec3 getAtmosAttenuation() +{ +	return atmos_attenuation; +} + +vec3 getPositionEye() +{ +	return vary_PositionEye; +} + +void setPositionEye(vec3 v) +{ +	vary_PositionEye = v; +} + +void setSunlitColor(vec3 v) +{ +	sunlit_color  = v; +} + +void setAmblitColor(vec3 v) +{ +	amblit_color = v; +} + +void setAdditiveColor(vec3 v) +{ +	vary_AdditiveColor = v; +} + +void setAtmosAttenuation(vec3 v) +{ +	atmos_attenuation = v; +	vary_AtmosAttenuation = v; +} diff --git a/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl b/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl new file mode 100644 index 0000000000..027bfb866f --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl @@ -0,0 +1,55 @@ +/**  + * @file class2\wl\gammaF.glsl + * + * $LicenseInfo:firstyear=2007&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2007, Linden Research, Inc. + *  + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + *  + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + *  + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + *  + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ + + // DEPRECATED + +//soft clip effect has been moved to postDeferredGammaCorrect legacyGamma, this file is effectively dead +// but these functions need to be removed from all existing shaders before removing this file + +vec3 scaleSoftClipFrag(vec3 light) +{ +    return light; +} + +vec3 scaleSoftClipFragLinear(vec3 light) +{ // identical to non-linear version and that's probably close enough +    return light; +} + +vec3 scaleSoftClip(vec3 light) +{ +    return light; +} + +vec3 fullbrightScaleSoftClipFrag(vec3 light, vec3 add, vec3 atten) +{ +    return light; +} + +vec3 fullbrightScaleSoftClip(vec3 light) +{ +    return light; +} + | 
