summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2018-10-30 15:56:08 +0100
committerGraham Linden <graham@lindenlab.com>2018-10-30 15:56:08 +0100
commit56355cf35412589b0a171f33b7962fd3800c734a (patch)
tree5b1f806798e843f2bf364ddea55bd6303000c7d2 /indra/newview/app_settings/shaders/class1
parent769be699a960610b3804392ad98c31870c642547 (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')
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl21
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl21
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/transportF.glsl25
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));
}