From 8969b114357d189e1bf39024762698eeddddfc78 Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Tue, 3 Jul 2018 16:37:32 +0100 Subject: MAINT-8838 render a sun disc if the texture(s) are provided by WL settings (default is no sun disc and just haze) Refactor sky texture optimization to retain building the cubemap used by shiny. --- .../shaders/class1/windlight/sunDiscV.glsl | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl (limited to 'indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl') diff --git a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl new file mode 100644 index 0000000000..3bf50ddd0a --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl @@ -0,0 +1,44 @@ +/** + * @file sunDiscV.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$ + */ + +uniform mat4 texture_matrix0; +uniform mat4 modelview_matrix; +uniform mat4 modelview_projection_matrix; + +ATTRIBUTE vec3 position; +ATTRIBUTE vec2 texcoord0; + +VARYING vec2 vary_texcoord0; + +void main() +{ + //transform vertex + vec4 vert = vec4(position.xyz, 1.0); + vec4 pos = (modelview_matrix * vert); + + gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0); + + vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy; +} -- cgit v1.2.3 From c7478f200cf5f57120148fdd79f76b9d3eff0258 Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Wed, 11 Jul 2018 18:03:07 +0100 Subject: Make sun/moon vert shaders use calcAtmospherics in hopes it will get OSX GL to link the shaders without complaining about unwritten varying vars. --- indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl') diff --git a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl index 3bf50ddd0a..5a6e481b18 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl @@ -32,6 +32,8 @@ ATTRIBUTE vec2 texcoord0; VARYING vec2 vary_texcoord0; +void calcAtmospherics(vec3 eye_pos); + void main() { //transform vertex @@ -40,5 +42,7 @@ void main() gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0); + calcAtmospherics(pos.xyz); + vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy; } -- cgit v1.2.3 From b86e899e7e51c56252479236df9a74f9bb432670 Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Thu, 23 Aug 2018 00:53:11 +0100 Subject: MAINT-9006 Make perspective projection consistent between ALM and non-ALM when drawing water (horizon matches). Make perspective projection consistent between ALM and non-ALM when drawing heavenly bodies (sun disc position matches). Make gamma correction of sun disc tex consistent between ALM and non-ALM rendering. --- indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl') diff --git a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl index 5a6e481b18..90acb5be9e 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl @@ -38,9 +38,9 @@ void main() { //transform vertex vec4 vert = vec4(position.xyz, 1.0); - vec4 pos = (modelview_matrix * vert); + vec4 pos = modelview_projection_matrix*vert; - gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0); + gl_Position = pos; calcAtmospherics(pos.xyz); -- cgit v1.2.3 From 08dd04aa98f9071d87a26573fb2807aaac1852eb Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Tue, 18 Sep 2018 19:47:50 +0100 Subject: SL-1176 Tweak position of sun in disc shader to better match the offset applied to the sun glow in atmospherics. --- indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl') diff --git a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl index 90acb5be9e..dd33a4be60 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl @@ -37,7 +37,7 @@ void calcAtmospherics(vec3 eye_pos); void main() { //transform vertex - vec4 vert = vec4(position.xyz, 1.0); + vec4 vert = vec4(position.xyz - vec3(0, 0, 50), 1.0); vec4 pos = modelview_projection_matrix*vert; gl_Position = pos; -- cgit v1.2.3 From 88d4d85711a25772f3659850902e3a395ef2358c Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Fri, 25 Jan 2019 10:34:42 -0800 Subject: SL-10303 Modify sun disc shader to better position itself within the sun glow and to fade as the sun approaches the horizon (to mask where the position difference is greatest). --- .../app_settings/shaders/class1/windlight/sunDiscV.glsl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl') diff --git a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl index dd33a4be60..1fa32c3f3b 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl @@ -31,18 +31,20 @@ ATTRIBUTE vec3 position; ATTRIBUTE vec2 texcoord0; VARYING vec2 vary_texcoord0; +VARYING float sun_fade; void calcAtmospherics(vec3 eye_pos); void main() { - //transform vertex - vec4 vert = vec4(position.xyz - vec3(0, 0, 50), 1.0); - vec4 pos = modelview_projection_matrix*vert; + //transform vertex + vec4 vert = vec4(position.xyz, 1.0); + vec4 pos = modelview_projection_matrix*vert; - gl_Position = pos; - + sun_fade = smoothstep(0.3, 1.0, (position.z + 50) / 512.0f); + gl_Position = pos; + calcAtmospherics(pos.xyz); - vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy; + vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy; } -- cgit v1.2.3 From 431a26c118ec0dea154a2fb2c93ae96ae41b3d7b Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Fri, 25 Jan 2019 16:29:05 -0800 Subject: SL-10303, SL-10414 Fix positioning of sun/moon discs w.r.t atmo haze glow. Disable killing glow when sun is not up. --- indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl') diff --git a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl index 1fa32c3f3b..ca116628f1 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl @@ -38,7 +38,8 @@ void calcAtmospherics(vec3 eye_pos); void main() { //transform vertex - vec4 vert = vec4(position.xyz, 1.0); + vec3 offset = vec3(0, 0, 50); + vec4 vert = vec4(position.xyz - offset, 1.0); vec4 pos = modelview_projection_matrix*vert; sun_fade = smoothstep(0.3, 1.0, (position.z + 50) / 512.0f); -- cgit v1.2.3 From 3dd5942776a8e3755fa75e01661b343972affbf9 Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Fri, 19 Apr 2019 07:44:18 -0700 Subject: Add directory names to sentinels in shaders so shaders with same filename can be differentiated in nSight while debugging. --- indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl') diff --git a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl index ca116628f1..6c0e795f6b 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/sunDiscV.glsl @@ -1,5 +1,5 @@ /** - * @file sunDiscV.glsl + * @file class1\wl\sunDiscV.glsl * * $LicenseInfo:firstyear=2007&license=viewerlgpl$ * Second Life Viewer Source Code -- cgit v1.2.3