diff options
author | Graham Linden <graham@lindenlab.com> | 2018-10-30 15:56:08 +0100 |
---|---|---|
committer | Graham Linden <graham@lindenlab.com> | 2018-10-30 15:56:08 +0100 |
commit | 56355cf35412589b0a171f33b7962fd3800c734a (patch) | |
tree | 5b1f806798e843f2bf364ddea55bd6303000c7d2 /indra/newview/app_settings/shaders/class1 | |
parent | 769be699a960610b3804392ad98c31870c642547 (diff) |
SL-9966
Port over transport, gamma, atmospherics shader stub updates for per-fragment atmospherics.
Fix bindings of current/next noise map when current and next are the same (select only one and force blend factor to 0).
Diffstat (limited to 'indra/newview/app_settings/shaders/class1')
3 files changed, 53 insertions, 14 deletions
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl index 584bd568c5..bf0a9048f0 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl @@ -23,16 +23,29 @@ * $/LicenseInfo$ */ +vec3 atmosFragAmbient(vec3 light, vec3 sunlit) +{ + return light; +} - -vec3 atmosLighting(vec3 light) +vec3 atmosFragLighting(vec3 light, vec3 additive, vec3 atten) { /* stub function for fallback compatibility on class1 hardware */ - return light; + return light; } +vec3 atmosFragAffectDirectionalLight(float light, vec3 sunlit) +{ + return light * sunlit; +} -void calcFragAtmospherics(vec3 inPositionEye, float ambFactor) { +vec3 atmosLighting(vec3 light) +{ + return atmosFragLighting(light, vec3(0), vec3(1.0)); +} + +void calcFragAtmospherics(vec3 inPositionEye, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 atten, out vec3 additive) +{ /* stub function for fallback compatibility on class1 hardware */ } diff --git a/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl b/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl index 62f4e51449..b7f117fc5f 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl @@ -23,17 +23,28 @@ * $/LicenseInfo$ */ - - +uniform int no_atmo; uniform vec4 gamma; -/// Soft clips the light with a gamma correction -vec3 scaleSoftClip(vec3 light) { +vec3 scaleFragSoftClip(vec3 light) +{ // For compatibility with lower cards. Do nothing. return light; } +/// Soft clips the light with a gamma correction +vec3 scaleSoftClip(vec3 light) +{ + // For compatibility with lower cards. Do nothing. + return scaleFragSoftClip(light); +} + +vec3 fullbrightScaleSoftClipFrag(vec3 light, vec3 atten) +{ + return (no_atmo == 1) ? light : mix(scaleFragSoftClip(light.rgb), light.rgb, atten); +} + vec3 fullbrightScaleSoftClip(vec3 light) { - return scaleSoftClip(light); + return fullbrightScaleSoftClipFrag(light, vec3(1)); } diff --git a/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl b/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl index 7c95ecdb14..c3c8329017 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl @@ -22,25 +22,40 @@ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ - +uniform int no_atmo; -vec3 atmosTransport(vec3 light) +vec3 atmosFragTransport(vec3 light, vec3 atten, vec3 additive) { /* stub function for fallback compatibility on class1 hardware */ return light; } -vec3 fullbrightAtmosTransport(vec3 light) +vec3 fullbrightFragAtmosTransport(vec3 light, vec3 atten, vec3 additive) { /* stub function for fallback compatibility on class1 hardware */ return light; } +vec3 fullbrightFragShinyAtmosTransport(vec3 light, vec3 atten, vec3 additive) +{ + /* stub function for fallback compatibility on class1 hardware */ + return light; +} -vec3 fullbrightShinyAtmosTransport(vec3 light) +vec3 atmosTransport(vec3 light) { /* stub function for fallback compatibility on class1 hardware */ - return light; + return atmosFragTransport(light, vec3(1), vec3(0)); +} + +vec3 fullbrightAtmosTransport(vec3 light) +{ + return fullbrightFragAtmosTransport(light, vec3(1), vec3(0)); +} + +vec3 fullbrightShinyAtmosTransport(vec3 light) +{ + return fullbrightFragShinyAtmosTransport(light, vec3(1), vec3(0)); } |