aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/app_settings
diff options
context:
space:
mode:
authorJacek Antonelli2008-08-15 23:45:34 -0500
committerJacek Antonelli2008-08-15 23:45:34 -0500
commitcd17687f01420952712a500107e0f93e7ab8d5f8 (patch)
treece48c2b706f2c1176290e39fb555fbdf6648ce01 /linden/indra/newview/app_settings
parentSecond Life viewer sources 1.19.0.5 (diff)
downloadmeta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.zip
meta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.tar.gz
meta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.tar.bz2
meta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.tar.xz
Second Life viewer sources 1.19.1.0
Diffstat (limited to 'linden/indra/newview/app_settings')
-rw-r--r--linden/indra/newview/app_settings/colors_base.xml13
-rw-r--r--linden/indra/newview/app_settings/high_graphics.xml39
-rw-r--r--linden/indra/newview/app_settings/keywords.ini12
-rw-r--r--linden/indra/newview/app_settings/low_graphics.xml39
-rw-r--r--linden/indra/newview/app_settings/mid_graphics.xml39
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl7
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl7
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl22
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl7
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl19
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl7
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl10
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl28
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl14
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/effects/glowF.glsl31
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/effects/glowV.glsl22
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/glowF.glsl14
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/glowV.glsl10
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/groundF.glsl5
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/groundV.glsl6
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/scatterF.glsl17
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/scatterV.glsl15
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl16
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl13
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl23
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl45
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/waterF.glsl96
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl20
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/environment/waterV.glsl90
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl7
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl15
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl30
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl15
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl15
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl15
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl46
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl34
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl17
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl17
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl26
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl89
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl15
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl35
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl29
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/objects/alphaF.glsl6
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/objects/alphaV.glsl21
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/objects/bumpshinyF.glsl18
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/objects/bumpshinyV.glsl25
-rwxr-xr-xlinden/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl13
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl13
-rwxr-xr-xlinden/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl29
-rwxr-xr-xlinden/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl23
-rwxr-xr-xlinden/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl13
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl16
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl25
-rwxr-xr-xlinden/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl13
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl7
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl22
-rwxr-xr-xlinden/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl13
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl13
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl34
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl15
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl13
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl19
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl19
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl26
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/avatar/avatarV.glsl48
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl21
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/effects/blurF.glsl31
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/effects/blurV.glsl35
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl31
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl14
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/effects/extractF.glsl22
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl42
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl14
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/environment/terrainF.glsl38
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/environment/terrainV.glsl52
-rwxr-xr-xlinden/indra/newview/app_settings/shaders/class2/environment/terrainWaterF.glsl39
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/environment/underWaterF.glsl88
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/environment/waterF.glsl223
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/environment/waterFogF.glsl54
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/environment/waterV.glsl53
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/lightF.glsl41
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightF.glsl23
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightShinyF.glsl30
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightWaterF.glsl21
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/lightShinyF.glsl29
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/lightShinyWaterF.glsl27
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/lightSpecularV.glsl16
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/lightV.glsl128
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/lightWaterF.glsl21
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl41
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl34
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/objects/alphaF.glsl18
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/objects/alphaV.glsl24
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/objects/bumpshinyF.glsl29
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/objects/bumpshinyV.glsl31
-rwxr-xr-xlinden/indra/newview/app_settings/shaders/class2/objects/shinyV.glsl31
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl24
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl41
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl137
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl34
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl60
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl76
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl163
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl24
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl41
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl138
-rw-r--r--linden/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl35
-rw-r--r--linden/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl112
-rw-r--r--linden/indra/newview/app_settings/shaders/class3/environment/waterF.glsl145
-rw-r--r--linden/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl44
-rw-r--r--linden/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl41
-rw-r--r--linden/indra/newview/app_settings/shaders/class3/objects/bumpshinyF.glsl25
-rw-r--r--linden/indra/newview/app_settings/shaders/shader_heirarchy.txt176
-rw-r--r--linden/indra/newview/app_settings/ultra_graphics.xml39
-rw-r--r--linden/indra/newview/app_settings/windlight/clouds2.tgabin0 -> 262935 bytes
-rw-r--r--linden/indra/newview/app_settings/windlight/days/Default.xml36
-rw-r--r--linden/indra/newview/app_settings/windlight/postprocesseffects.xml2
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/A%2D12AM.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/A%2D12PM.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/A%2D3AM.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/A%2D3PM.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/A%2D6AM.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/A%2D6PM.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/A%2D9AM.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/A%2D9PM.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Barcelona.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Blizzard.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Blue%20Midday.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Coastal%20Afternoon.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Coastal%20Sunset.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Default.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Desert%20Sunset.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Fine%20Day.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Fluffy%20Big%20Clouds.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Foggy.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Funky%20Funky%20Funky.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Funky%20Funky.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Gelatto.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Ghost.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Incongruent%20Truths.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Midday%201.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Midday%202.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Midday%203.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Midday%204.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Night.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Pirate.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Purple.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Sailor%27s%20Delight.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/skies/Sheer%20Surreality.xml141
-rw-r--r--linden/indra/newview/app_settings/windlight/water/Default.xml43
-rw-r--r--linden/indra/newview/app_settings/windlight/water/Glassy.xml43
-rw-r--r--linden/indra/newview/app_settings/windlight/water/Murky.xml43
-rw-r--r--linden/indra/newview/app_settings/windlight/water/Pond.xml43
-rw-r--r--linden/indra/newview/app_settings/windlight/water/SNAKE%21%21%21.xml43
-rw-r--r--linden/indra/newview/app_settings/windlight/water/Second%20Plague.xml43
-rw-r--r--linden/indra/newview/app_settings/windlight/water/Valdez.xml43
158 files changed, 7985 insertions, 1057 deletions
diff --git a/linden/indra/newview/app_settings/colors_base.xml b/linden/indra/newview/app_settings/colors_base.xml
index c68487b..ded1eb2 100644
--- a/linden/indra/newview/app_settings/colors_base.xml
+++ b/linden/indra/newview/app_settings/colors_base.xml
@@ -64,6 +64,9 @@
64<HelpScrollHighlightColor value="115, 132, 155, 255"/> 64<HelpScrollHighlightColor value="115, 132, 155, 255"/>
65<HelpScrollShadowColor value="0, 0, 0, 255"/> 65<HelpScrollShadowColor value="0, 0, 0, 255"/>
66 66
67<!-- Icon Enable/Disable -->
68<IconEnabledColor value="255, 255, 255, 255"/>
69<IconDisabledColor value="147, 169, 213, 200"/>
67 70
68<LabelDisabledColor value="147, 169, 213, 77"/> 71<LabelDisabledColor value="147, 169, 213, 77"/>
69<LabelSelectedColor value="255, 255, 255, 255"/> 72<LabelSelectedColor value="255, 255, 255, 255"/>
@@ -153,6 +156,14 @@
153<SliderThumbOutlineColor value="255, 255, 255, 255"/> 156<SliderThumbOutlineColor value="255, 255, 255, 255"/>
154<SliderTrackColor value="255, 255, 255, 255"/> 157<SliderTrackColor value="255, 255, 255, 255"/>
155 158
159<!-- Multi sliders, as in the sky animation setting -->
160<MultiSliderDisabledThumbColor value="0, 0, 0, 255"/>
161<MultiSliderThumbCenterColor value="183, 184, 188, 255"/>
162<MultiSliderThumbOutlineColor value="0, 0, 0, 255"/>
163<MultiSliderTrackColor value="30, 30, 30, 255"/>
164<MultiSliderThumbCenterSelectedColor value="255, 50, 50, 255"/>
165<MultiSliderTriangleColor value="255, 255, 50, 255"/>
166
156<!-- Text field background when receiving input (focused) --> 167<!-- Text field background when receiving input (focused) -->
157<TextBgFocusColor value="200, 209, 204, 255"/> 168<TextBgFocusColor value="200, 209, 204, 255"/>
158<!-- Text field background when read-only --> 169<!-- Text field background when read-only -->
@@ -162,7 +173,7 @@
162<TextCursorColor value="0, 0, 0, 255"/> 173<TextCursorColor value="0, 0, 0, 255"/>
163<TextFgColor value="0, 0, 0, 255"/> 174<TextFgColor value="0, 0, 0, 255"/>
164<TextFgReadOnlyColor value="255, 255, 255, 200"/> 175<TextFgReadOnlyColor value="255, 255, 255, 200"/>
165<TextFgTentativeColor value="0, 0, 0, 128"/> 176<TextFgTentativeColor value="0, 0, 0, 255"/>
166<TextEmbeddedItemReadOnlyColor value="58, 147, 242, 255"/> 177<TextEmbeddedItemReadOnlyColor value="58, 147, 242, 255"/>
167<TextEmbeddedItemColor value="0, 0, 128, 255"/> 178<TextEmbeddedItemColor value="0, 0, 128, 255"/>
168<TextDefaultColor value="0, 20, 0, 255"/> 179<TextDefaultColor value="0, 20, 0, 255"/>
diff --git a/linden/indra/newview/app_settings/high_graphics.xml b/linden/indra/newview/app_settings/high_graphics.xml
new file mode 100644
index 0000000..6368f70
--- /dev/null
+++ b/linden/indra/newview/app_settings/high_graphics.xml
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<settings version = "101">
3 <!--NO SHADERS-->
4 <RenderAvatarCloth value="FALSE"/>
5 <!--Default for now-->
6 <RenderAvatarLODFactor value="1.0"/>
7 <!--NO SHADERS-->
8 <RenderAvatarVP value="TRUE"/>
9 <!--Short Range-->
10 <RenderFarClip value="128"/>
11 <!--Default for now-->
12 <RenderFlexTimeFactor value="1"/>
13 <!--256... but they don't use this-->
14 <RenderGlowResolutionPow value="9"/>
15 <!--Sun/Moon only-->
16 <RenderLightingDetail value="1"/>
17 <!--Low number-->
18 <RenderMaxPartCount value="4096"/>
19 <!--bump okay-->
20 <RenderObjectBump value="TRUE"/>
21 <!--NO SHADERS-->
22 <RenderReflectionDetail value="2"/>
23 <!--Simple-->
24 <RenderTerrainDetail value="1"/>
25 <!--Default for now-->
26 <RenderTerrainLODFactor value="2"/>
27 <!--Default for now-->
28 <RenderTreeLODFactor value="0.5"/>
29 <!--Try Impostors-->
30 <RenderUseImpostors value="TRUE"/>
31 <!--Default for now-->
32 <RenderVolumeLODFactor value="1.125"/>
33 <!--NO SHADERS-->
34 <RenderWaterReflections value="FALSE"/>
35 <!--NO SHADERS-->
36 <VertexShaderEnable value="TRUE"/>
37 <!--NO SHADERS-->
38 <WindLightUseAtmosShaders value="TRUE"/>
39</settings>
diff --git a/linden/indra/newview/app_settings/keywords.ini b/linden/indra/newview/app_settings/keywords.ini
index 5a68c5b..0800647 100644
--- a/linden/indra/newview/app_settings/keywords.ini
+++ b/linden/indra/newview/app_settings/keywords.ini
@@ -422,7 +422,10 @@ PARCEL_MEDIA_COMMAND_PLAY Play media stream
422PARCEL_MEDIA_COMMAND_LOOP Loop media stream 422PARCEL_MEDIA_COMMAND_LOOP Loop media stream
423PARCEL_MEDIA_COMMAND_TEXTURE Get or set the parcel's media texture 423PARCEL_MEDIA_COMMAND_TEXTURE Get or set the parcel's media texture
424PARCEL_MEDIA_COMMAND_URL Get or set the parcel's media url 424PARCEL_MEDIA_COMMAND_URL Get or set the parcel's media url
425PARCEL_MEDIA_COMMAND_TYPE Get or set the parcel's media mimetype
426PARCEL_MEDIA_COMMAND_DESC Get or set the parcel's media description
425PARCEL_MEDIA_COMMAND_TIME Set media stream to specific time 427PARCEL_MEDIA_COMMAND_TIME Set media stream to specific time
428PARCEL_MEDIA_COMMAND_SIZE Get or set the parcel's media pixel resolution
426PARCEL_MEDIA_COMMAND_AGENT Allows media stream commands to apply to only one agent 429PARCEL_MEDIA_COMMAND_AGENT Allows media stream commands to apply to only one agent
427PARCEL_MEDIA_COMMAND_UNLOAD Unloads the media stream 430PARCEL_MEDIA_COMMAND_UNLOAD Unloads the media stream
428PARCEL_MEDIA_COMMAND_AUTO_ALIGN Auto aligns the media stream to the texture size. May cause a performance hit and loss of some visual quality. 431PARCEL_MEDIA_COMMAND_AUTO_ALIGN Auto aligns the media stream to the texture size. May cause a performance hit and loss of some visual quality.
@@ -492,6 +495,15 @@ STRING_TRIM_HEAD Used with llStringTrim to trim leading spaces from a string.
492STRING_TRIM_TAIL Used with llStringTrim to trim trailing spaces from a string. 495STRING_TRIM_TAIL Used with llStringTrim to trim trailing spaces from a string.
493STRING_TRIM Used with llStringTrim to trim both leading and trailing spaces from a string. 496STRING_TRIM Used with llStringTrim to trim both leading and trailing spaces from a string.
494 497
498CLICK_ACTION_NONE Used with llSetClickAction to disable the click action
499CLICK_ACTION_TOUCH Used with llSetClickAction to set touch as the default action when object is clicked
500CLICK_ACTION_SIT Used with llSetClickAction to set sit as the default action when object is clicked
501CLICK_ACTION_BUY Used with llSetClickAction to set buy as the default action when object is clicked
502CLICK_ACTION_PAY Used with llSetClickAction to set pay as the default action when object is clicked
503CLICK_ACTION_OPEN Used with llSetClickAction to set open as the default action when object is clicked
504CLICK_ACTION_PLAY Used with llSetClickAction to set play as the default action when object is clicked
505CLICK_ACTION_OPEN_MEDIA Used with llSetClickAction to set open-media as the default action when object is clicked
506
495# string constants 507# string constants
496[word .1, .3, .5] 508[word .1, .3, .5]
497NULL_KEY Indicates an empty key 509NULL_KEY Indicates an empty key
diff --git a/linden/indra/newview/app_settings/low_graphics.xml b/linden/indra/newview/app_settings/low_graphics.xml
new file mode 100644
index 0000000..3f67a70
--- /dev/null
+++ b/linden/indra/newview/app_settings/low_graphics.xml
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<settings version = "101">
3 <!--NO SHADERS-->
4 <RenderAvatarCloth value="FALSE"/>
5 <!--Default for now-->
6 <RenderAvatarLODFactor value="0.5"/>
7 <!--NO SHADERS-->
8 <RenderAvatarVP value="FALSE"/>
9 <!--Short Range-->
10 <RenderFarClip value="64"/>
11 <!--Default for now-->
12 <RenderFlexTimeFactor value="0.5"/>
13 <!--256... but they don't use this-->
14 <RenderGlowResolutionPow value="8"/>
15 <!--Sun/Moon only-->
16 <RenderLightingDetail value="0"/>
17 <!--Low number-->
18 <RenderMaxPartCount value="1024"/>
19 <!--bump okay-->
20 <RenderObjectBump value="FALSE"/>
21 <!--NO SHADERS-->
22 <RenderReflectionDetail value="0"/>
23 <!--Simple-->
24 <RenderTerrainDetail value="0"/>
25 <!--Default for now-->
26 <RenderTerrainLODFactor value="1.0"/>
27 <!--Default for now-->
28 <RenderTreeLODFactor value="0.5"/>
29 <!--Try Impostors-->
30 <RenderUseImpostors value="TRUE"/>
31 <!--Default for now-->
32 <RenderVolumeLODFactor value="1.125"/>
33 <!--NO SHADERS-->
34 <RenderWaterReflections value="FALSE"/>
35 <!--NO SHADERS-->
36 <VertexShaderEnable value="FALSE"/>
37 <!--NO SHADERS-->
38 <WindLightUseAtmosShaders value="FALSE"/>
39</settings>
diff --git a/linden/indra/newview/app_settings/mid_graphics.xml b/linden/indra/newview/app_settings/mid_graphics.xml
new file mode 100644
index 0000000..12da77d
--- /dev/null
+++ b/linden/indra/newview/app_settings/mid_graphics.xml
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<settings version = "101">
3 <!--NO SHADERS-->
4 <RenderAvatarCloth value="FALSE"/>
5 <!--Default for now-->
6 <RenderAvatarLODFactor value="0.5"/>
7 <!--NO SHADERS-->
8 <RenderAvatarVP value="TRUE"/>
9 <!--Short Range-->
10 <RenderFarClip value="96"/>
11 <!--Default for now-->
12 <RenderFlexTimeFactor value="1"/>
13 <!--256... but they don't use this-->
14 <RenderGlowResolutionPow value="8"/>
15 <!--Sun/Moon only-->
16 <RenderLightingDetail value="1"/>
17 <!--Low number-->
18 <RenderMaxPartCount value="2048"/>
19 <!--bump okay-->
20 <RenderObjectBump value="TRUE"/>
21 <!--NO SHADERS-->
22 <RenderReflectionDetail value="0"/>
23 <!--Simple-->
24 <RenderTerrainDetail value="1"/>
25 <!--Default for now-->
26 <RenderTerrainLODFactor value="1.0"/>
27 <!--Default for now-->
28 <RenderTreeLODFactor value="0.5"/>
29 <!--Try Impostors-->
30 <RenderUseImpostors value="TRUE"/>
31 <!--Default for now-->
32 <RenderVolumeLODFactor value="1.125"/>
33 <!--NO SHADERS-->
34 <RenderWaterReflections value="FALSE"/>
35 <!--NO SHADERS-->
36 <VertexShaderEnable value="TRUE"/>
37 <!--NO SHADERS-->
38 <WindLightUseAtmosShaders value="FALSE"/>
39</settings>
diff --git a/linden/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl b/linden/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl
index 5731add..b6cc7f7 100644
--- a/linden/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl
@@ -1,3 +1,10 @@
1/**
2 * @file avatarF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
1void default_lighting(); 8void default_lighting();
2 9
3void main() 10void main()
diff --git a/linden/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl b/linden/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl
index 1fcc001..292dbfd 100644
--- a/linden/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl
@@ -1,4 +1,9 @@
1vec4 calcLighting(vec3 pos, vec3 norm, vec4 color); 1/**
2 * @file avatarSkinV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
2 7
3attribute vec4 weight; //1 8attribute vec4 weight; //1
4 9
diff --git a/linden/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl b/linden/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl
index 50f9b01..ee3410d 100644
--- a/linden/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl
@@ -1,9 +1,13 @@
1void default_scatter(vec3 viewVec, vec3 lightDir); 1/**
2 * @file avatarV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
2vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol); 8vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
3mat4 getSkinnedTransform(); 9mat4 getSkinnedTransform();
4vec2 getScatterCoord(vec3 viewVec, vec3 lightDir); 10void calcAtmospherics(vec3 inPositionEye);
5
6attribute vec4 materialColor;
7 11
8void main() 12void main()
9{ 13{
@@ -24,12 +28,16 @@ void main()
24 norm = normalize(norm); 28 norm = normalize(norm);
25 29
26 gl_Position = gl_ProjectionMatrix * pos; 30 gl_Position = gl_ProjectionMatrix * pos;
27 31
28 //gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 32 //gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
29 33
30 default_scatter(pos.xyz, gl_LightSource[0].position.xyz); 34 gl_FogFragCoord = length(pos.xyz);
31 35
32 vec4 color = calcLighting(pos.xyz, norm, materialColor, gl_Color); 36 calcAtmospherics(pos.xyz);
37
38 vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0,0,0,0));
33 gl_FrontColor = color; 39 gl_FrontColor = color;
34 40
35} 41}
42
43
diff --git a/linden/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl b/linden/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl
index 5731add..4d93c19 100644
--- a/linden/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl
@@ -1,3 +1,10 @@
1/**
2 * @file eyeballF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
1void default_lighting(); 8void default_lighting();
2 9
3void main() 10void main()
diff --git a/linden/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl b/linden/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl
index d436b4e..b3c988a 100644
--- a/linden/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl
@@ -1,7 +1,12 @@
1vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec3 baseCol); 1/**
2void default_scatter(vec3 viewVec, vec3 lightDir); 2 * @file eyeballV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
3 7
4attribute vec4 materialColor; 8vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol);
9void calcAtmospherics(vec3 inPositionEye);
5 10
6void main() 11void main()
7{ 12{
@@ -12,9 +17,11 @@ void main()
12 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz; 17 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz;
13 vec3 norm = normalize(gl_NormalMatrix * gl_Normal); 18 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
14 19
15 vec4 color = calcLighting(pos, norm, materialColor, gl_Color.rgb); 20 calcAtmospherics(pos.xyz);
16 default_scatter(pos, gl_LightSource[0].position.xyz); 21
17 22 vec4 specular = vec4(1.0);
23 vec4 color = calcLightingSpecular(pos, norm, gl_Color, specular, vec4(0.0));
18 gl_FrontColor = color; 24 gl_FrontColor = color;
25
19} 26}
20 27
diff --git a/linden/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl b/linden/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl
index b311afb..2019300 100644
--- a/linden/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl
@@ -1,3 +1,10 @@
1/**
2 * @file pickAvatarF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
1uniform sampler2D diffuseMap; 8uniform sampler2D diffuseMap;
2 9
3void main() 10void main()
diff --git a/linden/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl b/linden/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl
index b6dcbe1..12d8f9d 100644
--- a/linden/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl
@@ -1,4 +1,10 @@
1vec4 calcLighting(vec3 pos, vec3 norm, vec4 color); 1/**
2 * @file pickAvatarV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
2mat4 getSkinnedTransform(); 8mat4 getSkinnedTransform();
3 9
4void main() 10void main()
@@ -14,4 +20,4 @@ void main()
14 gl_FrontColor = gl_Color; 20 gl_FrontColor = gl_Color;
15 gl_TexCoord[0] = gl_MultiTexCoord0; 21 gl_TexCoord[0] = gl_MultiTexCoord0;
16 gl_Position = gl_ProjectionMatrix * pos; 22 gl_Position = gl_ProjectionMatrix * pos;
17} \ No newline at end of file 23}
diff --git a/linden/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl b/linden/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl
new file mode 100644
index 0000000..dbdfe11
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl
@@ -0,0 +1,28 @@
1/**
2 * @file glowExtractF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8#extension GL_ARB_texture_rectangle : enable
9
10uniform sampler2DRect diffuseMap;
11uniform float minLuminance;
12uniform float maxExtractAlpha;
13uniform vec3 lumWeights;
14uniform vec3 warmthWeights;
15uniform float warmthAmount;
16
17void main()
18{
19 vec4 col = texture2DRect(diffuseMap, gl_TexCoord[0].xy);
20
21 /// CALCULATING LUMINANCE (Using NTSC lum weights)
22 /// http://en.wikipedia.org/wiki/Luma_%28video%29
23 float lum = smoothstep(minLuminance, 1.0, dot(col.rgb, lumWeights ) );
24 float warmth = smoothstep(minLuminance, 1.0, max(col.r * warmthWeights.r, max(col.g * warmthWeights.g, col.b * warmthWeights.b)) );
25
26 gl_FragColor.rgb = col.rgb;
27 gl_FragColor.a = max(col.a, mix(lum, warmth, warmthAmount) * maxExtractAlpha);
28}
diff --git a/linden/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl b/linden/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl
new file mode 100644
index 0000000..61dfd2f
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl
@@ -0,0 +1,14 @@
1/**
2 * @file glowExtractV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8
9void main()
10{
11 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
12
13 gl_TexCoord[0].xy = gl_MultiTexCoord0.xy;
14}
diff --git a/linden/indra/newview/app_settings/shaders/class1/effects/glowF.glsl b/linden/indra/newview/app_settings/shaders/class1/effects/glowF.glsl
new file mode 100644
index 0000000..21c7ad7
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/effects/glowF.glsl
@@ -0,0 +1,31 @@
1/**
2 * @file glowF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D diffuseMap;
9uniform float glowStrength;
10
11void main()
12{
13
14 vec4 col = vec4(0.0, 0.0, 0.0, 0.0);
15
16 // ATI compiler falls down on array initialization.
17 float kern[8];
18 kern[0] = 0.25; kern[1] = 0.5; kern[2] = 0.8; kern[3] = 1.0;
19 kern[4] = 1.0; kern[5] = 0.8; kern[6] = 0.5; kern[7] = 0.25;
20
21 col += kern[0] * texture2D(diffuseMap, gl_TexCoord[0].xy);
22 col += kern[1] * texture2D(diffuseMap, gl_TexCoord[1].xy);
23 col += kern[2] * texture2D(diffuseMap, gl_TexCoord[2].xy);
24 col += kern[3] * texture2D(diffuseMap, gl_TexCoord[3].xy);
25 col += kern[4] * texture2D(diffuseMap, gl_TexCoord[0].zw);
26 col += kern[5] * texture2D(diffuseMap, gl_TexCoord[1].zw);
27 col += kern[6] * texture2D(diffuseMap, gl_TexCoord[2].zw);
28 col += kern[7] * texture2D(diffuseMap, gl_TexCoord[3].zw);
29
30 gl_FragColor = vec4(col.rgb * glowStrength, col.a);
31}
diff --git a/linden/indra/newview/app_settings/shaders/class1/effects/glowV.glsl b/linden/indra/newview/app_settings/shaders/class1/effects/glowV.glsl
new file mode 100644
index 0000000..13ce7c7
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/effects/glowV.glsl
@@ -0,0 +1,22 @@
1/**
2 * @file glowV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform vec2 glowDelta;
9
10void main()
11{
12 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
13
14 gl_TexCoord[0].xy = gl_MultiTexCoord0.xy + glowDelta*(-3.5);
15 gl_TexCoord[1].xy = gl_MultiTexCoord0.xy + glowDelta*(-2.5);
16 gl_TexCoord[2].xy = gl_MultiTexCoord0.xy + glowDelta*(-1.5);
17 gl_TexCoord[3].xy = gl_MultiTexCoord0.xy + glowDelta*(-0.5);
18 gl_TexCoord[0].zw = gl_MultiTexCoord0.xy + glowDelta*(0.5);
19 gl_TexCoord[1].zw = gl_MultiTexCoord0.xy + glowDelta*(1.5);
20 gl_TexCoord[2].zw = gl_MultiTexCoord0.xy + glowDelta*(2.5);
21 gl_TexCoord[3].zw = gl_MultiTexCoord0.xy + glowDelta*(3.5);
22}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/glowF.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/glowF.glsl
deleted file mode 100644
index 670b976..0000000
--- a/linden/indra/newview/app_settings/shaders/class1/environment/glowF.glsl
+++ /dev/null
@@ -1,14 +0,0 @@
1uniform sampler2D diffuseMap;
2
3void main()
4{
5 vec4 color1 = texture2D(diffuseMap, gl_TexCoord[0].xy);
6 vec4 color2 = texture2D(diffuseMap, gl_TexCoord[1].xy);
7 vec4 color3 = texture2D(diffuseMap, gl_TexCoord[2].xy);
8 vec4 color4 = texture2D(diffuseMap, gl_TexCoord[3].xy);
9 vec4 color5 = texture2D(diffuseMap, gl_TexCoord[4].xy);
10
11 vec4 col = (color1+color2+color3+color4+color5)*0.21;
12 col = max(col, col*0.25 + color5*0.75);
13 gl_FragColor = col;
14}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/glowV.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/glowV.glsl
deleted file mode 100644
index 3b1a72e..0000000
--- a/linden/indra/newview/app_settings/shaders/class1/environment/glowV.glsl
+++ /dev/null
@@ -1,10 +0,0 @@
1uniform float delta;
2void main()
3{
4 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
5 gl_TexCoord[0].xy = gl_MultiTexCoord0.xy + vec2(delta, delta);
6 gl_TexCoord[1].xy = gl_MultiTexCoord0.xy + vec2(-delta, delta);
7 gl_TexCoord[2].xy = gl_MultiTexCoord0.xy + vec2(-delta, -delta);
8 gl_TexCoord[3].xy = gl_MultiTexCoord0.xy + vec2(delta, -delta);
9 gl_TexCoord[4].xy = gl_MultiTexCoord0.xy;
10}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/groundF.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/groundF.glsl
deleted file mode 100644
index ef81b07..0000000
--- a/linden/indra/newview/app_settings/shaders/class1/environment/groundF.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
1
2void main()
3{
4 gl_FragColor = gl_Color;
5}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/groundV.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/groundV.glsl
deleted file mode 100644
index e227c58..0000000
--- a/linden/indra/newview/app_settings/shaders/class1/environment/groundV.glsl
+++ /dev/null
@@ -1,6 +0,0 @@
1
2void main()
3{
4 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
5 gl_FrontColor = gl_Fog.color;
6}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/scatterF.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/scatterF.glsl
deleted file mode 100644
index 3aa44de..0000000
--- a/linden/indra/newview/app_settings/shaders/class1/environment/scatterF.glsl
+++ /dev/null
@@ -1,17 +0,0 @@
1uniform sampler2D scatterMap;
2
3//for per-pixel scatter
4vec4 getScatter(vec3 viewVec, vec3 lightDir)
5{
6 return gl_TexCoord[5];
7}
8
9void applyScatter(inout vec3 color)
10{
11 color = gl_TexCoord[5].a*color + (1.0-gl_TexCoord[5].a) * gl_TexCoord[5].rgb;
12}
13
14void applyScatter(inout vec3 color, vec4 haze)
15{
16 color.rgb = haze.rgb + haze.a * color.rgb;
17}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/scatterV.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/scatterV.glsl
deleted file mode 100644
index 19dc2b8..0000000
--- a/linden/indra/newview/app_settings/shaders/class1/environment/scatterV.glsl
+++ /dev/null
@@ -1,15 +0,0 @@
1
2
3vec2 getScatterCoord(vec3 viewVec, vec3 lightDir)
4{
5 vec2 scatterCoord = vec2(0,0);
6 return scatterCoord;
7}
8
9void default_scatter(vec3 viewVec, vec3 lightDir)
10{
11 float f = gl_Fog.density * (gl_ModelViewProjectionMatrix * gl_Vertex).z;
12 f = clamp(exp2(-f),0.0,1.0);
13 gl_TexCoord[5].a = f;
14 gl_TexCoord[5].rgb = gl_Fog.color.rgb;
15}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl
index fde3701..2278c69 100644
--- a/linden/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl
@@ -1,9 +1,13 @@
1void terrain_lighting(inout vec3 color); 1/**
2 2 * @file terrainF.glsl
3uniform sampler2D detail0; //0 3 *
4uniform sampler2D detail1; //2 4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5uniform sampler2D alphaRamp; //1 5 * $License$
6 */
6 7
8uniform sampler2D detail0;
9uniform sampler2D detail1;
10uniform sampler2D alphaRamp;
7 11
8void main() 12void main()
9{ 13{
@@ -12,8 +16,6 @@ void main()
12 texture2D(detail0, gl_TexCoord[0].xy).rgb, 16 texture2D(detail0, gl_TexCoord[0].xy).rgb,
13 a); 17 a);
14 18
15 terrain_lighting(color);
16
17 gl_FragColor.rgb = color; 19 gl_FragColor.rgb = color;
18 gl_FragColor.a = texture2D(alphaRamp, gl_TexCoord[3].xy).a; 20 gl_FragColor.a = texture2D(alphaRamp, gl_TexCoord[3].xy).a;
19} 21}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl
index 3153a80..112d669 100644
--- a/linden/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl
@@ -1,7 +1,11 @@
1vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol); 1/**
2void default_scatter(vec3 viewVec, vec3 lightDir); 2 * @file terrainV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
3 7
4attribute vec4 materialColor; 8vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
5 9
6vec4 texgen_object(vec4 vpos, vec4 tc, mat4 mat, vec4 tp0, vec4 tp1) 10vec4 texgen_object(vec4 vpos, vec4 tc, mat4 mat, vec4 tp0, vec4 tp1)
7{ 11{
@@ -25,7 +29,7 @@ void main()
25 vec4 pos = gl_ModelViewMatrix * gl_Vertex; 29 vec4 pos = gl_ModelViewMatrix * gl_Vertex;
26 vec3 norm = normalize(gl_NormalMatrix * gl_Normal); 30 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
27 31
28 vec4 color = calcLighting(pos.xyz, norm, materialColor, gl_Color); 32 vec4 color = calcLighting(pos.xyz, norm, vec4(1,1,1,1), gl_Color);
29 33
30 gl_FrontColor = color; 34 gl_FrontColor = color;
31 35
@@ -33,5 +37,4 @@ void main()
33 gl_TexCoord[1] = gl_TextureMatrix[1]*gl_MultiTexCoord1; 37 gl_TexCoord[1] = gl_TextureMatrix[1]*gl_MultiTexCoord1;
34 gl_TexCoord[2] = texgen_object(gl_Vertex,gl_MultiTexCoord2,gl_TextureMatrix[2],gl_ObjectPlaneS[2],gl_ObjectPlaneT[2]); 38 gl_TexCoord[2] = texgen_object(gl_Vertex,gl_MultiTexCoord2,gl_TextureMatrix[2],gl_ObjectPlaneS[2],gl_ObjectPlaneT[2]);
35 gl_TexCoord[3] = gl_TextureMatrix[3]*gl_MultiTexCoord3; 39 gl_TexCoord[3] = gl_TextureMatrix[3]*gl_MultiTexCoord3;
36 default_scatter(pos.xyz, gl_LightSource[0].position.xyz);
37} 40}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl
new file mode 100644
index 0000000..e2f68e8
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl
@@ -0,0 +1,23 @@
1/**
2 * @file terrainWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8// this class1 shader is just a copy of terrainF
9
10uniform sampler2D detail0;
11uniform sampler2D detail1;
12uniform sampler2D alphaRamp;
13
14void main()
15{
16 float a = texture2D(alphaRamp, gl_TexCoord[1].xy).a;
17 vec3 color = mix(texture2D(detail1, gl_TexCoord[2].xy).rgb,
18 texture2D(detail0, gl_TexCoord[0].xy).rgb,
19 a);
20
21 gl_FragColor.rgb = color;
22 gl_FragColor.a = texture2D(alphaRamp, gl_TexCoord[3].xy).a;
23}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
new file mode 100644
index 0000000..f1740a4
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
@@ -0,0 +1,45 @@
1/**
2 * @file underWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D diffuseMap;
9uniform sampler2D bumpMap;
10uniform sampler2D screenTex;
11
12uniform float refScale;
13uniform vec4 waterFogColor;
14
15//bigWave is (refCoord.w, view.w);
16varying vec4 refCoord;
17varying vec4 littleWave;
18varying vec4 view;
19
20void main()
21{
22 vec4 color;
23
24 //get bigwave normal
25 vec3 wavef = texture2D(bumpMap, vec2(refCoord.w, view.w)).xyz*2.0;
26
27 //get detail normals
28 vec3 dcol = texture2D(bumpMap, littleWave.xy).rgb*0.75;
29 dcol += texture2D(bumpMap, littleWave.zw).rgb*1.25;
30
31 //interpolate between big waves and little waves (big waves in deep water)
32 wavef = (wavef+dcol)*0.5;
33
34 //crunch normal to range [-1,1]
35 wavef -= vec3(1,1,1);
36
37 //figure out distortion vector (ripply)
38 vec2 distort = (refCoord.xy/refCoord.z) * 0.5 + 0.5;
39 distort = distort+wavef.xy*refScale;
40
41 vec4 fb = texture2D(screenTex, distort);
42
43 gl_FragColor.rgb = mix(waterFogColor.rgb, fb.rgb, waterFogColor.a * 0.001 + 0.999);
44 gl_FragColor.a = fb.a;
45}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/waterF.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
index f8b8031..1c14381 100644
--- a/linden/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
@@ -1,22 +1,94 @@
1void water_lighting(inout vec3 diff); 1/**
2 * @file waterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8vec3 scaleSoftClip(vec3 inColor);
9vec3 atmosTransport(vec3 inColor);
2 10
3uniform samplerCube environmentMap;
4uniform sampler2D diffuseMap; 11uniform sampler2D diffuseMap;
5uniform sampler2D bumpMap; 12uniform sampler2D bumpMap;
13uniform sampler2D screenTex;
14uniform sampler2D refTex;
15
16uniform float sunAngle;
17uniform float sunAngle2;
18uniform float scaledAngle;
19uniform vec3 lightDir;
20uniform vec3 specular;
21uniform float lightExp;
22uniform float refScale;
23uniform float kd;
24uniform vec2 screenRes;
25uniform vec3 normScale;
26uniform float fresnelScale;
27uniform float fresnelOffset;
28uniform float blurMultiplier;
29uniform vec4 fogCol;
6 30
7varying vec4 specular; 31//bigWave is (refCoord.w, view.w);
32varying vec4 refCoord;
33varying vec4 littleWave;
34varying vec4 view;
8 35
9void main() 36void main()
10{ 37{
11 vec4 depth = texture2D(diffuseMap, gl_TexCoord[0].xy); 38 vec3 viewVec = view.xyz;
12 vec4 diff = texture2D(bumpMap, gl_TexCoord[1].xy); 39 vec4 color;
13 vec3 ref = textureCube(environmentMap, gl_TexCoord[2].xyz).rgb; 40
41 float dist = length(viewVec.xy);
42
43 //normalize view vector
44 viewVec = normalize(viewVec);
45
46 //get wave normals
47 vec3 wavef = texture2D(bumpMap, vec2(refCoord.w, view.w)).xyz*2.0;
48
49 //get detail normals
50 vec3 dcol = texture2D(bumpMap, littleWave.xy).rgb*0.75;
51 dcol += texture2D(bumpMap, littleWave.zw).rgb*1.25;
52
53 //interpolate between big waves and little waves (big waves in deep water)
54 wavef = (wavef + dcol) * 0.5;
55
56 //crunch normal to range [-1,1]
57 wavef -= vec3(1,1,1);
58 wavef = normalize(wavef);
59
60 //get base fresnel components
14 61
15 diff.rgb *= depth.rgb; 62 float df = dot(viewVec,wavef) * fresnelScale + fresnelOffset;
63
64 vec2 distort = (refCoord.xy/refCoord.z) * 0.5 + 0.5;
65
66 float dist2 = dist;
67 dist = max(dist, 5.0);
68
69 //get reflected color
70 vec2 refdistort = wavef.xy*dot(normScale, vec3(0.333));
71 vec2 refvec = distort+refdistort/dist;
72 vec4 refcol = texture2D(refTex, refvec);
73
74 //get specular component
75 float spec = clamp(dot(lightDir, (reflect(viewVec,wavef))),0.0,1.0);
76
77 //harden specular
78 spec = pow(spec, lightExp);
79
80 //figure out distortion vector (ripply)
81 vec2 distort2 = distort+wavef.xy*refScale/max(dist*df, 1.0);
16 82
17 vec3 col = mix(diff.rgb, ref, specular.a)+specular.rgb*diff.rgb; 83 vec4 fb = texture2D(screenTex, distort2);
84
85 //mix with reflection
86 color.rgb = mix(mix(fogCol.rgb, fb.rgb, fogCol.a), refcol.rgb, df);
87 color.rgb += spec * specular;
18 88
19 water_lighting(col.rgb); 89 color.rgb = atmosTransport(color.rgb);
20 gl_FragColor.rgb = col.rgb; 90 color.rgb = scaleSoftClip(color.rgb);
21 gl_FragColor.a = (gl_Color.a+depth.a)*0.5; 91 color.a = spec * sunAngle2;
92
93 gl_FragColor = color;
22} 94}
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
new file mode 100644
index 0000000..59e44fa
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
@@ -0,0 +1,20 @@
1/**
2 * @file waterFogF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8vec4 applyWaterFog(vec4 color)
9{
10 // GL_EXP2 Fog
11 float fog = exp(-gl_Fog.density * gl_Fog.density * gl_FogFragCoord * gl_FogFragCoord);
12 // GL_EXP Fog
13 // float fog = exp(-gl_Fog.density * gl_FogFragCoord);
14 // GL_LINEAR Fog
15 // float fog = (gl_Fog.end - gl_FogFragCoord) * gl_Fog.scale;
16 fog = clamp(fog, 0.0, 1.0);
17 color.rgb = mix(gl_Fog.color.rgb, color.rgb, fog);
18 return color;
19}
20
diff --git a/linden/indra/newview/app_settings/shaders/class1/environment/waterV.glsl b/linden/indra/newview/app_settings/shaders/class1/environment/waterV.glsl
index 873a6fc..d332798 100644
--- a/linden/indra/newview/app_settings/shaders/class1/environment/waterV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/environment/waterV.glsl
@@ -1,41 +1,73 @@
1void default_scatter(vec3 viewVec, vec3 lightDir); 1/**
2vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec3 baseCol); 2 * @file waterV.glsl
3vec2 getScatterCoord(vec3 viewVec, vec3 lightDir); 3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
4 7
5varying vec4 specular; 8void calcAtmospherics(vec3 inPositionEye);
6 9
7vec4 texgen_object(vec4 vpos, vec4 tc, mat4 mat, vec4 tp0, vec4 tp1) 10uniform vec2 d1;
11uniform vec2 d2;
12uniform float time;
13uniform vec3 eyeVec;
14uniform float waterHeight;
15
16varying vec4 refCoord;
17varying vec4 littleWave;
18varying vec4 view;
19
20float wave(vec2 v, float t, float f, vec2 d, float s)
8{ 21{
9 vec4 tcoord; 22 return (dot(d, v)*f + t*s)*f;
10
11 tcoord.x = dot(vpos, tp0);
12 tcoord.y = dot(vpos, tp1);
13 tcoord.z = tc.z;
14 tcoord.w = tc.w;
15
16 tcoord = mat * tcoord;
17
18 return tcoord;
19} 23}
20 24
21void main() 25void main()
22{ 26{
23 //transform vertex 27 //transform vertex
24 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 28 vec4 position = gl_Vertex;
25 gl_TexCoord[0] = gl_MultiTexCoord0; 29 mat4 modelViewProj = gl_ModelViewProjectionMatrix;
26 gl_TexCoord[1] = texgen_object(gl_Vertex, gl_MultiTexCoord1, gl_TextureMatrix[1], gl_ObjectPlaneS[1],gl_ObjectPlaneT[1]);
27 30
28 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz; 31 vec4 oPosition;
29 vec3 norm = normalize(gl_NormalMatrix * gl_Normal); 32
30 vec4 spec = gl_Color; 33 //get view vector
31 gl_FrontColor.rgb = calcLightingSpecular(pos, norm, gl_Color, spec, vec3(0.0, 0.0, 0.0)).rgb; 34 vec3 oEyeVec;
32 gl_FrontColor.a = gl_Color.a; 35 oEyeVec.xyz = position.xyz-eyeVec;
33 specular = spec; 36
34 specular.a = gl_Color.a*0.5; 37 float d = length(oEyeVec.xy);
35 vec3 ref = reflect(pos,norm); 38 float ld = min(d, 2560.0);
36 39
37 gl_TexCoord[2] = gl_TextureMatrix[2]*vec4(ref,1); 40 position.xy = eyeVec.xy + oEyeVec.xy/d*ld;
41 view.xyz = oEyeVec;
42
43 d = clamp(ld/1536.0-0.5, 0.0, 1.0);
44 d *= d;
38 45
39 default_scatter(pos.xyz, gl_LightSource[0].position.xyz); 46 oPosition = position;
47 oPosition.z = mix(oPosition.z, max(eyeVec.z*0.75, 0.0), d);
48 oPosition = modelViewProj * oPosition;
49 refCoord.xyz = oPosition.xyz + vec3(0,0,0.2);
50
51 //get wave position parameter (create sweeping horizontal waves)
52 vec3 v = position.xyz;
53 v.x += (cos(v.x*0.08/*+time*0.01*/)+sin(v.y*0.02))*6.0;
54
55 //push position for further horizon effect.
56 position.xyz = oEyeVec.xyz*(waterHeight/oEyeVec.z);
57 position.w = 1.0;
58 position = position*gl_ModelViewMatrix;
59
60 calcAtmospherics((gl_ModelViewMatrix * gl_Vertex).xyz);
61
62
63 //pass wave parameters to pixel shader
64 vec2 bigWave = (v.xy) * vec2(0.04,0.04) + d1 * time * 0.055;
65 //get two normal map (detail map) texture coordinates
66 littleWave.xy = (v.xy) * vec2(0.6, 1.2) + d2 * time * 0.05;
67 // littleWave.zw = (v.xy) * vec2(0.07, 0.15) - d1 * time * 0.043;
68 littleWave.zw = (v.xy) * vec2(0.3, 0.6) + d1 * time * 0.1;
69 view.w = bigWave.y;
70 refCoord.w = bigWave.x;
71
72 gl_Position = oPosition;
40} 73}
41
diff --git a/linden/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl b/linden/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
index 1e342fb..328c416 100644
--- a/linden/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
@@ -1,3 +1,10 @@
1/**
2 * @file highlightF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
1uniform sampler2D diffuseMap; 8uniform sampler2D diffuseMap;
2 9
3void main() 10void main()
diff --git a/linden/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl b/linden/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl
index bb6707b..a9ea6e8 100644
--- a/linden/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl
@@ -1,9 +1,14 @@
1attribute vec4 materialColor; 1/**
2 * @file highlightV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
2 7
3void main() 8void main()
4{ 9{
5 //transform vertex 10 //transform vertex
6 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 11 gl_Position = ftransform();
7 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz; 12 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz;
8 pos = normalize(pos); 13 pos = normalize(pos);
9 float d = dot(pos, normalize(gl_NormalMatrix * gl_Normal)); 14 float d = dot(pos, normalize(gl_NormalMatrix * gl_Normal));
@@ -11,10 +16,10 @@ void main()
11 d = 1.0 - d; 16 d = 1.0 - d;
12 d *= d; 17 d *= d;
13 18
14 d = min(d, materialColor.a*2.0); 19 d = min(d, gl_Color.a*2.0);
15 20
16 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; 21 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
17 gl_FrontColor.rgb = materialColor.rgb; 22 gl_FrontColor.rgb = gl_Color.rgb;
18 gl_FrontColor.a = max(d, materialColor.a); 23 gl_FrontColor.a = max(d, gl_Color.a);
19} 24}
20 25
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
index c169fce..9ab986b 100644
--- a/linden/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
@@ -1,31 +1,15 @@
1void applyScatter(inout vec3 color); 1/**
2 * @file lightF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
2 7
3uniform sampler2D diffuseMap; 8uniform sampler2D diffuseMap;
4 9
5void default_lighting() 10void default_lighting()
6{ 11{
7 vec4 color = gl_Color * texture2D(diffuseMap, gl_TexCoord[0].xy); 12 color = gl_Color * texture2D(diffuseMap, gl_TexCoord[0].xy);
8 //applyScatter(color.rgb);
9 gl_FragColor = color; 13 gl_FragColor = color;
10} 14}
11 15
12void alpha_lighting()
13{
14 default_lighting();
15}
16
17void water_lighting(inout vec3 diff)
18{
19 applyScatter(diff);
20}
21
22void terrain_lighting(inout vec3 color)
23{
24 color.rgb *= gl_Color.rgb;
25 applyScatter(color);
26}
27
28vec4 getLightColor()
29{
30 return gl_Color;
31} \ No newline at end of file
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl
new file mode 100644
index 0000000..b12cca9
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl
@@ -0,0 +1,15 @@
1/**
2 * @file lightFullbrightF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8
9uniform sampler2D diffuseMap;
10
11void fullbright_lighting()
12{
13 gl_FragColor = texture2D(diffuseMap, gl_TexCoord[0].xy);
14}
15
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
new file mode 100644
index 0000000..bc795a7
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
@@ -0,0 +1,15 @@
1/**
2 * @file lightFullbrightShinyF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8
9uniform sampler2D diffuseMap;
10uniform samplerCube environmentMap;
11
12void fullbright_shiny_lighting()
13{
14 gl_FragColor = texture2D(diffuseMap, gl_TexCoord[0].xy);
15}
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl
new file mode 100644
index 0000000..b13088f
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl
@@ -0,0 +1,15 @@
1/**
2 * @file lightFullbrightWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8
9uniform sampler2D diffuseMap;
10
11void fullbright_lighting_water()
12{
13 gl_FragColor = texture2D(diffuseMap, gl_TexCoord[0].xy);
14}
15
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl
new file mode 100644
index 0000000..bbbd9f3
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl
@@ -0,0 +1,46 @@
1/**
2 * @file lightFuncSpecularV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8float calcDirectionalLight(vec3 n, vec3 l)
9{
10 float a = max(dot(n,l),0.0);
11 return a;
12}
13
14float calcDirectionalSpecular(vec3 view, vec3 n, vec3 l)
15{
16 return pow(max(dot(reflect(view, n),l), 0.0),8.0);
17}
18
19float calcDirectionalLightSpecular(inout vec4 specular, vec3 view, vec3 n, vec3 l, vec3 lightCol, float da)
20{
21
22 specular.rgb += calcDirectionalSpecular(view,n,l)*lightCol*da;
23 return max(dot(n,l),0.0);
24}
25
26vec3 calcPointLightSpecular(inout vec4 specular, vec3 view, vec3 v, vec3 n, vec3 l, float r, float pw, vec3 lightCol)
27{
28 //get light vector
29 vec3 lv = l-v;
30
31 //get distance
32 float d = length(lv);
33
34 //normalize light vector
35 lv *= 1.0/d;
36
37 //distance attenuation
38 float da = clamp(1.0/(r * d), 0.0, 1.0);
39
40 //angular attenuation
41
42 da *= calcDirectionalLightSpecular(specular, view, n, lv, lightCol, da);
43
44 return da*lightCol;
45}
46
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
new file mode 100644
index 0000000..3e8fdfb
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
@@ -0,0 +1,34 @@
1/**
2 * @file lightFuncV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8
9float calcDirectionalLight(vec3 n, vec3 l)
10{
11 float a = max(dot(n,l),0.0);
12 return a;
13}
14
15float calcPointLight(vec3 v, vec3 n, vec4 lp, float la)
16{
17 //get light vector
18 vec3 lv = lp.xyz-v;
19
20 //get distance
21 float d = length(lv);
22
23 //normalize light vector
24 lv *= 1.0/d;
25
26 //distance attenuation
27 float da = clamp(1.0/(la * d), 0.0, 1.0);
28
29 //angular attenuation
30 da *= calcDirectionalLight(n, lv);
31
32 return da;
33}
34
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
new file mode 100644
index 0000000..c6f7f8b
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
@@ -0,0 +1,17 @@
1/**
2 * @file lightShinyF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8
9uniform sampler2D diffuseMap;
10uniform samplerCube environmentMap;
11
12void shiny_lighting()
13{
14 color = gl_Color * texture2D(diffuseMap, gl_TexCoord[0].xy);
15 gl_FragColor = color;
16}
17
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
new file mode 100644
index 0000000..75f61cc
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
@@ -0,0 +1,17 @@
1/**
2 * @file lightShinyWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8
9uniform sampler2D diffuseMap;
10uniform samplerCube environmentMap;
11
12void shiny_lighting_water()
13{
14 color = gl_Color * texture2D(diffuseMap, gl_TexCoord[0].xy);
15 gl_FragColor = color;
16}
17
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
new file mode 100644
index 0000000..8532129
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
@@ -0,0 +1,26 @@
1/**
2 * @file lightV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8float calcDirectionalLight(vec3 n, vec3 l);
9
10// Same as non-specular lighting in lightV.glsl
11vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol)
12{
13 specularColor.rgb = vec3(0.0, 0.0, 0.0);
14 vec4 col;
15 col.a = color.a;
16
17 col.rgb = gl_LightModel.ambient.rgb + baseCol.rgb;
18
19 col.rgb += gl_LightSource[0].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[0].position.xyz);
20 col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
21
22 col.rgb = min(col.rgb*color.rgb, 1.0);
23
24 return col;
25}
26
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
index e381631..8c2813a 100644
--- a/linden/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
@@ -1,66 +1,11 @@
1/**
2 * @file lightV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
1 7
2float calcDirectionalLight(vec3 n, vec3 l) 8float calcDirectionalLight(vec3 n, vec3 l);
3{
4 float a = max(dot(n,l),0.0);
5 return a;
6}
7
8float calcPointLight(vec3 v, vec3 n, vec3 l, float r, float pw)
9{
10 //get light vector
11 vec3 lv = l-v;
12
13 //get distance
14 float d = length(lv);
15
16 //normalize light vector
17 lv *= 1.0/d;
18
19 //distance attenuation
20 float da = max((r-d)/r, 0.0);
21
22 //da = pow(da, pw);
23
24 //angular attenuation
25 da *= calcDirectionalLight(n, lv);
26
27 return da;
28}
29
30float calcDirectionalSpecular(vec3 view, vec3 n, vec3 l)
31{
32 float a = max(dot(n,l),0.0);
33 return a;
34}
35
36float calcDirectionalLightSpecular(inout vec4 specular, vec3 view, vec3 n, vec3 l, vec3 lightCol, float da)
37{
38
39 specular.rgb += calcDirectionalSpecular(view,n,l)*lightCol*da;
40 return calcDirectionalLight(n,l);
41}
42
43vec3 calcPointLightSpecular(inout vec4 specular, vec3 view, vec3 v, vec3 n, vec3 l, float r, float pw, vec3 lightCol)
44{
45 //get light vector
46 vec3 lv = l-v;
47
48 //get distance
49 float d = length(lv);
50
51 //normalize light vector
52 lv *= 1.0/d;
53
54 //distance attenuation
55 float da = clamp((r-d)/r, 0.0, 1.0);
56
57 //da = pow(da, pw);
58
59 //angular attenuation
60 da *= calcDirectionalLightSpecular(specular, view, n, lv, lightCol, da);
61
62 return da*lightCol;
63}
64 9
65vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseLight) 10vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
66{ 11{
@@ -77,23 +22,3 @@ vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
77 return col; 22 return col;
78} 23}
79 24
80vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec3 baseLight)
81{
82 return calcLighting(pos, norm, color, vec4(baseLight, 1.0));
83}
84
85vec4 calcLighting(vec3 pos, vec3 norm, vec4 color)
86{
87 return calcLighting(pos, norm, color, vec3(0.0,0.0,0.0));
88}
89
90vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol)
91{
92 specularColor.rgb = vec3(0.0, 0.0, 0.0);
93 return calcLighting(pos, norm, color, baseCol);
94}
95
96vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec3 baseCol)
97{
98 return calcLightingSpecular(pos, norm, color, specularColor, vec4(baseCol, 1.0));
99}
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl
new file mode 100644
index 0000000..81dff1e
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl
@@ -0,0 +1,15 @@
1/**
2 * @file lightWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D diffuseMap;
9
10void default_lighting_water()
11{
12 vec4 color = gl_Color * texture2D(diffuseMap, gl_TexCoord[0].xy);
13 gl_FragColor = color;
14}
15
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
new file mode 100644
index 0000000..218585f
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
@@ -0,0 +1,35 @@
1/**
2 * @file sumLightsSpecularV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7float calcDirectionalLightSpecular(inout vec4 specular, vec3 view, vec3 n, vec3 l, vec3 lightCol, float da);
8vec3 atmosAmbient(vec3 light);
9vec3 atmosAffectDirectionalLight(float lightIntensity);
10vec3 atmosGetDiffuseSunlightColor();
11vec3 scaleDownLight(vec3 light);
12
13vec4 sumLightsSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol)
14{
15 vec4 col;
16 col.a = color.a;
17
18
19 vec3 view = normalize(pos);
20
21 /// collect all the specular values from each calcXXXLightSpecular() function
22 vec4 specularSum = vec4(0.0);
23
24 col.rgb = gl_LightSource[1].diffuse.rgb * calcDirectionalLightSpecular(specularColor, view, norm, gl_LightSource[1].position.xyz, gl_LightSource[1].diffuse.rgb, 1.0);
25 col.rgb = scaleDownLight(col.rgb);
26 col.rgb += atmosAmbient(baseCol.rgb);
27 col.rgb += atmosAffectDirectionalLight(calcDirectionalLightSpecular(specularSum, view, norm, gl_LightSource[0].position.xyz,atmosGetDiffuseSunlightColor() * baseCol.a, 1.0));
28
29 col.rgb = min(col.rgb * color.rgb, 1.0);
30 specularColor.rgb = min(specularColor.rgb * specularSum.rgb, 1.0);
31
32 col.rgb += specularColor.rgb;
33
34 return col;
35}
diff --git a/linden/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl b/linden/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
new file mode 100644
index 0000000..e536103
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
@@ -0,0 +1,29 @@
1/**
2 * @file sumLightsV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8float calcDirectionalLight(vec3 n, vec3 l);
9
10vec3 atmosAmbient(vec3 light);
11vec3 atmosAffectDirectionalLight(float lightIntensity);
12vec3 scaleDownLight(vec3 light);
13
14vec4 sumLights(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
15{
16 vec4 col;
17 col.a = color.a;
18
19 col.rgb = gl_LightSource[1].diffuse.rgb * calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
20 col.rgb = scaleDownLight(col.rgb);
21 col.rgb += atmosAmbient(baseLight.rgb);
22 col.rgb += atmosAffectDirectionalLight(calcDirectionalLight(norm, gl_LightSource[0].position.xyz));
23
24 col.rgb = min(col.rgb*color.rgb, 1.0);
25
26 return col;
27}
28
29
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/alphaF.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/alphaF.glsl
deleted file mode 100644
index 0d98f36..0000000
--- a/linden/indra/newview/app_settings/shaders/class1/objects/alphaF.glsl
+++ /dev/null
@@ -1,6 +0,0 @@
1void alpha_lighting();
2
3void main()
4{
5 alpha_lighting();
6}
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/alphaV.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/alphaV.glsl
deleted file mode 100644
index 91821f7..0000000
--- a/linden/indra/newview/app_settings/shaders/class1/objects/alphaV.glsl
+++ /dev/null
@@ -1,21 +0,0 @@
1vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
2void default_scatter(vec3 viewVec, vec3 lightDir);
3
4attribute vec4 materialColor;
5
6void main()
7{
8 //transform vertex
9 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
10 gl_TexCoord[0] = gl_MultiTexCoord0;
11
12 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz;
13 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
14
15 default_scatter(pos, gl_LightSource[0].position.xyz);
16
17 vec4 color = calcLighting(pos, norm, materialColor, gl_Color);
18 color.a = materialColor.a;
19
20 gl_FrontColor = color;
21}
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/bumpshinyF.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/bumpshinyF.glsl
deleted file mode 100644
index 8509c62..0000000
--- a/linden/indra/newview/app_settings/shaders/class1/objects/bumpshinyF.glsl
+++ /dev/null
@@ -1,18 +0,0 @@
1vec4 getLightColor();
2void applyScatter(inout vec3 col);
3
4uniform samplerCube environmentMap;
5uniform sampler2D diffuseMap;
6
7void main()
8{
9 vec4 diff = texture2D(diffuseMap, gl_TexCoord[0].xy);
10 vec3 ref = textureCube(environmentMap, gl_TexCoord[1].xyz).rgb;
11 vec4 specular = gl_TexCoord[2];
12 vec3 col = mix(getLightColor().rgb * diff.rgb, ref, specular.a)+specular.rgb*diff.rgb;
13
14 applyScatter(col);
15
16 gl_FragColor.rgb = col;
17 gl_FragColor.a = diff.a*gl_Color.a;
18}
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/bumpshinyV.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/bumpshinyV.glsl
deleted file mode 100644
index 9a189a2..0000000
--- a/linden/indra/newview/app_settings/shaders/class1/objects/bumpshinyV.glsl
+++ /dev/null
@@ -1,25 +0,0 @@
1vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol);
2void default_scatter(vec3 viewVec, vec3 lightDir);
3
4attribute vec4 materialColor;
5attribute vec4 specularColor;
6
7void main()
8{
9 //transform vertex
10 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
11 gl_TexCoord[0] = gl_MultiTexCoord0;
12
13 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz;
14 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
15
16 vec4 spec = specularColor;
17 gl_FrontColor.rgb = calcLightingSpecular(pos, norm, materialColor, spec, gl_Color).rgb;
18 gl_FrontColor.a = materialColor.a;
19 gl_TexCoord[2] = spec;
20 vec3 ref = reflect(pos,norm);
21 gl_TexCoord[1] = gl_TextureMatrix[1]*vec4(ref,1.0);
22
23 default_scatter(pos.xyz, gl_LightSource[0].position.xyz);
24}
25
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl
new file mode 100755
index 0000000..1b0ffb9
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl
@@ -0,0 +1,13 @@
1/**
2 * @file fullbrightF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void fullbright_lighting();
9
10void main()
11{
12 fullbright_lighting();
13}
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
new file mode 100644
index 0000000..936c228
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
@@ -0,0 +1,13 @@
1/**
2 * @file fullbrightShinyF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void fullbright_shiny_lighting();
9
10void main()
11{
12 fullbright_shiny_lighting();
13}
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
new file mode 100755
index 0000000..ba2aa02
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
@@ -0,0 +1,29 @@
1/**
2 * @file fullbrightShinyV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void calcAtmospherics(vec3 inPositionEye);
9
10uniform vec4 origin;
11
12void main()
13{
14 //transform vertex
15 gl_Position = ftransform();
16
17 vec4 pos = (gl_ModelViewMatrix * gl_Vertex);
18 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
19 vec3 ref = reflect(pos.xyz, -norm);
20
21 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
22 gl_TexCoord[1] = gl_TextureMatrix[1]*vec4(ref,1.0);
23
24 calcAtmospherics(pos.xyz);
25
26 gl_FrontColor = gl_Color;
27
28 gl_FogFragCoord = pos.z;
29}
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl
new file mode 100755
index 0000000..e64ccb8
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl
@@ -0,0 +1,23 @@
1/**
2 * @file fullbrightV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void calcAtmospherics(vec3 inPositionEye);
9
10void main()
11{
12 //transform vertex
13 gl_Position = ftransform();
14 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
15
16 vec4 pos = (gl_ModelViewMatrix * gl_Vertex);
17
18 calcAtmospherics(pos.xyz);
19
20 gl_FrontColor = gl_Color;
21
22 gl_FogFragCoord = pos.z;
23}
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
new file mode 100755
index 0000000..fd855aa
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
@@ -0,0 +1,13 @@
1/**
2 * @file fullbrightWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void fullbright_lighting_water();
9
10void main()
11{
12 fullbright_lighting_water();
13}
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl
index 6942132..bdb0b05 100644
--- a/linden/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl
@@ -1,13 +1,13 @@
1void applyScatter(inout vec3 col); 1/**
2 * @file shinyF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
2 7
3uniform samplerCube environmentMap; 8void shiny_lighting();
4 9
5void main() 10void main()
6{ 11{
7 vec3 ref = textureCube(environmentMap, gl_TexCoord[0].xyz).rgb; 12 shiny_lighting();
8
9 applyScatter(ref);
10
11 gl_FragColor.rgb = ref;
12 gl_FragColor.a = gl_Color.a;
13} 13}
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl
index 16fba01..c2e1ddf 100644
--- a/linden/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl
@@ -1,27 +1,30 @@
1void default_scatter(vec3 viewVec, vec3 lightDir); 1/**
2 * @file shinyV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void calcAtmospherics(vec3 inPositionEye);
2 9
3uniform vec4 origin; 10uniform vec4 origin;
4 11
5void main() 12void main()
6{ 13{
7 //transform vertex 14 //transform vertex
8 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 15 gl_Position = ftransform(); //gl_ModelViewProjectionMatrix * gl_Vertex;
9 16
10 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz; 17 vec4 pos = (gl_ModelViewMatrix * gl_Vertex);
11 vec3 norm = normalize(gl_NormalMatrix * gl_Normal); 18 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
19
20 calcAtmospherics(pos.xyz);
12 21
13 gl_FrontColor = gl_Color; 22 gl_FrontColor = gl_Color;
14 23
15 vec3 ref = reflect(pos, norm); 24 vec3 ref = reflect(pos.xyz, -norm);
16
17 vec3 d = pos - origin.xyz;
18 float dist = dot(normalize(d), ref);
19 vec3 e = d + (ref * max(origin.w-dist, 0.0));
20
21 ref = e - origin.xyz;
22 25
23 gl_TexCoord[0] = gl_TextureMatrix[0]*vec4(ref,1.0); 26 gl_TexCoord[0] = gl_TextureMatrix[0]*vec4(ref,1.0);
24 27
25 default_scatter(pos.xyz, gl_LightSource[0].position.xyz); 28 gl_FogFragCoord = pos.z;
26} 29}
27 30
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl
new file mode 100755
index 0000000..0a2a5f6
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl
@@ -0,0 +1,13 @@
1/**
2 * @file shinyWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void shiny_lighting_water();
9
10void main()
11{
12 shiny_lighting_water();
13}
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl
index ce5ab12..7dacca4 100644
--- a/linden/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl
@@ -1,3 +1,10 @@
1/**
2 * @file simpleF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
1void default_lighting(); 8void default_lighting();
2 9
3void main() 10void main()
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
index 2aa3521..0df89c8 100644
--- a/linden/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
@@ -1,20 +1,26 @@
1vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol); 1/**
2void default_scatter(vec3 viewVec, vec3 lightDir); 2 * @file simpleV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
3 7
4attribute vec4 materialColor; 8vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
9void calcAtmospherics(vec3 inPositionEye);
5 10
6void main() 11void main()
7{ 12{
8 //transform vertex 13 //transform vertex
9 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 14 gl_Position = ftransform(); //gl_ModelViewProjectionMatrix * gl_Vertex;
10 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; 15 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
11 16
12 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz; 17 vec4 pos = (gl_ModelViewMatrix * gl_Vertex);
13 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
14 18
15 default_scatter(pos, gl_LightSource[0].position.xyz); 19 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
20
21 calcAtmospherics(pos.xyz);
16 22
17 vec4 color = calcLighting(pos, norm, materialColor, gl_Color); 23 vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0.));
18 gl_FrontColor = color; 24 gl_FrontColor = color;
19 25
20 gl_FogFragCoord = pos.z; 26 gl_FogFragCoord = pos.z;
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl
new file mode 100755
index 0000000..e066b3d
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl
@@ -0,0 +1,13 @@
1/**
2 * @file simpleWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void default_lighting_water();
9
10void main()
11{
12 default_lighting_water();
13}
diff --git a/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl b/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
new file mode 100644
index 0000000..248c322
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
@@ -0,0 +1,13 @@
1/**
2 * @file atmosphericsF.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8vec3 atmosLighting(vec3 light)
9{
10 /* stub function for fallback compatibility on class1 hardware */
11 return light;
12}
13
diff --git a/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl b/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
new file mode 100644
index 0000000..c2c39e2
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
@@ -0,0 +1,34 @@
1/**
2 * @file atmosphericsHelpersV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8vec3 atmosAmbient(vec3 light)
9{
10 return gl_LightModel.ambient.rgb + light;
11}
12
13vec3 atmosAffectDirectionalLight(float lightIntensity)
14{
15 return gl_LightSource[0].diffuse.rgb * lightIntensity;
16}
17
18vec3 atmosGetDiffuseSunlightColor()
19{
20 return gl_LightSource[0].diffuse.rgb;
21}
22
23vec3 scaleDownLight(vec3 light)
24{
25 /* stub function for fallback compatibility on class1 hardware */
26 return light;
27}
28
29vec3 scaleUpLight(vec3 light)
30{
31 /* stub function for fallback compatibility on class1 hardware */
32 return light;
33}
34
diff --git a/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl b/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
new file mode 100644
index 0000000..551b643
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
@@ -0,0 +1,15 @@
1/**
2 * @file atmosphericsV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void setPositionEye(vec3 v);
9
10void calcAtmospherics(vec3 inPositionEye)
11{
12 /* stub function for fallback compatibility on class1 hardware */
13 setPositionEye(inPositionEye);
14}
15
diff --git a/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl b/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
new file mode 100644
index 0000000..c001a40
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
@@ -0,0 +1,13 @@
1/**
2 * @file atmosphericVarsF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8varying vec3 vary_PositionEye;
9
10vec3 getPositionEye()
11{
12 return vary_PositionEye;
13}
diff --git a/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl b/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
new file mode 100644
index 0000000..1b263b0
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
@@ -0,0 +1,19 @@
1/**
2 * @file atmosphericVarsV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8varying vec3 vary_PositionEye;
9
10
11vec3 getPositionEye()
12{
13 return vary_PositionEye;
14}
15
16void setPositionEye(vec3 v)
17{
18 vary_PositionEye = v;
19}
diff --git a/linden/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl b/linden/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
new file mode 100644
index 0000000..c1ffda1
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
@@ -0,0 +1,19 @@
1/**
2 * @file gammaF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform vec4 gamma;
9
10/// Soft clips the light with a gamma correction
11vec3 scaleSoftClip(vec3 light) {
12 // For compatibility with lower cards. Do nothing.
13 return light;
14}
15
16vec3 fullbrightScaleSoftClip(vec3 light) {
17 return scaleSoftClip(light);
18}
19
diff --git a/linden/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl b/linden/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
new file mode 100644
index 0000000..7097906
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
@@ -0,0 +1,26 @@
1/**
2 * @file transportF.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8vec3 atmosTransport(vec3 light)
9{
10 /* stub function for fallback compatibility on class1 hardware */
11 return light;
12}
13
14vec3 fullbrightAtmosTransport(vec3 light)
15{
16 /* stub function for fallback compatibility on class1 hardware */
17 return light;
18}
19
20
21vec3 fullbrightShinyAtmosTransport(vec3 light)
22{
23 /* stub function for fallback compatibility on class1 hardware */
24 return light;
25}
26
diff --git a/linden/indra/newview/app_settings/shaders/class2/avatar/avatarV.glsl b/linden/indra/newview/app_settings/shaders/class2/avatar/avatarV.glsl
deleted file mode 100644
index b040143..0000000
--- a/linden/indra/newview/app_settings/shaders/class2/avatar/avatarV.glsl
+++ /dev/null
@@ -1,48 +0,0 @@
1vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec3 baseCol);
2mat4 getSkinnedTransform();
3void default_scatter(vec3 viewVec, vec3 lightDir);
4
5attribute vec4 materialColor;
6attribute vec4 binormal;
7
8void main()
9{
10 gl_TexCoord[0] = gl_MultiTexCoord0;
11
12 vec4 pos;
13 mat4 trans = getSkinnedTransform();
14 pos.x = dot(trans[0], gl_Vertex);
15 pos.y = dot(trans[1], gl_Vertex);
16 pos.z = dot(trans[2], gl_Vertex);
17 pos.w = 1.0;
18
19 vec3 norm;
20 norm.x = dot(trans[0].xyz, gl_Normal);
21 norm.y = dot(trans[1].xyz, gl_Normal);
22 norm.z = dot(trans[2].xyz, gl_Normal);
23 norm = normalize(norm);
24
25 vec3 binorm;
26 binorm.x = dot(trans[0].xyz, binormal.xyz);
27 binorm.y = dot(trans[1].xyz, binormal.xyz);
28 binorm.z = dot(trans[2].xyz, binormal.xyz);
29
30 float spec = 1.0-max(dot(reflect(normalize(pos.xyz), norm),gl_LightSource[0].position.xyz), 0.0);
31 spec *= spec;
32 spec = 1.0-spec;
33
34 vec4 color = calcLighting(pos.xyz, norm, materialColor, gl_Color.rgb);
35 gl_FrontColor = color;
36
37 gl_Position = gl_ProjectionMatrix * pos;
38
39 vec3 N = norm;
40 vec3 B = normalize(binorm);
41 vec3 T = cross(N,B);
42
43 //gl_TexCoord[1].xy = gl_MultiTexCoord0.xy + 1.0/512.0 * vec2(dot(T,gl_LightSource[0].position.xyz),
44 // dot(B,gl_LightSource[0].position.xyz));
45
46
47 default_scatter(pos.xyz, gl_LightSource[0].position.xyz);
48} \ No newline at end of file
diff --git a/linden/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl b/linden/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
index 7957edd..3dd62d2 100644
--- a/linden/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
@@ -1,8 +1,12 @@
1vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec3 baseCol); 1/**
2void default_scatter(vec3 viewVec, vec3 lightDir); 2 * @file eyeballV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
3 7
4attribute vec4 materialColor; 8vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol);
5attribute vec4 specularColor; 9void calcAtmospherics(vec3 inPositionEye);
6 10
7void main() 11void main()
8{ 12{
@@ -12,12 +16,15 @@ void main()
12 16
13 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz; 17 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz;
14 vec3 norm = normalize(gl_NormalMatrix * gl_Normal); 18 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
19
20 calcAtmospherics(pos.xyz);
15 21
16 default_scatter(pos.xyz, gl_LightSource[0].position.xyz); 22 // vec4 specular = specularColor;
17 vec4 specular = specularColor; 23 vec4 specular = vec4(1.0);
18 vec4 color = calcLightingSpecular(pos, norm, materialColor, specular, gl_Color.rgb); 24 vec4 color = calcLightingSpecular(pos, norm, gl_Color, specular, vec4(0.0));
19 25
20 gl_FrontColor = color; 26 gl_FrontColor = color;
21 gl_FogFragCoord = pos.z; 27 gl_FogFragCoord = pos.z;
28
22} 29}
23 30
diff --git a/linden/indra/newview/app_settings/shaders/class2/effects/blurF.glsl b/linden/indra/newview/app_settings/shaders/class2/effects/blurF.glsl
new file mode 100644
index 0000000..9443320
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/effects/blurF.glsl
@@ -0,0 +1,31 @@
1/**
2 * @file blurf.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2DRect RenderTexture;
9uniform float bloomStrength;
10
11varying vec4 gl_TexCoord[gl_MaxTextureCoords];
12void main(void)
13{
14 float blurWeights[7];
15 blurWeights[0] = 0.05;
16 blurWeights[1] = 0.1;
17 blurWeights[2] = 0.2;
18 blurWeights[3] = 0.3;
19 blurWeights[4] = 0.2;
20 blurWeights[5] = 0.1;
21 blurWeights[6] = 0.05;
22
23 vec3 color = vec3(0,0,0);
24 for (int i = 0; i < 7; i++){
25 color += vec3(texture2DRect(RenderTexture, gl_TexCoord[i].st)) * blurWeights[i];
26 }
27
28 color *= bloomStrength;
29
30 gl_FragColor = vec4(color, 1.0);
31}
diff --git a/linden/indra/newview/app_settings/shaders/class2/effects/blurV.glsl b/linden/indra/newview/app_settings/shaders/class2/effects/blurV.glsl
new file mode 100644
index 0000000..ba65b16
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/effects/blurV.glsl
@@ -0,0 +1,35 @@
1/**
2 * @file blurV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform vec2 texelSize;
9uniform vec2 blurDirection;
10uniform float blurWidth;
11
12void main(void)
13{
14 // Transform vertex
15 gl_Position = ftransform();
16
17 vec2 blurDelta = texelSize * blurDirection * vec2(blurWidth, blurWidth);
18 vec2 s = gl_MultiTexCoord0.st - (blurDelta * 3.0);
19
20 // for (int i = 0; i < 7; i++) {
21 // gl_TexCoord[i].st = s + (i * blurDelta);
22 // }
23
24 // MANUALLY UNROLL
25 gl_TexCoord[0].st = s;
26 gl_TexCoord[1].st = s + blurDelta;
27 gl_TexCoord[2].st = s + (2. * blurDelta);
28 gl_TexCoord[3].st = s + (3. * blurDelta);
29 gl_TexCoord[4].st = s + (4. * blurDelta);
30 gl_TexCoord[5].st = s + (5. * blurDelta);
31 gl_TexCoord[6].st = s + (6. * blurDelta);
32
33 // gl_TexCoord[0].st = s;
34 // gl_TexCoord[1].st = blurDelta;
35}
diff --git a/linden/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl b/linden/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl
new file mode 100644
index 0000000..623ef7a
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl
@@ -0,0 +1,31 @@
1/**
2 * @file colorFilterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2DRect RenderTexture;
9uniform float brightness;
10uniform float contrast;
11uniform vec3 contrastBase;
12uniform float saturation;
13uniform vec3 lumWeights;
14
15const float gamma = 2.0;
16
17void main(void)
18{
19 vec3 color = vec3(texture2DRect(RenderTexture, gl_TexCoord[0].st));
20
21 /// Modulate brightness
22 color *= brightness;
23
24 /// Modulate contrast
25 color = mix(contrastBase, color, contrast);
26
27 /// Modulate saturation
28 color = mix(vec3(dot(color, lumWeights)), color, saturation);
29
30 gl_FragColor = vec4(color, 1.0);
31}
diff --git a/linden/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl b/linden/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl
new file mode 100644
index 0000000..29c2a09
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl
@@ -0,0 +1,14 @@
1/**
2 * @file drawQuadV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void main(void)
9{
10 //transform vertex
11 gl_Position = ftransform();
12 gl_TexCoord[0] = gl_MultiTexCoord0;
13 gl_TexCoord[1] = gl_MultiTexCoord1;
14}
diff --git a/linden/indra/newview/app_settings/shaders/class2/effects/extractF.glsl b/linden/indra/newview/app_settings/shaders/class2/effects/extractF.glsl
new file mode 100644
index 0000000..a1583b1
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/effects/extractF.glsl
@@ -0,0 +1,22 @@
1/**
2 * @file extractF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2DRect RenderTexture;
9uniform float extractLow;
10uniform float extractHigh;
11uniform vec3 lumWeights;
12
13void main(void)
14{
15 /// Get scene color
16 vec3 color = vec3(texture2DRect(RenderTexture, gl_TexCoord[0].st));
17
18 /// Extract luminance and scale up by night vision brightness
19 float lum = smoothstep(extractLow, extractHigh, dot(color, lumWeights));
20
21 gl_FragColor = vec4(vec3(lum), 1.0);
22}
diff --git a/linden/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl b/linden/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl
new file mode 100644
index 0000000..271d5cf
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl
@@ -0,0 +1,42 @@
1/**
2 * @file nightVisionF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2DRect RenderTexture;
9uniform sampler2D NoiseTexture;
10uniform float brightMult;
11uniform float noiseStrength;
12
13float luminance(vec3 color)
14{
15 /// CALCULATING LUMINANCE (Using NTSC lum weights)
16 /// http://en.wikipedia.org/wiki/Luma_%28video%29
17 return dot(color, vec3(0.299, 0.587, 0.114));
18}
19
20void main(void)
21{
22 /// Get scene color
23 vec3 color = vec3(texture2DRect(RenderTexture, gl_TexCoord[0].st));
24
25 /// Extract luminance and scale up by night vision brightness
26 float lum = luminance(color) * brightMult;
27
28 /// Convert into night vision color space
29 /// Newer NVG colors (crisper and more saturated)
30 vec3 outColor = (lum * vec3(0.91, 1.21, 0.9)) + vec3(-0.07, 0.1, -0.12);
31
32 /// Add noise
33 float noiseValue = texture2D(NoiseTexture, gl_TexCoord[1].st).r;
34 noiseValue = (noiseValue - 0.5) * noiseStrength;
35
36 /// Older NVG colors (more muted)
37 // vec3 outColor = (lum * vec3(0.82, 0.75, 0.83)) + vec3(0.05, 0.32, -0.11);
38
39 outColor += noiseValue;
40
41 gl_FragColor = vec4(outColor, 1.0);
42}
diff --git a/linden/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl b/linden/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl
new file mode 100644
index 0000000..e55d278
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl
@@ -0,0 +1,14 @@
1/**
2 * @file simpleF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2DRect RenderTexture;
9
10void main(void)
11{
12 vec3 color = vec3(texture2DRect(RenderTexture, gl_TexCoord[0].st));
13 gl_FragColor = vec4(1.0 - color, 1.0);
14}
diff --git a/linden/indra/newview/app_settings/shaders/class2/environment/terrainF.glsl b/linden/indra/newview/app_settings/shaders/class2/environment/terrainF.glsl
new file mode 100644
index 0000000..4253bc2
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/environment/terrainF.glsl
@@ -0,0 +1,38 @@
1/**
2 * @file terrainF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D detail_0;
9uniform sampler2D detail_1;
10uniform sampler2D detail_2;
11uniform sampler2D detail_3;
12uniform sampler2D alpha_ramp;
13
14vec3 atmosLighting(vec3 light);
15
16vec3 scaleSoftClip(vec3 color);
17
18void main()
19{
20 /// Note: This should duplicate the blending functionality currently used for the terrain rendering.
21
22 /// TODO Confirm tex coords and bind them appropriately in vert shader.
23 vec4 color0 = texture2D(detail_0, gl_TexCoord[0].xy);
24 vec4 color1 = texture2D(detail_1, gl_TexCoord[0].xy);
25 vec4 color2 = texture2D(detail_2, gl_TexCoord[0].xy);
26 vec4 color3 = texture2D(detail_3, gl_TexCoord[0].xy);
27
28 float alpha1 = texture2D(alpha_ramp, gl_TexCoord[0].zw).a;
29 float alpha2 = texture2D(alpha_ramp,gl_TexCoord[1].xy).a;
30 float alphaFinal = texture2D(alpha_ramp, gl_TexCoord[1].zw).a;
31 vec4 outColor = mix( mix(color3, color2, alpha2), mix(color1, color0, alpha1), alphaFinal );
32
33 /// Add WL Components
34 outColor.rgb = atmosLighting(outColor.rgb * gl_Color.rgb);
35
36 gl_FragColor = vec4(scaleSoftClip(outColor.rgb), 1.0);
37}
38
diff --git a/linden/indra/newview/app_settings/shaders/class2/environment/terrainV.glsl b/linden/indra/newview/app_settings/shaders/class2/environment/terrainV.glsl
new file mode 100644
index 0000000..119d55a
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/environment/terrainV.glsl
@@ -0,0 +1,52 @@
1/**
2 * @file terrainV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8void calcAtmospherics(vec3 inPositionEye);
9
10vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
11
12vec4 texgen_object(vec4 vpos, vec4 tc, mat4 mat, vec4 tp0, vec4 tp1)
13{
14 vec4 tcoord;
15
16 tcoord.x = dot(vpos, tp0);
17 tcoord.y = dot(vpos, tp1);
18 tcoord.z = tc.z;
19 tcoord.w = tc.w;
20
21 tcoord = mat * tcoord;
22
23 return tcoord;
24}
25
26void main()
27{
28 //transform vertex
29 gl_Position = ftransform();
30
31 vec4 pos = gl_ModelViewMatrix * gl_Vertex;
32 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
33
34 /// Potentially better without it for water.
35 pos /= pos.w;
36
37 calcAtmospherics((gl_ModelViewMatrix * gl_Vertex).xyz);
38
39 vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0));
40
41 gl_FrontColor = color;
42
43 // Transform and pass tex coords
44 gl_TexCoord[0].xy = texgen_object(gl_Vertex, gl_MultiTexCoord0, gl_TextureMatrix[0], gl_ObjectPlaneS[0], gl_ObjectPlaneT[0]).xy;
45
46 vec4 t = gl_MultiTexCoord1;
47
48 gl_TexCoord[0].zw = t.xy;
49 gl_TexCoord[1].xy = t.xy-vec2(2.0, 0.0);
50 gl_TexCoord[1].zw = t.xy-vec2(1.0, 0.0);
51}
52
diff --git a/linden/indra/newview/app_settings/shaders/class2/environment/terrainWaterF.glsl b/linden/indra/newview/app_settings/shaders/class2/environment/terrainWaterF.glsl
new file mode 100755
index 0000000..3a98970
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/environment/terrainWaterF.glsl
@@ -0,0 +1,39 @@
1/**
2 * @file terrainWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D detail_0;
9uniform sampler2D detail_1;
10uniform sampler2D detail_2;
11uniform sampler2D detail_3;
12uniform sampler2D alpha_ramp;
13
14vec3 atmosLighting(vec3 light);
15
16vec4 applyWaterFog(vec4 color);
17
18void main()
19{
20 /// Note: This should duplicate the blending functionality currently used for the terrain rendering.
21
22 /// TODO Confirm tex coords and bind them appropriately in vert shader.
23 vec4 color0 = texture2D(detail_0, gl_TexCoord[0].xy);
24 vec4 color1 = texture2D(detail_1, gl_TexCoord[0].xy);
25 vec4 color2 = texture2D(detail_2, gl_TexCoord[0].xy);
26 vec4 color3 = texture2D(detail_3, gl_TexCoord[0].xy);
27
28 float alpha1 = texture2D(alpha_ramp, gl_TexCoord[0].zw).a;
29 float alpha2 = texture2D(alpha_ramp,gl_TexCoord[1].xy).a;
30 float alphaFinal = texture2D(alpha_ramp, gl_TexCoord[1].zw).a;
31 vec4 outColor = mix( mix(color3, color2, alpha2), mix(color1, color0, alpha1), alphaFinal );
32
33 /// Add WL Components
34 outColor.rgb = atmosLighting(outColor.rgb * gl_Color.rgb);
35
36 outColor = applyWaterFog(outColor);
37 gl_FragColor = outColor;
38}
39
diff --git a/linden/indra/newview/app_settings/shaders/class2/environment/underWaterF.glsl b/linden/indra/newview/app_settings/shaders/class2/environment/underWaterF.glsl
new file mode 100644
index 0000000..1998fea
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/environment/underWaterF.glsl
@@ -0,0 +1,88 @@
1/**
2 * @file underWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D diffuseMap;
9uniform sampler2D bumpMap;
10uniform sampler2D screenTex;
11uniform sampler2D refTex;
12uniform sampler2D screenDepth;
13
14uniform vec4 fogCol;
15uniform vec3 lightDir;
16uniform vec3 specular;
17uniform float lightExp;
18uniform vec2 fbScale;
19uniform float refScale;
20uniform float znear;
21uniform float zfar;
22uniform float kd;
23uniform vec4 waterPlane;
24uniform vec3 eyeVec;
25uniform vec4 waterFogColor;
26uniform float waterFogDensity;
27uniform float waterFogKS;
28uniform vec2 screenRes;
29
30//bigWave is (refCoord.w, view.w);
31varying vec4 refCoord;
32varying vec4 littleWave;
33varying vec4 view;
34
35vec4 applyWaterFog(vec4 color, vec3 viewVec)
36{
37 //normalize view vector
38 vec3 view = normalize(viewVec);
39 float es = -view.z;
40
41 //find intersection point with water plane and eye vector
42
43 //get eye depth
44 float e0 = max(-waterPlane.w, 0.0);
45
46 //get object depth
47 float depth = length(viewVec);
48
49 //get "thickness" of water
50 float l = max(depth, 0.1);
51
52 float kd = waterFogDensity;
53 float ks = waterFogKS;
54 vec4 kc = waterFogColor;
55
56 float F = 0.98;
57
58 float t1 = -kd * pow(F, ks * e0);
59 float t2 = kd + ks * es;
60 float t3 = pow(F, t2*l) - 1.0;
61
62 float L = min(t1/t2*t3, 1.0);
63
64 float D = pow(0.98, l*kd);
65 //return vec4(1.0, 0.0, 1.0, 1.0);
66 return color * D + kc * L;
67 //depth /= 10.0;
68 //return vec4(depth,depth,depth,0.0);
69}
70
71void main()
72{
73 vec4 color;
74
75 //get detail normals
76 vec3 wave1 = texture2D(bumpMap, vec2(refCoord.w, view.w)).xyz*2.0-1.0;
77 vec3 wave2 = texture2D(bumpMap, littleWave.xy).xyz*2.0-1.0;
78 vec3 wave3 = texture2D(bumpMap, littleWave.zw).xyz*2.0-1.0;
79 vec3 wavef = normalize(wave1+wave2+wave3);
80
81 //figure out distortion vector (ripply)
82 vec2 distort = (refCoord.xy/refCoord.z) * 0.5 + 0.5;
83 distort = distort+wavef.xy*refScale;
84
85 vec4 fb = texture2D(screenTex, distort);
86
87 gl_FragColor = applyWaterFog(fb,view.xyz);
88}
diff --git a/linden/indra/newview/app_settings/shaders/class2/environment/waterF.glsl b/linden/indra/newview/app_settings/shaders/class2/environment/waterF.glsl
index 11a057b..6ec3dc4 100644
--- a/linden/indra/newview/app_settings/shaders/class2/environment/waterF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class2/environment/waterF.glsl
@@ -1,138 +1,117 @@
1void applyScatter(inout vec3 color); 1/**
2 * @file waterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8vec3 scaleSoftClip(vec3 inColor);
9vec3 atmosTransport(vec3 inColor);
2 10
3uniform sampler2D diffuseMap;
4uniform sampler2D bumpMap; 11uniform sampler2D bumpMap;
5uniform samplerCube environmentMap; //: TEXUNIT4, // Environment map texture 12uniform sampler2D screenTex;
6uniform sampler2D screenTex; // : TEXUNIT5 13uniform sampler2D refTex;
7 14
15uniform float sunAngle;
16uniform float sunAngle2;
8uniform vec3 lightDir; 17uniform vec3 lightDir;
9uniform vec3 specular; 18uniform vec3 specular;
10uniform float lightExp; 19uniform float lightExp;
11uniform vec2 fbScale;
12uniform float refScale; 20uniform float refScale;
21uniform float kd;
22uniform vec2 screenRes;
23uniform vec3 normScale;
24uniform float fresnelScale;
25uniform float fresnelOffset;
26uniform float blurMultiplier;
13 27
14float msin(float x) {
15 float k = sin(x)+1.0;
16 k *= 0.5;
17 k *= k;
18 return 2.0 * k;
19}
20 28
21float mcos(float x) { 29//bigWave is (refCoord.w, view.w);
22 float k = cos(x)+1.0; 30varying vec4 refCoord;
23 k *= 0.5; 31varying vec4 littleWave;
24 k *= k; 32varying vec4 view;
25 return 2.0 * k;
26}
27 33
28float waveS(vec2 v, float t, float a, float f, vec2 d, float s, sampler1D sinMap) 34void main()
29{ 35{
30 return texture1D(sinMap, (dot(d, v)*f + t*s)*f).r*a; 36 vec4 color;
31} 37
38 float dist = length(view.xy);
39
40 //normalize view vector
41 vec3 viewVec = normalize(view.xyz);
42
43 //get wave normals
44 vec3 wave1 = texture2D(bumpMap, vec2(refCoord.w, view.w)).xyz*2.0-1.0;
45 vec3 wave2 = texture2D(bumpMap, littleWave.xy).xyz*2.0-1.0;
46 vec3 wave3 = texture2D(bumpMap, littleWave.zw).xyz*2.0-1.0;
47 //get base fresnel components
48
49 vec3 df = vec3(
50 dot(viewVec, wave1),
51 dot(viewVec, (wave2 + wave3) * 0.5),
52 dot(viewVec, wave3)
53 ) * fresnelScale + fresnelOffset;
54 df *= df;
55
56 vec2 distort = (refCoord.xy/refCoord.z) * 0.5 + 0.5;
57
58 float dist2 = dist;
59 dist = max(dist, 5.0);
60
61 float dmod = sqrt(dist);
62
63 vec2 dmod_scale = vec2(dmod*dmod, dmod);
64
65 //get reflected color
66 vec2 refdistort1 = wave1.xy*normScale.x;
67 vec2 refvec1 = distort+refdistort1/dmod_scale;
68 vec4 refcol1 = texture2D(refTex, refvec1);
69
70 vec2 refdistort2 = wave2.xy*normScale.y;
71 vec2 refvec2 = distort+refdistort2/dmod_scale;
72 vec4 refcol2 = texture2D(refTex, refvec2);
73
74 vec2 refdistort3 = wave3.xy*normScale.z;
75 vec2 refvec3 = distort+refdistort3/dmod_scale;
76 vec4 refcol3 = texture2D(refTex, refvec3);
32 77
33float waveC(vec2 v, float t, float a, float f, vec2 d, float s, sampler1D sinMap) 78 vec4 refcol = refcol1 + refcol2 + refcol3;
34{ 79 float df1 = df.x + df.y + df.z;
35 return texture1D(sinMap, (dot(d, v)*f + t*s)*f).g*a*2.0-1.0; 80 refcol *= df1 * 0.333;
36} 81
82 vec3 wavef = (wave1 + wave2 * 0.4 + wave3 * 0.6) * 0.5;
83
84 wavef.z *= max(-viewVec.z, 0.1);
85 wavef = normalize(wavef);
86
87 float df2 = dot(viewVec, wavef) * fresnelScale+fresnelOffset;
88
89 vec2 refdistort4 = wavef.xy*0.125;
90 refdistort4.y -= abs(refdistort4.y);
91 vec2 refvec4 = distort+refdistort4/dmod;
92 float dweight = min(dist2*blurMultiplier, 1.0);
93 vec4 baseCol = texture2D(refTex, refvec4);
94 refcol = mix(baseCol*df2, refcol, dweight);
37 95
38float magnitude(vec3 vec) { 96 //get specular component
39 return sqrt(dot(vec,vec)); 97 float spec = clamp(dot(lightDir, (reflect(viewVec,wavef))),0.0,1.0);
40} 98
41 99 //harden specular
42vec3 mreflect(vec3 i, vec3 n) { 100 spec = pow(spec, 128.0);
43 return i + n * 2.0 * abs(dot(n,i))+vec3(0.0,0.0,0.5);
44}
45
46void main()
47{
48 vec2 texCoord = gl_TexCoord[0].xy; // Texture coordinates
49 vec2 littleWave1 = gl_TexCoord[0].zw;
50 vec2 littleWave2 = gl_TexCoord[1].xy;
51 vec2 bigWave = gl_TexCoord[1].zw;
52 vec3 viewVec = gl_TexCoord[2].xyz;
53 vec4 refCoord = gl_TexCoord[3];
54 vec4 col = gl_Color;
55 vec4 color;
56
57 //get color from alpha map (alpha denotes water depth), rgb denotes water color
58 vec4 wcol = texture2D(diffuseMap, texCoord.xy);
59
60 //store texture alpha
61 float da = wcol.a;
62
63 //modulate by incoming water color
64 //wcol.a *= refCoord.w;
65
66 //scale wcol.a (water depth) for steep transition
67 wcol.a *= wcol.a;
68
69 //normalize view vector
70 viewVec = normalize(viewVec);
71
72 //get bigwave normal
73 vec3 wavef = texture2D(bumpMap, bigWave).xyz*2.0;
74
75 vec3 view = vec3(viewVec.x, viewVec.y, viewVec.z);
76
77 float dx = 1.0-(dot(wavef*2.0-vec3(1.0), view))*da;
78 dx *= 0.274;
79
80 //get detail normals
81 vec3 dcol = texture2D(bumpMap, littleWave1+dx*view.xy).rgb*0.75;
82 dcol += texture2D(bumpMap, littleWave2+view.xy*dx*0.1).rgb*1.25;
83
84 //interpolate between big waves and little waves (big waves in deep water)
85 wavef = wavef*wcol.a + dcol*(1.0-wcol.a);
86
87 //crunch normal to range [-1,1]
88 wavef -= vec3(1,1,1);
89
90 //get base fresnel component
91 float df = dot(viewVec,wavef);
92 //reposition fresnel to latter half of [0,1]
93 df = 1.0-clamp(df,0.0,1.0);
94 101
95 //set output alpha based on fresnel 102 //figure out distortion vector (ripply)
96 color.a = clamp((df+da)*0.5,0.0,1.0); 103 vec2 distort2 = distort+wavef.xy*refScale/max(dmod*df1, 1.0);
97 104
98 //calculate reflection vector 105 vec4 fb = texture2D(screenTex, distort2);
99 vec3 ref = reflect(viewVec.xyz, wavef); 106
100 107 //mix with reflection
101 //get specular component 108 // Note we actually want to use just df1, but multiplying by 0.999999 gets around and nvidia compiler bug
102 float spec = clamp(dot(lightDir, normalize(ref)),0.0,1.0); 109 color.rgb = mix(fb.rgb, refcol.rgb, df1 * 0.99999);
103 110 color.rgb += spec * specular;
104 //fudge reflection to be more noisy at good angles 111
105 ref.z = ref.z*ref.z+df*df*0.5; 112 color.rgb = atmosTransport(color.rgb);
106 113 color.rgb = scaleSoftClip(color.rgb);
107 //get diffuse component 114 color.a = spec * sunAngle2;
108 float diff = clamp((abs(dot(ref, wavef))),0.0,1.0)*0.9;
109
110 //fudge diffuse for extra contrast and ambience
111 diff *= diff;
112 diff += 0.4;
113
114 //set diffuse color contribution
115 color.rgb = textureCube(environmentMap, ref).rgb*diff;
116
117 //harden specular
118 spec = pow(spec, lightExp);
119
120 //add specular color contribution
121 color.rgb += spec * specular;
122 115
123 //figure out distortion vector (ripply) 116 gl_FragColor = color;
124 vec2 distort = clamp(((refCoord.xy/refCoord.z) * 0.5 + 0.5 + wavef.xy*refScale),0.0,0.99);
125
126 //read from framebuffer (offset)
127 vec4 fb = texture2D(screenTex, distort*fbScale);
128
129 //tint by framebuffer
130 color.rgb = color.a*color.rgb + (1.0-color.a)*fb.rgb;
131
132 //apply fog
133 applyScatter(color.rgb);
134
135 color.a = spec*0.5+fb.a;
136
137 gl_FragColor = color;
138} 117}
diff --git a/linden/indra/newview/app_settings/shaders/class2/environment/waterFogF.glsl b/linden/indra/newview/app_settings/shaders/class2/environment/waterFogF.glsl
new file mode 100644
index 0000000..522c990
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/environment/waterFogF.glsl
@@ -0,0 +1,54 @@
1/**
2 * @file waterFogF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform vec4 lightnorm;
9uniform vec4 waterPlane;
10uniform vec4 waterFogColor;
11uniform float waterFogDensity;
12uniform float waterFogKS;
13
14vec3 getPositionEye();
15
16vec4 applyWaterFog(vec4 color)
17{
18 //normalize view vector
19 vec3 view = normalize(getPositionEye());
20 float es = -(dot(view, waterPlane.xyz));
21
22 //find intersection point with water plane and eye vector
23
24 //get eye depth
25 float e0 = max(-waterPlane.w, 0.0);
26
27 vec3 int_v = waterPlane.w > 0.0 ? view * waterPlane.w/es : vec3(0.0, 0.0, 0.0);
28
29 //get object depth
30 float depth = length(getPositionEye() - int_v);
31
32 //get "thickness" of water
33 float l = max(depth, 0.1);
34
35 float kd = waterFogDensity;
36 float ks = waterFogKS;
37 vec4 kc = waterFogColor;
38
39 float F = 0.98;
40
41 float t1 = -kd * pow(F, ks * e0);
42 float t2 = kd + ks * es;
43 float t3 = pow(F, t2*l) - 1.0;
44
45 float L = min(t1/t2*t3, 1.0);
46
47 float D = pow(0.98, l*kd);
48
49 color.rgb = color.rgb * D + kc.rgb * L;
50 color.a = kc.a + color.a;
51
52 return color;
53}
54
diff --git a/linden/indra/newview/app_settings/shaders/class2/environment/waterV.glsl b/linden/indra/newview/app_settings/shaders/class2/environment/waterV.glsl
deleted file mode 100644
index 25309fa..0000000
--- a/linden/indra/newview/app_settings/shaders/class2/environment/waterV.glsl
+++ /dev/null
@@ -1,53 +0,0 @@
1void default_scatter(vec3 viewVec, vec3 lightDir);
2
3uniform vec2 d1;
4uniform vec2 d2;
5uniform float time;
6uniform vec3 eyeVec;
7
8float wave(vec2 v, float t, float f, vec2 d, float s)
9{
10 return (dot(d, v)*f + t*s)*f;
11}
12
13void main()
14{
15 //transform vertex
16 vec4 position = gl_Vertex;
17 mat4 modelViewProj = gl_ModelViewProjectionMatrix;
18 vec4 oPosition = modelViewProj * position;
19 vec3 oRefCoord = oPosition.xyz + vec3(0, 0, 0.2);
20
21 //get view vector
22 vec4 oEyeVec;
23 oEyeVec.xyz = position.xyz-eyeVec;
24
25 //get wave position parameter (create sweeping horizontal waves)
26 vec3 v = position.xyz;
27 v.x += (cos(v.x*0.08+time*0.01)+sin(v.y*0.02))*6.0;
28
29 //get two normal map (detail map) texture coordinates
30 vec2 oTexCoord = gl_MultiTexCoord0.xy;
31 vec2 littleWave1 = (v.xy)*vec2(0.7, 1.5)+d2*time*0.065;
32 vec2 littleWave2 = (v.xy)*vec2(0.07, 0.15)-d1*time*0.087;
33
34 //pass wave parameters to pixel shader
35 float t = time * 0.075;
36 vec2 bigWave = (v.xy)*vec2(0.04,0.04)+d1*t;
37
38 //pass color and fog color to pixel shader
39 vec4 col = gl_Color;
40 col.a = clamp(abs(dot(normalize(oEyeVec.xyz), vec3(0,0,1))),0.0,1.0);
41 col.a = 1.0-col.a;
42 col.a += 0.75;
43 default_scatter((gl_ModelViewMatrix * gl_Vertex).xyz, gl_LightSource[0].position.xyz);
44
45 gl_Position = oPosition;
46 gl_TexCoord[0].xy = oTexCoord;
47 gl_TexCoord[0].zw = littleWave1;
48 gl_TexCoord[1].xy = littleWave2;
49 gl_TexCoord[1].zw = bigWave;
50 gl_TexCoord[2].xyz = oEyeVec.xyz;
51 gl_TexCoord[3].xyz = oRefCoord;
52 gl_FrontColor = col;
53}
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/lightF.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/lightF.glsl
index 6f732ed..b372d66 100644
--- a/linden/indra/newview/app_settings/shaders/class2/lighting/lightF.glsl
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/lightF.glsl
@@ -1,36 +1,23 @@
1void applyScatter(inout vec3 color); 1/**
2 * @file lightF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
2 7
3uniform sampler2D diffuseMap; 8uniform sampler2D diffuseMap;
4 9
10vec3 atmosLighting(vec3 light);
11vec3 scaleSoftClip(vec3 light);
12
5void default_lighting() 13void default_lighting()
6{ 14{
7 vec4 color = gl_Color * texture2D(diffuseMap, gl_TexCoord[0].xy); 15 vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy) * gl_Color;
8 //applyScatter(color.rgb); 16
9 gl_FragColor = color; 17 color.rgb = atmosLighting(color.rgb);
10}
11 18
12void alpha_lighting() 19 color.rgb = scaleSoftClip(color.rgb);
13{
14 vec4 diff = texture2D(diffuseMap, gl_TexCoord[0].xy);
15 vec3 color = gl_Color.rgb * diff.rgb;
16 applyScatter(color);
17 gl_FragColor.rgb = color;
18 gl_FragColor.a = diff.a * gl_Color.a;
19}
20 20
21void water_lighting(inout vec3 diff) 21 gl_FragColor = color;
22{
23 diff = (diff*0.9 + gl_Color.rgb*0.1);
24 applyScatter(diff);
25}
26
27void terrain_lighting(inout vec3 color)
28{
29 color.rgb *= gl_Color.rgb;
30 applyScatter(color);
31} 22}
32 23
33vec4 getLightColor()
34{
35 return gl_Color;
36} \ No newline at end of file
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightF.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightF.glsl
new file mode 100644
index 0000000..e6b6d85
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightF.glsl
@@ -0,0 +1,23 @@
1/**
2 * @file lightFullbrightF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D diffuseMap;
9
10vec3 fullbrightAtmosTransport(vec3 light);
11vec3 fullbrightScaleSoftClip(vec3 light);
12
13void fullbright_lighting()
14{
15 vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy) * gl_Color;
16
17 color.rgb = fullbrightAtmosTransport(color.rgb);
18
19 color.rgb = fullbrightScaleSoftClip(color.rgb);
20
21 gl_FragColor = color;
22}
23
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightShinyF.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightShinyF.glsl
new file mode 100644
index 0000000..8f408c0
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightShinyF.glsl
@@ -0,0 +1,30 @@
1/**
2 * @file lightFullbrightShinyF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D diffuseMap;
9uniform samplerCube environmentMap;
10
11vec3 fullbrightShinyAtmosTransport(vec3 light);
12vec3 fullbrightScaleSoftClip(vec3 light);
13
14void fullbright_shiny_lighting()
15{
16 vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy);
17 color.rgb *= gl_Color.rgb;
18
19 vec3 envColor = textureCube(environmentMap, gl_TexCoord[1].xyz).rgb;
20 color.rgb = mix(color.rgb, envColor.rgb, gl_Color.a);
21
22 color.rgb = fullbrightShinyAtmosTransport(color.rgb);
23
24 color.rgb = fullbrightScaleSoftClip(color.rgb);
25
26 color.a = max(color.a, gl_Color.a);
27
28 gl_FragColor = color;
29}
30
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightWaterF.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightWaterF.glsl
new file mode 100644
index 0000000..060ad9c
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightWaterF.glsl
@@ -0,0 +1,21 @@
1/**
2 * @file lightFullbrightWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D diffuseMap;
9
10vec3 fullbrightAtmosTransport(vec3 light);
11vec4 applyWaterFog(vec4 color);
12
13void fullbright_lighting_water()
14{
15 vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy) * gl_Color;
16
17 color.rgb = fullbrightAtmosTransport(color.rgb);
18
19 gl_FragColor = applyWaterFog(color);
20}
21
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/lightShinyF.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/lightShinyF.glsl
new file mode 100644
index 0000000..b3927c7
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/lightShinyF.glsl
@@ -0,0 +1,29 @@
1/**
2 * @file lightShinyF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D diffuseMap;
9uniform samplerCube environmentMap;
10
11vec3 scaleSoftClip(vec3 light);
12vec3 atmosLighting(vec3 light);
13vec4 applyWaterFog(vec4 color);
14
15void shiny_lighting()
16{
17 vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy);
18 color.rgb *= gl_Color.rgb;
19
20 vec3 envColor = textureCube(environmentMap, gl_TexCoord[1].xyz).rgb;
21 color.rgb = mix(color.rgb, envColor.rgb, gl_Color.a);
22
23 color.rgb = atmosLighting(color.rgb);
24
25 color.rgb = scaleSoftClip(color.rgb);
26 color.a = max(color.a, gl_Color.a);
27 gl_FragColor = color;
28}
29
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/lightShinyWaterF.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/lightShinyWaterF.glsl
new file mode 100644
index 0000000..f090306
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/lightShinyWaterF.glsl
@@ -0,0 +1,27 @@
1/**
2 * @file lightShinyWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8
9uniform sampler2D diffuseMap;
10uniform samplerCube environmentMap;
11
12vec3 atmosLighting(vec3 light);
13vec4 applyWaterFog(vec4 color);
14
15void shiny_lighting_water()
16{
17 vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy);
18 color.rgb *= gl_Color.rgb;
19
20 vec3 envColor = textureCube(environmentMap, gl_TexCoord[1].xyz).rgb;
21 color.rgb = mix(color.rgb, envColor.rgb, gl_Color.a);
22
23 color.rgb = atmosLighting(color.rgb);
24 color.a = max(color.a, gl_Color.a);
25 gl_FragColor = applyWaterFog(color);
26}
27
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/lightSpecularV.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/lightSpecularV.glsl
new file mode 100644
index 0000000..c3384ff
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/lightSpecularV.glsl
@@ -0,0 +1,16 @@
1/**
2 * @file lightSpecularV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8// All lights, no specular highlights
9
10vec4 sumLightsSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol);
11
12vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol)
13{
14 return sumLightsSpecular(pos, norm, color, specularColor, baseCol);
15}
16
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/lightV.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/lightV.glsl
index b15960d..ff3bcb5 100644
--- a/linden/indra/newview/app_settings/shaders/class2/lighting/lightV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/lightV.glsl
@@ -1,126 +1,16 @@
1// All lights, no specular highlights 1/**
2 2 * @file lightV.glsl
3float calcDirectionalLight(vec3 n, vec3 l) 3 *
4{ 4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 float a = max(dot(n,l),0.0); 5 * $License$
6 return a; 6 */
7}
8
9float calcPointLight(vec3 v, vec3 n, vec4 lp, float la)
10{
11 //get light vector
12 vec3 lv = lp.xyz-v;
13
14 //get distance
15 float d = length(lv);
16
17 //normalize light vector
18 lv *= 1.0/d;
19
20 //distance attenuation
21 float da = clamp(1.0/(la * d), 0.0, 1.0);
22
23 //angular attenuation
24 da *= calcDirectionalLight(n, lv);
25
26 return da;
27}
28 7
29float calcDirectionalSpecular(vec3 view, vec3 n, vec3 l) 8// All lights, no specular highlights
30{
31 return pow(max(dot(reflect(view, n),l), 0.0),8.0);
32}
33 9
34float calcDirectionalLightSpecular(inout vec4 specular, vec3 view, vec3 n, vec3 l, vec3 lightCol, float da) 10vec4 sumLights(vec3 pos, vec3 norm, vec4 color, vec4 baseLight);
35{
36
37 specular.rgb += calcDirectionalSpecular(view,n,l)*lightCol*da;
38 return calcDirectionalLight(n,l);
39}
40
41vec3 calcPointLightSpecular(inout vec4 specular, vec3 view, vec3 v, vec3 n, vec3 l, float r, float pw, vec3 lightCol)
42{
43 //get light vector
44 vec3 lv = l-v;
45
46 //get distance
47 float d = length(lv);
48
49 //normalize light vector
50 lv *= 1.0/d;
51
52 //distance attenuation
53 float da = clamp(1.0/(r * d), 0.0, 1.0);
54
55 //angular attenuation
56
57 da *= calcDirectionalLightSpecular(specular, view, n, lv, lightCol, da);
58
59 return da*lightCol;
60}
61 11
62vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseLight) 12vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
63{ 13{
64 vec4 col; 14 return sumLights(pos, norm, color, baseLight);
65 col.a = color.a;
66
67 col.rgb = gl_LightModel.ambient.rgb + baseLight.rgb;
68
69 col.rgb += gl_LightSource[0].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[0].position.xyz);
70 col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
71 col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation);
72 col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation);
73 col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation);
74 col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[5].position, gl_LightSource[5].linearAttenuation);
75 col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[6].position, gl_LightSource[6].linearAttenuation);
76 col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[7].position, gl_LightSource[7].linearAttenuation);
77
78 col.rgb = min(col.rgb*color.rgb, 1.0);
79
80 gl_FrontColor = vec4(col.rgb, col.a);
81 return col;
82}
83
84vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec3 baseLight)
85{
86 return calcLighting(pos, norm, color, vec4(baseLight, 1.0));
87}
88
89vec4 calcLighting(vec3 pos, vec3 norm, vec4 color)
90{
91 return calcLighting(pos, norm, color, vec3(0.0,0.0,0.0));
92} 15}
93 16
94vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol)
95{
96 vec4 col;
97 col.a = color.a;
98
99 col.rgb = gl_LightModel.ambient.rgb;
100
101 vec3 view = normalize(pos);
102
103 vec4 specular = specularColor;
104 specularColor.rgb = vec3(0.0, 0.0, 0.0);
105
106 col.rgb += baseCol.a*gl_LightSource[0].diffuse.rgb*calcDirectionalLightSpecular(specularColor, view, norm, gl_LightSource[0].position.xyz,gl_LightSource[0].diffuse.rgb*baseCol.a, 1.0);
107 col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLightSpecular(specularColor, view, norm, gl_LightSource[1].position.xyz,gl_LightSource[1].diffuse.rgb, 1.0);
108 col.rgb += calcPointLightSpecular(specularColor, view, pos, norm, gl_LightSource[2].position.xyz, gl_LightSource[2].linearAttenuation, gl_LightSource[2].quadraticAttenuation,gl_LightSource[2].diffuse.rgb);
109 col.rgb += calcPointLightSpecular(specularColor, view, pos, norm, gl_LightSource[3].position.xyz, gl_LightSource[3].linearAttenuation, gl_LightSource[3].quadraticAttenuation,gl_LightSource[3].diffuse.rgb);
110 col.rgb += calcPointLightSpecular(specularColor, view, pos, norm, gl_LightSource[4].position.xyz, gl_LightSource[4].linearAttenuation, gl_LightSource[4].quadraticAttenuation,gl_LightSource[4].diffuse.rgb);
111 col.rgb += calcPointLightSpecular(specularColor, view, pos, norm, gl_LightSource[5].position.xyz, gl_LightSource[5].linearAttenuation, gl_LightSource[5].quadraticAttenuation,gl_LightSource[5].diffuse.rgb);
112 //col.rgb += calcPointLightSpecular(specularColor, view, pos, norm, gl_LightSource[6].position.xyz, gl_LightSource[6].linearAttenuation, gl_LightSource[6].quadraticAttenuation,gl_LightSource[6].diffuse.rgb);
113 //col.rgb += calcPointLightSpecular(specularColor, view, pos, norm, gl_LightSource[7].position.xyz, gl_LightSource[7].linearAttenuation, gl_LightSource[7].quadraticAttenuation,gl_LightSource[7].diffuse.rgb);
114 col.rgb += baseCol.rgb;
115
116 col.rgb = min(col.rgb*color.rgb, 1.0);
117 specularColor.rgb = min(specularColor.rgb*specular.rgb, 1.0);
118
119 gl_FrontColor = vec4(col.rgb+specularColor.rgb,col.a);
120 return col;
121}
122
123vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec3 baseCol)
124{
125 return calcLightingSpecular(pos, norm, color, specularColor, vec4(baseCol, 1.0));
126}
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/lightWaterF.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/lightWaterF.glsl
new file mode 100644
index 0000000..086954c
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/lightWaterF.glsl
@@ -0,0 +1,21 @@
1/**
2 * @file lightWaterF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D diffuseMap;
9
10vec3 atmosLighting(vec3 light);
11vec4 applyWaterFog(vec4 color);
12
13void default_lighting_water()
14{
15 vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy) * gl_Color;
16
17 color.rgb = atmosLighting(color.rgb);
18
19 gl_FragColor = applyWaterFog(color);
20}
21
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
new file mode 100644
index 0000000..edd1a8a
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
@@ -0,0 +1,41 @@
1/**
2 * @file sumLightsV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8float calcDirectionalLightSpecular(inout vec4 specular, vec3 view, vec3 n, vec3 l, vec3 lightCol, float da);
9vec3 calcPointLightSpecular(inout vec4 specular, vec3 view, vec3 v, vec3 n, vec3 l, float r, float pw, vec3 lightCol);
10
11vec3 atmosAmbient(vec3 light);
12vec3 atmosAffectDirectionalLight(float lightIntensity);
13vec3 atmosGetDiffuseSunlightColor();
14vec3 scaleDownLight(vec3 light);
15
16vec4 sumLightsSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol)
17{
18 vec4 col = vec4(0.0, 0.0, 0.0, color.a);
19
20 vec3 view = normalize(pos);
21
22 /// collect all the specular values from each calcXXXLightSpecular() function
23 vec4 specularSum = vec4(0.0);
24
25 // Collect normal lights (need to be divided by two, as we later multiply by 2)
26 col.rgb += gl_LightSource[1].diffuse.rgb * calcDirectionalLightSpecular(specularColor, view, norm, gl_LightSource[1].position.xyz, gl_LightSource[1].diffuse.rgb, 1.0);
27 col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, gl_LightSource[2].position.xyz, gl_LightSource[2].linearAttenuation, gl_LightSource[2].quadraticAttenuation, gl_LightSource[2].diffuse.rgb);
28 col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, gl_LightSource[3].position.xyz, gl_LightSource[3].linearAttenuation, gl_LightSource[3].quadraticAttenuation, gl_LightSource[3].diffuse.rgb);
29 //col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, gl_LightSource[4].position.xyz, gl_LightSource[4].linearAttenuation, gl_LightSource[4].quadraticAttenuation, gl_LightSource[4].diffuse.rgb);
30 col.rgb = scaleDownLight(col.rgb);
31
32 // Add windlight lights
33 col.rgb += atmosAmbient(baseCol.rgb);
34 col.rgb += atmosAffectDirectionalLight(calcDirectionalLightSpecular(specularSum, view, norm, gl_LightSource[0].position.xyz, atmosGetDiffuseSunlightColor()*baseCol.a, 1.0));
35
36 col.rgb = min(col.rgb*color.rgb, 1.0);
37 specularColor.rgb = min(specularColor.rgb*specularSum.rgb, 1.0);
38 col.rgb += specularColor.rgb;
39
40 return col;
41}
diff --git a/linden/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl b/linden/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
new file mode 100644
index 0000000..f4c5973
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
@@ -0,0 +1,34 @@
1/**
2 * @file sumLightsV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8float calcDirectionalLight(vec3 n, vec3 l);
9float calcPointLight(vec3 v, vec3 n, vec4 lp, float la);
10
11vec3 atmosAmbient(vec3 light);
12vec3 atmosAffectDirectionalLight(float lightIntensity);
13vec3 scaleDownLight(vec3 light);
14
15vec4 sumLights(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
16{
17 vec4 col = vec4(0.0, 0.0, 0.0, color.a);
18
19 // Collect normal lights (need to be divided by two, as we later multiply by 2)
20 col.rgb += gl_LightSource[1].diffuse.rgb * calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
21 col.rgb += gl_LightSource[2].diffuse.rgb * calcPointLight(pos, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation);
22 col.rgb += gl_LightSource[3].diffuse.rgb * calcPointLight(pos, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation);
23 //col.rgb += gl_LightSource[4].diffuse.rgb * calcPointLight(pos, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation);
24 col.rgb = scaleDownLight(col.rgb);
25
26 // Add windlight lights
27 col.rgb += atmosAmbient(baseLight.rgb);
28 col.rgb += atmosAffectDirectionalLight(calcDirectionalLight(norm, gl_LightSource[0].position.xyz));
29
30 col.rgb = min(col.rgb*color.rgb, 1.0);
31
32 return col;
33}
34
diff --git a/linden/indra/newview/app_settings/shaders/class2/objects/alphaF.glsl b/linden/indra/newview/app_settings/shaders/class2/objects/alphaF.glsl
deleted file mode 100644
index 97feb55..0000000
--- a/linden/indra/newview/app_settings/shaders/class2/objects/alphaF.glsl
+++ /dev/null
@@ -1,18 +0,0 @@
1vec4 getLightColor();
2void applyScatter(inout vec3 col);
3
4uniform samplerCube environmentMap;
5uniform sampler2D diffuseMap;
6
7void main()
8{
9 vec4 diff = texture2D(diffuseMap, gl_TexCoord[0].xy);
10 vec3 ref = textureCube(environmentMap, gl_TexCoord[1].xyz).rgb;
11 vec4 specular = gl_TexCoord[2];
12 vec3 col = mix(getLightColor().rgb * diff.rgb, ref, specular.a)+specular.rgb*diff.rgb;
13
14 applyScatter(col);
15
16 gl_FragColor.rgb = col.rgb;
17 gl_FragColor.a = diff.a*gl_Color.a;
18}
diff --git a/linden/indra/newview/app_settings/shaders/class2/objects/alphaV.glsl b/linden/indra/newview/app_settings/shaders/class2/objects/alphaV.glsl
deleted file mode 100644
index baf5323..0000000
--- a/linden/indra/newview/app_settings/shaders/class2/objects/alphaV.glsl
+++ /dev/null
@@ -1,24 +0,0 @@
1vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol);
2void default_scatter(vec3 viewVec, vec3 lightDir);
3
4attribute vec4 materialColor;
5attribute vec4 specularColor;
6
7void main()
8{
9 //transform vertex
10 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
11 gl_TexCoord[0] = gl_MultiTexCoord0;
12
13 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz;
14 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
15 vec4 spec = specularColor;
16 gl_FrontColor.rgb = calcLightingSpecular(pos, norm, materialColor, spec, gl_Color).rgb;
17 gl_FrontColor.a = materialColor.a;
18 gl_TexCoord[2] = spec;
19 vec3 ref = reflect(pos,norm);
20 gl_TexCoord[1] = gl_TextureMatrix[1]*vec4(ref,1);
21
22 default_scatter(pos.xyz, gl_LightSource[0].position.xyz);
23}
24
diff --git a/linden/indra/newview/app_settings/shaders/class2/objects/bumpshinyF.glsl b/linden/indra/newview/app_settings/shaders/class2/objects/bumpshinyF.glsl
deleted file mode 100644
index 7462bb1..0000000
--- a/linden/indra/newview/app_settings/shaders/class2/objects/bumpshinyF.glsl
+++ /dev/null
@@ -1,29 +0,0 @@
1vec4 getLightColor();
2void applyScatter(inout vec3 col);
3
4uniform samplerCube environmentMap;
5uniform sampler2D diffuseMap;
6uniform sampler2D bumpMap;
7
8
9void main()
10{
11 vec4 diff = texture2D(diffuseMap, gl_TexCoord[0].xy);
12 vec3 ref = textureCube(environmentMap, gl_TexCoord[1].xyz).rgb;
13
14 vec4 specular = gl_TexCoord[3];
15
16 float b = texture2D(bumpMap, gl_TexCoord[0].xy).a;
17 b -= texture2D(bumpMap, gl_TexCoord[2].xy).a;
18
19 vec3 col = mix(getLightColor().rgb * diff.rgb, ref, specular.a)+specular.rgb*diff.rgb;
20 col += col * b;
21 float m = (col.r + col.g + col.b);
22 m *= 1.0/3.0;
23 col = mix(col, vec3(m), -specular.a*specular.a);
24
25 applyScatter(col);
26
27 gl_FragColor.rgb = col;
28 gl_FragColor.a = diff.a;
29}
diff --git a/linden/indra/newview/app_settings/shaders/class2/objects/bumpshinyV.glsl b/linden/indra/newview/app_settings/shaders/class2/objects/bumpshinyV.glsl
deleted file mode 100644
index 037b282..0000000
--- a/linden/indra/newview/app_settings/shaders/class2/objects/bumpshinyV.glsl
+++ /dev/null
@@ -1,31 +0,0 @@
1vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol);
2void default_scatter(vec3 viewVec, vec3 lightDir);
3
4attribute vec4 materialColor;
5attribute vec4 specularColor;
6attribute vec4 binormal;
7
8void main()
9{
10 //transform vertex
11 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
12 gl_TexCoord[0] = gl_MultiTexCoord0;
13
14 vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz;
15 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
16 vec3 binorm = normalize(gl_NormalMatrix * binormal.xyz);
17 vec3 tangent = cross(binorm, norm);
18 binorm.xy = vec2(dot(tangent, gl_LightSource[0].position.xyz),
19 dot(binorm, gl_LightSource[0].position.xyz))*1.0/128.0;
20
21 vec4 spec = specularColor;
22 gl_FrontColor.rgb = calcLightingSpecular(pos, norm, materialColor, spec, gl_Color).rgb;
23 gl_TexCoord[3] = spec;
24 gl_FrontColor.a = materialColor.a;
25 vec3 ref = reflect(pos,norm);
26 gl_TexCoord[1].xyz = (gl_TextureMatrix[1]*vec4(ref,1.0)).xyz;
27 gl_TexCoord[2].xy = binorm.xy + gl_MultiTexCoord0.xy;
28
29 default_scatter(pos.xyz, gl_LightSource[0].position.xyz);
30}
31
diff --git a/linden/indra/newview/app_settings/shaders/class2/objects/shinyV.glsl b/linden/indra/newview/app_settings/shaders/class2/objects/shinyV.glsl
new file mode 100755
index 0000000..0d52f32
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/objects/shinyV.glsl
@@ -0,0 +1,31 @@
1/**
2 * @file shinyV.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
9
10void calcAtmospherics(vec3 inPositionEye);
11
12uniform vec4 origin;
13
14void main()
15{
16 //transform vertex
17 gl_Position = ftransform();
18
19 vec4 pos = (gl_ModelViewMatrix * gl_Vertex);
20 vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
21 vec3 ref = reflect(pos.xyz, -norm);
22
23 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
24 gl_TexCoord[1] = gl_TextureMatrix[1]*vec4(ref,1.0);
25
26 calcAtmospherics(pos.xyz);
27
28 gl_FrontColor = calcLighting(pos.xyz, norm, gl_Color, vec4(0.0));
29
30 gl_FogFragCoord = pos.z;
31}
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
new file mode 100644
index 0000000..92c0664
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
@@ -0,0 +1,24 @@
1/**
2 * @file atmosphericsF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8//////////////////////////////////////////////////////////
9// The fragment shader for the terrain atmospherics
10//////////////////////////////////////////////////////////
11
12vec3 getAdditiveColor();
13vec3 getAtmosAttenuation();
14
15uniform sampler2D cloudMap;
16uniform vec4 cloud_pos_density1;
17
18vec3 atmosLighting(vec3 light)
19{
20 light *= getAtmosAttenuation().r;
21 light += getAdditiveColor();
22 return (2.0 * light);
23}
24
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl
new file mode 100644
index 0000000..32d5ed5
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl
@@ -0,0 +1,41 @@
1/**
2 * @file atmosphericsHelpersV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8// Output variables
9vec3 getSunlitColor();
10vec3 getAmblitColor();
11vec3 getAdditiveColor();
12vec3 getAtmosAttenuation();
13vec3 getPositionEye();
14
15uniform float scene_light_strength;
16
17vec3 atmosAmbient(vec3 light)
18{
19 return getAmblitColor() + light / 2.0;
20}
21
22vec3 atmosAffectDirectionalLight(float lightIntensity)
23{
24 return getSunlitColor() * lightIntensity;
25}
26
27vec3 atmosGetDiffuseSunlightColor()
28{
29 return getSunlitColor();
30}
31
32vec3 scaleDownLight(vec3 light)
33{
34 return (light / scene_light_strength );
35}
36
37vec3 scaleUpLight(vec3 light)
38{
39 return (light * scene_light_strength);
40}
41
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
new file mode 100644
index 0000000..e40372e
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
@@ -0,0 +1,137 @@
1/**
2 * @file atmosphericsV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8// varying param funcs
9void setSunlitColor(vec3 v);
10void setAmblitColor(vec3 v);
11void setAdditiveColor(vec3 v);
12void setAtmosAttenuation(vec3 v);
13void setPositionEye(vec3 v);
14
15vec3 getAdditiveColor();
16
17//varying vec4 vary_CloudUVs;
18//varying float vary_CloudDensity;
19
20// Inputs
21uniform vec4 morphFactor;
22uniform vec3 camPosLocal;
23//uniform vec4 camPosWorld;
24
25uniform vec4 lightnorm;
26uniform vec4 sunlight_color;
27uniform vec4 ambient;
28uniform vec4 blue_horizon;
29uniform vec4 blue_density;
30uniform vec4 haze_horizon;
31uniform vec4 haze_density;
32uniform vec4 cloud_shadow;
33uniform vec4 density_multiplier;
34uniform vec4 distance_multiplier;
35uniform vec4 max_y;
36uniform vec4 glow;
37
38void calcAtmospherics(vec3 inPositionEye) {
39
40 vec3 P = inPositionEye;
41 setPositionEye(P);
42
43 //(TERRAIN) limit altitude
44 if (P.y > max_y.x) P *= (max_y.x / P.y);
45 if (P.y < -max_y.x) P *= (-max_y.x / P.y);
46
47 vec3 tmpLightnorm = lightnorm.xyz;
48
49 vec3 Pn = normalize(P);
50 float Plen = length(P);
51
52 vec4 temp1 = vec4(0);
53 vec3 temp2 = vec3(0);
54 vec4 blue_weight;
55 vec4 haze_weight;
56 vec4 sunlight = sunlight_color;
57 vec4 light_atten;
58
59 //sunlight attenuation effect (hue and brightness) due to atmosphere
60 //this is used later for sunlight modulation at various altitudes
61 light_atten = (blue_density * 1.0 + vec4(haze_density.r) * 0.25) * (density_multiplier.x * max_y.x);
62 //I had thought blue_density and haze_density should have equal weighting,
63 //but attenuation due to haze_density tends to seem too strong
64
65 temp1 = blue_density + vec4(haze_density.r);
66 blue_weight = blue_density / temp1;
67 haze_weight = vec4(haze_density.r) / temp1;
68
69 //(TERRAIN) compute sunlight from lightnorm only (for short rays like terrain)
70 temp2.y = max(0.0, tmpLightnorm.y);
71 temp2.y = 1. / temp2.y;
72 sunlight *= exp( - light_atten * temp2.y);
73
74 // main atmospheric scattering line integral
75 temp2.z = Plen * density_multiplier.x;
76
77 // Transparency (-> temp1)
78 // ATI Bugfix -- can't store temp1*temp2.z*distance_multiplier.x in a variable because the ati
79 // compiler gets confused.
80 temp1 = exp(-temp1 * temp2.z * distance_multiplier.x);
81
82 //final atmosphere attenuation factor
83 setAtmosAttenuation(temp1.rgb);
84 //vary_AtmosAttenuation = distance_multiplier / 10000.;
85 //vary_AtmosAttenuation = density_multiplier * 100.;
86 //vary_AtmosAttenuation = vec4(Plen / 100000., 0., 0., 1.);
87
88 //compute haze glow
89 //(can use temp2.x as temp because we haven't used it yet)
90 temp2.x = dot(Pn, tmpLightnorm.xyz);
91 temp2.x = 1. - temp2.x;
92 //temp2.x is 0 at the sun and increases away from sun
93 temp2.x = max(temp2.x, .03); //was glow.y
94 //set a minimum "angle" (smaller glow.y allows tighter, brighter hotspot)
95 temp2.x *= glow.x;
96 //higher glow.x gives dimmer glow (because next step is 1 / "angle")
97 temp2.x = pow(temp2.x, glow.z);
98 //glow.z should be negative, so we're doing a sort of (1 / "angle") function
99
100 //add "minimum anti-solar illumination"
101 temp2.x += .25;
102
103
104 //increase ambient when there are more clouds
105 vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow.x * 0.5;
106
107 //haze color
108 setAdditiveColor(
109 vec3(blue_horizon * blue_weight * (sunlight*(1.-cloud_shadow.x) + tmpAmbient)
110 + (haze_horizon.r * haze_weight) * (sunlight*(1.-cloud_shadow.x) * temp2.x
111 + tmpAmbient)));
112
113 //brightness of surface both sunlight and ambient
114 setSunlitColor(vec3(sunlight * .5));
115 setAmblitColor(vec3(tmpAmbient * .25));
116 setAdditiveColor(getAdditiveColor() * vec3(1.0 - temp1));
117
118 // vary_SunlitColor = vec3(0);
119 // vary_AmblitColor = vec3(0);
120 // vary_AdditiveColor = vec4(Pn, 1.0);
121
122 /*
123 const float cloudShadowScale = 100.;
124 // Get cloud uvs for shadowing
125 vec3 cloudPos = inPositionEye + camPosWorld - cloudShadowScale / 2.;
126 vary_CloudUVs.xy = cloudPos.xz / cloudShadowScale;
127
128 // We can take uv1 and multiply it by (TerrainSpan / CloudSpan)
129// cloudUVs *= (((worldMaxZ - worldMinZ) * 20) /40000.);
130 vary_CloudUVs *= (10000./40000.);
131
132 // Offset by sun vector * (CloudAltitude / CloudSpan)
133 vary_CloudUVs.x += tmpLightnorm.x / tmpLightnorm.y * (3000./40000.);
134 vary_CloudUVs.y += tmpLightnorm.z / tmpLightnorm.y * (3000./40000.);
135 */
136}
137
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl
new file mode 100644
index 0000000..0dbf2d3
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl
@@ -0,0 +1,34 @@
1/**
2 * @file atmosphericVars.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8varying vec3 vary_PositionEye;
9
10varying vec3 vary_SunlitColor;
11varying vec3 vary_AmblitColor;
12varying vec3 vary_AdditiveColor;
13varying vec3 vary_AtmosAttenuation;
14
15vec3 getPositionEye()
16{
17 return vary_PositionEye;
18}
19vec3 getSunlitColor()
20{
21 return vary_SunlitColor;
22}
23vec3 getAmblitColor()
24{
25 return vary_AmblitColor;
26}
27vec3 getAdditiveColor()
28{
29 return vary_AdditiveColor;
30}
31vec3 getAtmosAttenuation()
32{
33 return vary_AtmosAttenuation;
34}
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
new file mode 100644
index 0000000..b528837
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
@@ -0,0 +1,60 @@
1/**
2 * @file atmosphericVars.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8varying vec3 vary_PositionEye;
9
10varying vec3 vary_SunlitColor;
11varying vec3 vary_AmblitColor;
12varying vec3 vary_AdditiveColor;
13varying vec3 vary_AtmosAttenuation;
14
15vec3 getPositionEye()
16{
17 return vary_PositionEye;
18}
19vec3 getSunlitColor()
20{
21 return vary_SunlitColor;
22}
23vec3 getAmblitColor()
24{
25 return vary_AmblitColor;
26}
27vec3 getAdditiveColor()
28{
29 return vary_AdditiveColor;
30}
31vec3 getAtmosAttenuation()
32{
33 return vary_AtmosAttenuation;
34}
35
36
37void setPositionEye(vec3 v)
38{
39 vary_PositionEye = v;
40}
41
42void setSunlitColor(vec3 v)
43{
44 vary_SunlitColor = v;
45}
46
47void setAmblitColor(vec3 v)
48{
49 vary_AmblitColor = v;
50}
51
52void setAdditiveColor(vec3 v)
53{
54 vary_AdditiveColor = v;
55}
56
57void setAtmosAttenuation(vec3 v)
58{
59 vary_AtmosAttenuation = v;
60}
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
new file mode 100644
index 0000000..b7d7e5a
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
@@ -0,0 +1,76 @@
1/**
2 * @file WLCloudsF.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8/////////////////////////////////////////////////////////////////////////
9// The fragment shader for the sky
10/////////////////////////////////////////////////////////////////////////
11
12varying vec4 vary_CloudColorSun;
13varying vec4 vary_CloudColorAmbient;
14varying float vary_CloudDensity;
15
16uniform sampler2D cloud_noise_texture;
17uniform vec4 cloud_pos_density1;
18uniform vec4 cloud_pos_density2;
19uniform vec4 gamma;
20
21/// Soft clips the light with a gamma correction
22vec3 scaleSoftClip(vec3 light) {
23 //soft clip effect:
24 light = 1. - clamp(light, vec3(0.), vec3(1.));
25 light = 1. - pow(light, gamma.xxx);
26
27 return light;
28}
29
30void main()
31{
32 // Set variables
33 vec2 uv1 = gl_TexCoord[0].xy;
34 vec2 uv2 = gl_TexCoord[1].xy;
35
36 vec4 cloudColorSun = vary_CloudColorSun;
37 vec4 cloudColorAmbient = vary_CloudColorAmbient;
38 float cloudDensity = vary_CloudDensity;
39 vec2 uv3 = gl_TexCoord[2].xy;
40 vec2 uv4 = gl_TexCoord[3].xy;
41
42 // Offset texture coords
43 uv1 += cloud_pos_density1.xy; //large texture, visible density
44 uv2 += cloud_pos_density1.xy; //large texture, self shadow
45 uv3 += cloud_pos_density2.xy; //small texture, visible density
46 uv4 += cloud_pos_density2.xy; //small texture, self shadow
47
48
49 // Compute alpha1, the main cloud opacity
50 float alpha1 = (texture2D(cloud_noise_texture, uv1).x - 0.5) + (texture2D(cloud_noise_texture, uv3).x - 0.5) * cloud_pos_density2.z;
51 alpha1 = min(max(alpha1 + cloudDensity, 0.) * 10. * cloud_pos_density1.z, 1.);
52
53 // And smooth
54 alpha1 = 1. - alpha1 * alpha1;
55 alpha1 = 1. - alpha1 * alpha1;
56
57
58 // Compute alpha2, for self shadowing effect
59 // (1 - alpha2) will later be used as percentage of incoming sunlight
60 float alpha2 = (texture2D(cloud_noise_texture, uv2).x - 0.5);
61 alpha2 = min(max(alpha2 + cloudDensity, 0.) * 2.5 * cloud_pos_density1.z, 1.);
62
63 // And smooth
64 alpha2 = 1. - alpha2;
65 alpha2 = 1. - alpha2 * alpha2;
66
67 // Combine
68 vec4 color;
69 color = (cloudColorSun*(1.-alpha2) + cloudColorAmbient);
70 color *= 2.;
71
72 /// Gamma correct for WL (soft clip effect).
73 gl_FragColor.rgb = scaleSoftClip(color.rgb);
74 gl_FragColor.a = alpha1;
75}
76
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
new file mode 100644
index 0000000..e149d58
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
@@ -0,0 +1,163 @@
1/**
2 * @file WLCloudsV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8//////////////////////////////////////////////////////////////////////////
9// The vertex shader for creating the atmospheric sky
10///////////////////////////////////////////////////////////////////////////////
11
12// Output parameters
13varying vec4 vary_CloudColorSun;
14varying vec4 vary_CloudColorAmbient;
15varying float vary_CloudDensity;
16
17// Inputs
18uniform vec3 camPosLocal;
19
20uniform vec4 lightnorm;
21uniform vec4 sunlight_color;
22uniform vec4 ambient;
23uniform vec4 blue_horizon;
24uniform vec4 blue_density;
25uniform vec4 haze_horizon;
26uniform vec4 haze_density;
27
28uniform vec4 cloud_shadow;
29uniform vec4 density_multiplier;
30uniform vec4 max_y;
31
32uniform vec4 glow;
33
34uniform vec4 cloud_color;
35
36uniform vec4 cloud_scale;
37
38void main()
39{
40
41 // World / view / projection
42 gl_Position = ftransform();
43
44 gl_TexCoord[0] = gl_MultiTexCoord0;
45
46 // Get relative position
47 vec3 P = gl_Vertex.xyz - camPosLocal.xyz + vec3(0,50,0);
48
49 // Set altitude
50 if (P.y > 0.)
51 {
52 P *= (max_y.x / P.y);
53 }
54 else
55 {
56 P *= (-32000. / P.y);
57 }
58
59 // Can normalize then
60 vec3 Pn = normalize(P);
61 float Plen = length(P);
62
63 // Initialize temp variables
64 vec4 temp1 = vec4(0.);
65 vec4 temp2 = vec4(0.);
66 vec4 blue_weight;
67 vec4 haze_weight;
68 vec4 sunlight = sunlight_color;
69 vec4 light_atten;
70
71
72 // Sunlight attenuation effect (hue and brightness) due to atmosphere
73 // this is used later for sunlight modulation at various altitudes
74 light_atten = (blue_density * 1.0 + haze_density.x * 0.25) * (density_multiplier.x * max_y.x);
75
76 // Calculate relative weights
77 temp1 = blue_density + haze_density.x;
78 blue_weight = blue_density / temp1;
79 haze_weight = haze_density.x / temp1;
80
81 // Compute sunlight from P & lightnorm (for long rays like sky)
82 temp2.y = max(0., max(0., Pn.y) * 1.0 + lightnorm.y );
83 temp2.y = 1. / temp2.y;
84 sunlight *= exp( - light_atten * temp2.y);
85
86 // Distance
87 temp2.z = Plen * density_multiplier.x;
88
89 // Transparency (-> temp1)
90 // ATI Bugfix -- can't store temp1*temp2.z in a variable because the ati
91 // compiler gets confused.
92 temp1 = exp(-temp1 * temp2.z);
93
94
95 // Compute haze glow
96 temp2.x = dot(Pn, lightnorm.xyz);
97 temp2.x = 1. - temp2.x;
98 // temp2.x is 0 at the sun and increases away from sun
99 temp2.x = max(temp2.x, .001);
100 // Set a minimum "angle" (smaller glow.y allows tighter, brighter hotspot)
101 temp2.x *= glow.x;
102 // Higher glow.x gives dimmer glow (because next step is 1 / "angle")
103 temp2.x = pow(temp2.x, glow.z);
104 // glow.z should be negative, so we're doing a sort of (1 / "angle") function
105
106 // Add "minimum anti-solar illumination"
107 temp2.x += .25;
108
109 // Increase ambient when there are more clouds
110 vec4 tmpAmbient = ambient;
111 tmpAmbient += (1. - tmpAmbient) * cloud_shadow.x * 0.5;
112
113 // Dim sunlight by cloud shadow percentage
114 sunlight *= (1. - cloud_shadow.x);
115
116 // Haze color below cloud
117 vec4 additiveColorBelowCloud = ( blue_horizon * blue_weight * (sunlight + tmpAmbient)
118 + (haze_horizon.r * haze_weight) * (sunlight * temp2.x + tmpAmbient)
119 );
120
121 // CLOUDS
122
123 sunlight = sunlight_color;
124 temp2.y = max(0., lightnorm.y * 2.);
125 temp2.y = 1. / temp2.y;
126 sunlight *= exp( - light_atten * temp2.y);
127
128 // Cloud color out
129 vary_CloudColorSun = (sunlight * temp2.x) * cloud_color;
130 vary_CloudColorAmbient = tmpAmbient * cloud_color;
131
132 // Attenuate cloud color by atmosphere
133 temp1 = sqrt(temp1); //less atmos opacity (more transparency) below clouds
134 vary_CloudColorSun *= temp1;
135 vary_CloudColorAmbient *= temp1;
136 vec4 oHazeColorBelowCloud = additiveColorBelowCloud * (1. - temp1);
137
138 // Make a nice cloud density based on the cloud_shadow value that was passed in.
139 vary_CloudDensity = 2. * (cloud_shadow.x - 0.25);
140
141
142 // Texture coords
143 gl_TexCoord[0] = gl_MultiTexCoord0;
144 gl_TexCoord[0].xy -= 0.5;
145 gl_TexCoord[0].xy /= cloud_scale.x;
146 gl_TexCoord[0].xy += 0.5;
147
148 gl_TexCoord[1] = gl_TexCoord[0];
149 gl_TexCoord[1].x += lightnorm.x * 0.0125;
150 gl_TexCoord[1].y += lightnorm.z * 0.0125;
151
152 gl_TexCoord[2] = gl_TexCoord[0] * 16.;
153 gl_TexCoord[3] = gl_TexCoord[1] * 16.;
154
155 // Combine these to minimize register use
156 vary_CloudColorAmbient += oHazeColorBelowCloud;
157
158 // needs this to compile on mac
159 //vary_AtmosAttenuation = vec3(0.0,0.0,0.0);
160
161 // END CLOUDS
162}
163
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl
new file mode 100644
index 0000000..5410889
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl
@@ -0,0 +1,24 @@
1/**
2 * @file gammaF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform vec4 gamma;
9
10vec3 getAtmosAttenuation();
11
12/// Soft clips the light with a gamma correction
13vec3 scaleSoftClip(vec3 light) {
14 //soft clip effect:
15 light = 1. - clamp(light, vec3(0.), vec3(1.));
16 light = 1. - pow(light, gamma.xxx);
17
18 return light;
19}
20
21vec3 fullbrightScaleSoftClip(vec3 light) {
22 return mix(scaleSoftClip(light.rgb), light.rgb, getAtmosAttenuation());
23}
24
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl
new file mode 100644
index 0000000..bc6d6d3
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl
@@ -0,0 +1,41 @@
1/**
2 * @file WLSkyF.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8/////////////////////////////////////////////////////////////////////////
9// The fragment shader for the sky
10/////////////////////////////////////////////////////////////////////////
11
12varying vec4 vary_HazeColor;
13
14uniform sampler2D cloud_noise_texture;
15uniform vec4 gamma;
16
17/// Soft clips the light with a gamma correction
18vec3 scaleSoftClip(vec3 light) {
19 //soft clip effect:
20 light = 1. - clamp(light, vec3(0.), vec3(1.));
21 light = 1. - pow(light, gamma.xxx);
22
23 return light;
24}
25
26void main()
27{
28 // Potential Fill-rate optimization. Add cloud calculation
29 // back in and output alpha of 0 (so that alpha culling kills
30 // the fragment) if the sky wouldn't show up because the clouds
31 // are fully opaque.
32
33 vec4 color;
34 color = vary_HazeColor;
35 color *= 2.;
36
37 /// Gamma correct for WL (soft clip effect).
38 gl_FragColor.rgb = scaleSoftClip(color.rgb);
39 gl_FragColor.a = 1.0;
40}
41
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
new file mode 100644
index 0000000..e396aea
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
@@ -0,0 +1,138 @@
1/**
2 * @file WLSkyV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8// SKY ////////////////////////////////////////////////////////////////////////
9// The vertex shader for creating the atmospheric sky
10///////////////////////////////////////////////////////////////////////////////
11
12// Output parameters
13varying vec4 vary_HazeColor;
14
15// Inputs
16uniform vec3 camPosLocal;
17
18uniform vec4 lightnorm;
19uniform vec4 sunlight_color;
20uniform vec4 ambient;
21uniform vec4 blue_horizon;
22uniform vec4 blue_density;
23uniform vec4 haze_horizon;
24uniform vec4 haze_density;
25
26uniform vec4 cloud_shadow;
27uniform vec4 density_multiplier;
28uniform vec4 max_y;
29
30uniform vec4 glow;
31
32uniform vec4 cloud_color;
33
34uniform vec4 cloud_scale;
35
36void main()
37{
38
39 // World / view / projection
40 gl_Position = ftransform();
41 gl_TexCoord[0] = gl_MultiTexCoord0;
42
43 // Get relative position
44 vec3 P = gl_Vertex.xyz - camPosLocal.xyz + vec3(0,50,0);
45 //vec3 P = gl_Vertex.xyz + vec3(0,50,0);
46
47 // Set altitude
48 if (P.y > 0.)
49 {
50 P *= (max_y.x / P.y);
51 }
52 else
53 {
54 P *= (-32000. / P.y);
55 }
56
57 // Can normalize then
58 vec3 Pn = normalize(P);
59 float Plen = length(P);
60
61 // Initialize temp variables
62 vec4 temp1 = vec4(0.);
63 vec4 temp2 = vec4(0.);
64 vec4 blue_weight;
65 vec4 haze_weight;
66 vec4 sunlight = sunlight_color;
67 vec4 light_atten;
68
69
70 // Sunlight attenuation effect (hue and brightness) due to atmosphere
71 // this is used later for sunlight modulation at various altitudes
72 light_atten = (blue_density * 1.0 + haze_density.x * 0.25) * (density_multiplier.x * max_y.x);
73
74 // Calculate relative weights
75 temp1 = blue_density + haze_density.x;
76 blue_weight = blue_density / temp1;
77 haze_weight = haze_density.x / temp1;
78
79 // Compute sunlight from P & lightnorm (for long rays like sky)
80 temp2.y = max(0., max(0., Pn.y) * 1.0 + lightnorm.y );
81 temp2.y = 1. / temp2.y;
82 sunlight *= exp( - light_atten * temp2.y);
83
84 // Distance
85 temp2.z = Plen * density_multiplier.x;
86
87 // Transparency (-> temp1)
88 // ATI Bugfix -- can't store temp1*temp2.z in a variable because the ati
89 // compiler gets confused.
90 temp1 = exp(-temp1 * temp2.z);
91
92
93 // Compute haze glow
94 temp2.x = dot(Pn, lightnorm.xyz);
95 temp2.x = 1. - temp2.x;
96 // temp2.x is 0 at the sun and increases away from sun
97 temp2.x = max(temp2.x, .001);
98 // Set a minimum "angle" (smaller glow.y allows tighter, brighter hotspot)
99 temp2.x *= glow.x;
100 // Higher glow.x gives dimmer glow (because next step is 1 / "angle")
101 temp2.x = pow(temp2.x, glow.z);
102 // glow.z should be negative, so we're doing a sort of (1 / "angle") function
103
104 // Add "minimum anti-solar illumination"
105 temp2.x += .25;
106
107
108 // Haze color above cloud
109 vary_HazeColor = ( blue_horizon * blue_weight * (sunlight + ambient)
110 + (haze_horizon.r * haze_weight) * (sunlight * temp2.x + ambient)
111 );
112
113
114 // Increase ambient when there are more clouds
115 vec4 tmpAmbient = ambient;
116 tmpAmbient += (1. - tmpAmbient) * cloud_shadow.x * 0.5;
117
118 // Dim sunlight by cloud shadow percentage
119 sunlight *= (1. - cloud_shadow.x);
120
121 // Haze color below cloud
122 vec4 additiveColorBelowCloud = ( blue_horizon * blue_weight * (sunlight + tmpAmbient)
123 + (haze_horizon.r * haze_weight) * (sunlight * temp2.x + tmpAmbient)
124 );
125
126 // Final atmosphere additive
127 vary_HazeColor *= (1. - temp1);
128
129 // Attenuate cloud color by atmosphere
130 temp1 = sqrt(temp1); //less atmos opacity (more transparency) below clouds
131
132 // At horizon, blend high altitude sky color towards the darker color below the clouds
133 vary_HazeColor += (additiveColorBelowCloud - vary_HazeColor) * (1. - sqrt(temp1));
134
135 // won't compile on mac without this being set
136 //vary_AtmosAttenuation = vec3(0.0,0.0,0.0);
137}
138
diff --git a/linden/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl b/linden/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl
new file mode 100644
index 0000000..b7678ca
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl
@@ -0,0 +1,35 @@
1/**
2 * @file transportF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8//////////////////////////////////////////////////////////
9// The fragment shader for the terrain atmospherics
10//////////////////////////////////////////////////////////
11
12vec3 getAdditiveColor();
13vec3 getAtmosAttenuation();
14
15uniform sampler2D cloudMap;
16uniform vec4 cloud_pos_density1;
17
18vec3 atmosTransport(vec3 light) {
19 light *= getAtmosAttenuation().r;
20 light += getAdditiveColor() * 2.0;
21 return light;
22}
23
24vec3 fullbrightAtmosTransport(vec3 light) {
25 float brightness = dot(light.rgb, vec3(0.33333));
26
27 return mix(atmosTransport(light.rgb), light.rgb + getAdditiveColor().rgb, brightness * brightness);
28}
29
30vec3 fullbrightShinyAtmosTransport(vec3 light) {
31 float brightness = dot(light.rgb, vec3(0.33333));
32
33 return mix(atmosTransport(light.rgb), (light.rgb + getAdditiveColor().rgb) * (2.0 - brightness), brightness * brightness);
34}
35
diff --git a/linden/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl b/linden/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl
index 2505afe..04c1053 100644
--- a/linden/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl
@@ -1,10 +1,14 @@
1vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec3 baseCol); 1/**
2mat4 getSkinnedTransform(); 2 * @file avatarV.glsl
3void default_scatter(vec3 viewVec, vec3 lightDir); 3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
4 7
5attribute vec4 materialColor; //2 8vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
9mat4 getSkinnedTransform();
10void calcAtmospherics(vec3 inPositionEye);
6 11
7attribute vec4 binormal; //6
8attribute vec4 clothing; //4 12attribute vec4 clothing; //4
9 13
10attribute vec4 gWindDir; //7 14attribute vec4 gWindDir; //7
@@ -27,102 +31,80 @@ void main()
27 norm.z = dot(trans[2].xyz, gl_Normal); 31 norm.z = dot(trans[2].xyz, gl_Normal);
28 norm = normalize(norm); 32 norm = normalize(norm);
29 33
30 vec3 binorm;
31 binorm.x = dot(trans[0].xyz, binormal.xyz);
32 binorm.y = dot(trans[1].xyz, binormal.xyz);
33 binorm.z = dot(trans[2].xyz, binormal.xyz);
34 norm = normalize(norm);
35
36 //wind 34 //wind
37 vec4 windEffect; 35 vec4 windEffect;
38 windEffect = vec4(dot(norm, gWindDir.xyz)); // DP3 windEffect, blendNorm, gWindDir; 36 windEffect = vec4(dot(norm, gWindDir.xyz));
39 pos.x = dot(trans[2].xyz, gl_Vertex.xyz); // DP3 blendPos.x, blendMatZ, iPos; 37 pos.x = dot(trans[2].xyz, gl_Vertex.xyz);
40 windEffect.xyz = pos.x * vec3(0.015, 0.015, 0.015) 38 windEffect.xyz = pos.x * vec3(0.015, 0.015, 0.015)
41 + windEffect.xyz; // MAD windEffect.xyz, blendPos.x, {0.015, 0.015, 0.015, 0}, windEffect; 39 + windEffect.xyz;
42 windEffect.w = windEffect.w * 2.0 + 1.0; // MAD windEffect.w, windEffect, {0, 0, 0, 2}, {0, 0, 0, 1}; # move wind offset value to [-1, 3] 40 windEffect.w = windEffect.w * 2.0 + 1.0; // move wind offset value to [-1, 3]
43 windEffect.w = windEffect.w*gWindDir.w; // MUL windEffect.w, windEffect, gWindDir; # modulate wind strength 41 windEffect.w = windEffect.w*gWindDir.w; // modulate wind strength
44 42
45 windEffect.xyz = windEffect.xyz*gSinWaveParams.xyz 43 windEffect.xyz = windEffect.xyz*gSinWaveParams.xyz
46 +vec3(gSinWaveParams.w); // MAD windEffect.xyz, windEffect, gSinWaveParams, gSinWaveParams.w; # use sin wave params to scale and offset input 44 +vec3(gSinWaveParams.w); // use sin wave params to scale and offset input
47 45
48 46
49 //reduce to period of 2 PI 47 //reduce to period of 2 PI
50 vec4 temp1, temp0, temp2, offsetPos; 48 vec4 temp1, temp0, temp2, offsetPos;
51 temp1.xyz = windEffect.xyz * gPiConstants.x; // MUL temp1.xyz, windEffect, gPiConstants.x; # change input as multiple of [0-2PI] to [0-1] 49 temp1.xyz = windEffect.xyz * gPiConstants.x; // change input as multiple of [0-2PI] to [0-1]
52 temp0.y = mod(temp1.x,1.0); // EXP temp0, temp1.x; # find mod(x, 1) 50 temp0.y = mod(temp1.x,1.0);
53 windEffect.x = temp0.y * gPiConstants.y; // MUL windEffect.x, temp0.y, gPiConstants.y; # scale from [0,1] to [0, 2PI] 51 windEffect.x = temp0.y * gPiConstants.y; // scale from [0,1] to [0, 2PI]
54 temp1.z = temp1.z - gPiConstants.w; // ADD temp1.z, temp1.z, -gPiConstants.w; # shift normal oscillation by PI/2 52 temp1.z = temp1.z - gPiConstants.w; // shift normal oscillation by PI/2
55 temp0.y = mod(temp1.z,1.0); // EXP temp0, temp1.z; # find mod(x, 1) 53 temp0.y = mod(temp1.z,1.0);
56 54
57 windEffect.z = temp0.y * gPiConstants.y; // MUL windEffect.z, temp0.y, gPiConstants.y; # scale from [0,1] to [0, 2PI] 55 windEffect.z = temp0.y * gPiConstants.y; // scale from [0,1] to [0, 2PI]
58 windEffect.xyz = windEffect.xyz + vec3(-3.141592); // # offset to [-PI, PI] 56 windEffect.xyz = windEffect.xyz + vec3(-3.141592); // offset to [-PI, PI]
59 // ADD windEffect.xyz, windEffect, {-3.141592, -3.141592, -3.141592, -3.141592}; 57
60 58
61 //calculate sinusoid 59 //calculate sinusoid
62 vec4 sinWave; 60 vec4 sinWave;
63 temp1 = windEffect*windEffect; // MUL temp1, windEffect, windEffect; # x^2 61 temp1 = windEffect*windEffect;
64 sinWave = -temp1 * gMinMaxConstants.w 62 sinWave = -temp1 * gMinMaxConstants.w
65 + vec4(gMinMaxConstants.z); // MAD sinWave, -temp1, gMinMaxConstants.w, gMinMaxConstants.z; # y = -(x^2)/7! + 1/5! 63 + vec4(gMinMaxConstants.z); // y = -(x^2)/7! + 1/5!
66 sinWave = sinWave * -temp1 + vec4(gMinMaxConstants.y); // MAD sinWave, sinWave, -temp1, gMinMaxConstants.y; # y = -(x^2) * (-(x^2)/7! + 1/5!) + 1/3! 64 sinWave = sinWave * -temp1 + vec4(gMinMaxConstants.y); // y = -(x^2) * (-(x^2)/7! + 1/5!) + 1/3!
67 sinWave = sinWave * -temp1 + vec4(gMinMaxConstants.x); // MAD sinWave, sinWave, -temp1, gMinMaxConstants.x; # y = -(x^2) * (-(x^2) * (-(x^2)/7! + 1/5!) + 1/3!) + 1 65 sinWave = sinWave * -temp1 + vec4(gMinMaxConstants.x); // y = -(x^2) * (-(x^2) * (-(x^2)/7! + 1/5!) + 1/3!) + 1
68 sinWave = sinWave * windEffect; // MUL sinWave, sinWave, windEffect; # y = x * (-(x^2) * (-(x^2) * (-(x^2)/7! + 1/5!) + 1/3!) + 1) 66 sinWave = sinWave * windEffect; // y = x * (-(x^2) * (-(x^2) * (-(x^2)/7! + 1/5!) + 1/3!) + 1)
69 67
70 // sinWave.x holds sin(norm . wind_direction) with primary frequency 68 // sinWave.x holds sin(norm . wind_direction) with primary frequency
71 // sinWave.y holds sin(norm . wind_direction) with secondary frequency 69 // sinWave.y holds sin(norm . wind_direction) with secondary frequency
72 // sinWave.z hold cos(norm . wind_direction) with primary frequency 70 // sinWave.z hold cos(norm . wind_direction) with primary frequency
73 sinWave.xyz = sinWave.xyz * gWindDir.w 71 sinWave.xyz = sinWave.xyz * gWindDir.w
74 + vec3(windEffect.w); // MAD sinWave.xyz, sinWave, gWindDir.w, windEffect.w; # multiply by wind strength in gWindDir.w [-wind, wind] 72 + vec3(windEffect.w); // multiply by wind strength in gWindDir.w [-wind, wind]
75 73
76 // add normal facing bias offset [-wind,wind] -> [-wind - .25, wind + 1] 74 // add normal facing bias offset [-wind,wind] -> [-wind - .25, wind + 1]
77 temp1 = vec4(dot(norm, gGravity.xyz)); // DP3 temp1, blendNorm, gGravity; # how much is this normal facing in direction of gGravity? 75 temp1 = vec4(dot(norm, gGravity.xyz)); // how much is this normal facing in direction of gGravity?
78 temp1 = min(temp1, vec4(0.2,0.0,0.0,0.0)); // MIN temp1, temp1, {0.2, 0, 0, 0}; # clamp [-1, 1] to [-1, 0.2] 76 temp1 = min(temp1, vec4(0.2,0.0,0.0,0.0)); // clamp [-1, 1] to [-1, 0.2]
79 temp1 = temp1*vec4(1.5,0.0,0.0,0.0); // MUL temp1, temp1, {1.5, 0, 0, 0}; # scale from [-1,0.2] to [-1.5, 0.3] 77 temp1 = temp1*vec4(1.5,0.0,0.0,0.0); // scale from [-1,0.2] to [-1.5, 0.3]
80 sinWave.x = sinWave.x + temp1.x; // ADD sinWave.x, sinWave, temp1; # add gGravity effect to sinwave (only primary frequency) 78 sinWave.x = sinWave.x + temp1.x; // add gGravity effect to sinwave (only primary frequency)
81 sinWave.xyz = sinWave.xyz * clothing.w; // MUL sinWave.xyz, sinWave, iClothing.w; # modulate by clothing coverage 79 sinWave.xyz = sinWave.xyz * clothing.w; // modulate by clothing coverage
82 80
83 sinWave.xyz = max(sinWave.xyz, vec3(-1.0, -1.0, -1.0)); // MAX sinWave.xyz, sinWave, {-1, -1, -1, -1}; # clamp to underlying body shape 81 sinWave.xyz = max(sinWave.xyz, vec3(-1.0, -1.0, -1.0)); // clamp to underlying body shape
84 offsetPos = clothing * sinWave.x; // MUL offsetPos, iClothing, sinWave.x; # multiply wind effect times clothing displacement 82 offsetPos = clothing * sinWave.x; // multiply wind effect times clothing displacement
85 temp2 = gWindDir*sinWave.z + vec4(norm,0); // MAD temp2, gWindDir, sinWave.z, blendNorm; # calculate normal offset due to wind oscillation 83 temp2 = gWindDir*sinWave.z + vec4(norm,0); // calculate normal offset due to wind oscillation
86 offsetPos = vec4(1.0,1.0,1.0,0.0)*offsetPos+gl_Vertex; // MAD offsetPos, {1.0, 1.0, 1.0, 0.0}, offsetPos, iPos; # add to offset vertex position, and zero out effect from w 84 offsetPos = vec4(1.0,1.0,1.0,0.0)*offsetPos+gl_Vertex; // add to offset vertex position, and zero out effect from w
87 norm += temp2.xyz*2.0; // MAD blendNorm, temp2, {2, 2, 2, 2}, blendNorm; # add sin wave effect on normals (exaggerated) 85 norm += temp2.xyz*2.0; // add sin wave effect on normals (exaggerated)
88 86
89 //add "backlighting" effect 87 //add "backlighting" effect
90 float colorAcc; 88 float colorAcc;
91 colorAcc = 1.0 - clothing.w; // SUB colorAcc, {1, 1, 1, 1}, iClothing; 89 colorAcc = 1.0 - clothing.w;
92 norm.z -= colorAcc * 0.2; // MAD blendNorm, colorAcc.w, {0, 0, -0.2, 0}, blendNorm; 90 norm.z -= colorAcc * 0.2;
93 91
94 //renormalize normal (again) 92 //renormalize normal (again)
95 norm = normalize(norm); // DP3 divisor.w, blendNorm, blendNorm; 93 norm = normalize(norm);
96 // RSQ divisor.xyz, divisor.w;
97 // MUL blendNorm.xyz, blendNorm, divisor;
98
99 //project binormal to normal plane to ensure orthogonality
100 temp2 = vec4(dot(norm, binorm)); // DP3 temp2, blendNorm, blendBinorm;
101 binorm = binorm - temp2.xyz; // SUB blendBinorm, blendBinorm, temp2;
102
103 //renormalize binormal
104 binorm = normalize(binorm); // DP3 divisor.w, blendBinorm, blendBinorm;
105 // RSQ divisor.xyz, divisor.w;
106 // MUL blendBinorm.xyz, blendBinorm, divisor;
107 94
108 pos.x = dot(trans[0], offsetPos); 95 pos.x = dot(trans[0], offsetPos);
109 pos.y = dot(trans[1], offsetPos); 96 pos.y = dot(trans[1], offsetPos);
110 pos.z = dot(trans[2], offsetPos); 97 pos.z = dot(trans[2], offsetPos);
111 pos.w = 1.0; 98 pos.w = 1.0;
99
100 calcAtmospherics(pos.xyz);
112 101
113 vec4 color = calcLighting(pos.xyz, norm, materialColor, gl_Color.rgb); 102 vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0.0));
114 gl_FrontColor = color; 103 gl_FrontColor = color;
115 104
116 gl_Position = gl_ProjectionMatrix * pos; 105 gl_Position = gl_ProjectionMatrix * pos;
117 106
118 vec3 N = norm;
119 vec3 B = binorm;
120 vec3 T = cross(N,B);
121 107
122 //gl_TexCoord[1].xy = gl_MultiTexCoord0.xy + 1.0/512.0 * vec2(dot(T,gl_LightSource[0].position.xyz),
123 // dot(B,gl_LightSource[0].position.xyz));
124
125 gl_TexCoord[2] = vec4(pos.xyz, 1.0); 108 gl_TexCoord[2] = vec4(pos.xyz, 1.0);
126 default_scatter(pos.xyz, gl_LightSource[0].position.xyz); 109
127 110}
128} \ No newline at end of file
diff --git a/linden/indra/newview/app_settings/shaders/class3/environment/waterF.glsl b/linden/indra/newview/app_settings/shaders/class3/environment/waterF.glsl
deleted file mode 100644
index ac8b07c..0000000
--- a/linden/indra/newview/app_settings/shaders/class3/environment/waterF.glsl
+++ /dev/null
@@ -1,145 +0,0 @@
1void applyScatter(inout vec3 color);
2
3uniform sampler2D diffuseMap;
4uniform sampler2D bumpMap;
5uniform samplerCube environmentMap; //: TEXUNIT4, // Environment map texture
6uniform sampler2D screenTex; // : TEXUNIT5
7
8uniform vec3 lightDir;
9uniform vec3 specular;
10uniform float lightExp;
11uniform vec2 fbScale;
12uniform float refScale;
13
14float msin(float x) {
15 float k = sin(x)+1.0;
16 k *= 0.5;
17 k *= k;
18 return 2.0 * k;
19}
20
21float mcos(float x) {
22 float k = cos(x)+1.0;
23 k *= 0.5;
24 k *= k;
25 return 2.0 * k;
26}
27
28float waveS(vec2 v, float t, float a, float f, vec2 d, float s, sampler1D sinMap)
29{
30 return texture1D(sinMap, (dot(d, v)*f + t*s)*f).r*a;
31}
32
33float waveC(vec2 v, float t, float a, float f, vec2 d, float s, sampler1D sinMap)
34{
35 return texture1D(sinMap, (dot(d, v)*f + t*s)*f).g*a*2.0-1.0;
36}
37
38float magnitude(vec3 vec) {
39 return sqrt(dot(vec,vec));
40}
41
42vec3 mreflect(vec3 i, vec3 n) {
43 return i + n * 2.0 * abs(dot(n,i))+vec3(0.0,0.0,0.5);
44}
45
46void main()
47{
48 vec2 texCoord = gl_TexCoord[0].xy; // Texture coordinates
49 vec2 littleWave1 = gl_TexCoord[0].zw;
50 vec2 littleWave2 = gl_TexCoord[1].xy;
51 vec2 bigWave = gl_TexCoord[1].zw;
52 vec3 viewVec = gl_TexCoord[2].xyz;
53 vec4 refCoord = gl_TexCoord[3];
54 vec4 col = gl_Color;
55 vec4 color;
56
57 //get color from alpha map (alpha denotes water depth), rgb denotes water color
58 vec4 wcol = texture2D(diffuseMap, texCoord.xy);
59
60 float dist = length(viewVec);
61
62 //store texture alpha
63 float da = wcol.a;
64
65 //modulate by incoming water color
66 //wcol.a *= refCoord.w;
67
68 //scale wcol.a (water depth) for steep transition
69 wcol.a *= wcol.a;
70
71 //normalize view vector
72 viewVec = normalize(viewVec);
73
74 //get bigwave normal
75 vec3 wavef = texture2D(bumpMap, bigWave).xyz*2.0;
76
77 vec3 view = vec3(viewVec.x, viewVec.y, viewVec.z);
78
79 float dx = 1.0-(dot(wavef*2.0-vec3(1.0), view))*da;
80 dx *= 0.274;
81
82 //get detail normals
83 vec3 dcol = texture2D(bumpMap, littleWave1+dx*view.xy).rgb*0.75;
84 dcol += texture2D(bumpMap, littleWave2+view.xy*dx*0.1).rgb*1.25;
85
86 //interpolate between big waves and little waves (big waves in deep water)
87 wavef = wavef*wcol.a + dcol*(1.0-wcol.a);
88
89 //crunch normal to range [-1,1]
90 wavef -= vec3(1,1,1);
91 wavef = normalize(wavef);
92 //wavef = vec3(0.0, 0.0, 1.0);
93
94 //get base fresnel component
95 float df = dot(viewVec,wavef);
96 //translate and flip fresnel
97 df = 1.0-clamp(-df,0.0,1.0);
98
99 //set output alpha based on fresnel
100 color.a = clamp((1.0-df+da)*0.5,0.0,1.0);
101
102 //calculate reflection vector
103 vec3 refnorm = vec3(wavef.x*0.5, wavef.y*0.5, wavef.z*2.0);
104
105 //ramp normal towards eye for far view stuff
106 float ramp = dist/256.0;
107 refnorm -= viewVec * ramp;
108 vec3 ref = reflect(viewVec.xyz, normalize(refnorm));
109 ref.z /= sqrt(dist);
110
111 //get diffuse component
112 float diff = clamp(dot(ref, wavef),0.0,1.0)*0.9;
113
114 //fudge diffuse for extra contrast and ambience
115 diff *= diff;
116 diff += 0.4;
117
118 vec3 fog = gl_TexCoord[5].rgb*0.5;
119
120 //read from reflection map
121 vec3 refcol = textureCube(environmentMap, ref).rgb;
122 //tint reflection by fresnal, bias by z component of view vec
123 color.rgb = refcol*(df*df*dcol.x*dcol.y);
124
125 //add diffuse contribution (fake blue water, yay!)
126 vec3 blue = vec3(0.1, 0.3, 0.6);
127 color.rgb += (diff/(max(ramp, 1.0)))*vec3(fog.r*blue.r, fog.g*blue.g, fog.b*blue.b);
128
129 //figure out distortion vector (ripply)
130 vec2 distort = clamp(((refCoord.xy/refCoord.z) * 0.5 + 0.5 + wavef.xy*refScale),0.0,0.99);
131
132 //read from framebuffer (offset)
133 vec4 fb = texture2D(screenTex, distort*fbScale);
134
135 //tint by framebuffer
136 color.rgb = da*color.rgb + (1.0-da)*fb.rgb;
137
138 //render as solid (previous pixel color already present)
139 color.a = 1.0;
140
141 //apply fog
142 applyScatter(color.rgb);
143
144 gl_FragColor = color;
145}
diff --git a/linden/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl b/linden/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl
new file mode 100644
index 0000000..bf5c78f
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl
@@ -0,0 +1,44 @@
1/**
2 * @file sumLightsV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8float calcDirectionalLightSpecular(inout vec4 specular, vec3 view, vec3 n, vec3 l, vec3 lightCol, float da);
9vec3 calcPointLightSpecular(inout vec4 specular, vec3 view, vec3 v, vec3 n, vec3 l, float r, float pw, vec3 lightCol);
10
11vec3 atmosAmbient(vec3 light);
12vec3 atmosAffectDirectionalLight(float lightIntensity);
13vec3 atmosGetDiffuseSunlightColor();
14vec3 scaleDownLight(vec3 light);
15
16vec4 sumLightsSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol)
17{
18 vec4 col = vec4(0.0, 0.0, 0.0, color.a);
19
20 vec3 view = normalize(pos);
21
22 /// collect all the specular values from each calcXXXLightSpecular() function
23 vec4 specularSum = vec4(0.0);
24
25 // Collect normal lights (need to be divided by two, as we later multiply by 2)
26 col.rgb += gl_LightSource[1].diffuse.rgb * calcDirectionalLightSpecular(specularColor, view, norm, gl_LightSource[1].position.xyz,gl_LightSource[1].diffuse.rgb, 1.0);
27 col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, gl_LightSource[2].position.xyz, gl_LightSource[2].linearAttenuation, gl_LightSource[2].quadraticAttenuation,gl_LightSource[2].diffuse.rgb);
28 col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, gl_LightSource[3].position.xyz, gl_LightSource[3].linearAttenuation, gl_LightSource[3].quadraticAttenuation,gl_LightSource[3].diffuse.rgb);
29 col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, gl_LightSource[4].position.xyz, gl_LightSource[4].linearAttenuation, gl_LightSource[4].quadraticAttenuation,gl_LightSource[4].diffuse.rgb);
30 col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, gl_LightSource[5].position.xyz, gl_LightSource[5].linearAttenuation, gl_LightSource[5].quadraticAttenuation,gl_LightSource[5].diffuse.rgb);
31 col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, gl_LightSource[6].position.xyz, gl_LightSource[6].linearAttenuation, gl_LightSource[6].quadraticAttenuation,gl_LightSource[6].diffuse.rgb);
32 col.rgb += calcPointLightSpecular(specularSum, view, pos, norm, gl_LightSource[7].position.xyz, gl_LightSource[7].linearAttenuation, gl_LightSource[7].quadraticAttenuation,gl_LightSource[7].diffuse.rgb);
33 col.rgb = scaleDownLight(col.rgb);
34
35 // Add windlight lights
36 col.rgb += atmosAmbient(baseCol.rgb);
37 col.rgb += atmosAffectDirectionalLight(calcDirectionalLightSpecular(specularSum, view, norm, gl_LightSource[0].position.xyz,atmosGetDiffuseSunlightColor()*baseCol.a, 1.0));
38
39 col.rgb = min(col.rgb*color.rgb, 1.0);
40 specularColor.rgb = min(specularColor.rgb*specularSum.rgb, 1.0);
41
42 col.rgb += specularColor.rgb;
43 return col;
44}
diff --git a/linden/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl b/linden/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl
new file mode 100644
index 0000000..1c5234c
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl
@@ -0,0 +1,41 @@
1/**
2 * @file sumLightsV.glsl
3 *
4 * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8float calcDirectionalLight(vec3 n, vec3 l);
9float calcPointLight(vec3 v, vec3 n, vec4 lp, float la);
10
11vec3 atmosAmbient(vec3 light);
12vec3 atmosAffectDirectionalLight(float lightIntensity);
13vec3 scaleDownLight(vec3 light);
14vec3 scaleUpLight(vec3 light);
15
16vec4 sumLights(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
17{
18 vec4 col;
19 col.a = color.a;
20
21 // Add windlight lights
22 col.rgb = atmosAffectDirectionalLight(calcDirectionalLight(norm, gl_LightSource[0].position.xyz));
23 col.rgb += atmosAmbient(baseLight.rgb);
24 col.rgb = scaleUpLight(col.rgb);
25
26 // Collect normal lights (need to be divided by two, as we later multiply by 2)
27 col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation);
28 col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation);
29 col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation);
30 col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[5].position, gl_LightSource[5].linearAttenuation);
31 col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[6].position, gl_LightSource[6].linearAttenuation);
32 col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[7].position, gl_LightSource[7].linearAttenuation);
33 col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
34 col.rgb = scaleDownLight(col.rgb);
35
36
37 col.rgb = min(col.rgb*color.rgb, 1.0);
38
39 return col;
40}
41
diff --git a/linden/indra/newview/app_settings/shaders/class3/objects/bumpshinyF.glsl b/linden/indra/newview/app_settings/shaders/class3/objects/bumpshinyF.glsl
deleted file mode 100644
index 9d1a91d..0000000
--- a/linden/indra/newview/app_settings/shaders/class3/objects/bumpshinyF.glsl
+++ /dev/null
@@ -1,25 +0,0 @@
1vec4 getLightColor();
2void applyScatter(inout vec3 col);
3
4uniform samplerCube environmentMap;
5uniform sampler2D diffuseMap;
6uniform sampler2D bumpMap;
7
8void main()
9{
10 vec4 diff = texture2D(diffuseMap, gl_TexCoord[0].xy);
11 float b = texture2D(bumpMap, gl_TexCoord[0].xy).a;
12 b -= texture2D(bumpMap, gl_TexCoord[2].xy).a;
13 vec3 ref = textureCube(environmentMap, gl_TexCoord[1].xyz*vec3(1.0,1.0,1.0-b*5.0)).rgb;
14 vec4 specular = gl_TexCoord[3];
15 vec3 col = mix(getLightColor().rgb * diff.rgb, ref, specular.a)+specular.rgb*diff.rgb;
16 col += col * b;
17 float m = (col.r + col.g + col.b);
18 m *= 1.0/3.0;
19 col = mix(col, vec3(m), -specular.a*specular.a);
20
21 applyScatter(col);
22
23 gl_FragColor.rgb = col;
24 gl_FragColor.a = diff.a;
25}
diff --git a/linden/indra/newview/app_settings/shaders/shader_heirarchy.txt b/linden/indra/newview/app_settings/shaders/shader_heirarchy.txt
new file mode 100644
index 0000000..d8bbf69
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/shader_heirarchy.txt
@@ -0,0 +1,176 @@
1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2avatar/avatarV.glsl - gAvatarProgram, gAvatarWaterProgram
3 main() - avatar/avatarV.glsl
4 getSkinnedTransform() - avatarSkinV.glsl
5 calcAtmospherics() - windlight/atmosphericsV.glsl
6 calcLighting() - lighting/lightV.glsl
7 sumLights() - lighting/sumLightsV.glsl
8 calcDirectionalLight() - lighting/lightFuncV.glsl
9 calcPointLight() - lighting/lightFuncV.glsl
10 scaleDownLight() - windlight/atmosphericsHelpersV.glsl
11 atmosAmbient() - windlight/atmosphericsHelpersV.glsl
12 atmosAffectDirectionalLight() - windlight/atmosphericsHelpersV.glsl
13~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14avatar/avatarF.glsl - gAvatarProgram
15 main() - avatar/avatarF.glsl
16 default_lighting() - lighting/lightF.glsl
17 calc_default_lighting() - lighting/lightF.glsl
18 atmosLighting() - windlight/atmosphericsF.glsl
19 scaleSoftClip() - windlight/gammaF.glsl
20~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21avatar/eyeballV.glsl - gAvatarEyeballProgram
22 main() - avatar/eyeballV.glsl
23 calcAtmospherics() - windlight/atmosphericsV.glsl
24 calcLightingSpecular() - lighting/lightSpecularV.glsl
25 sumLightsSpecular() - lighting/sumLightsSpecularV.glsl
26 calcDirectionalLightSpecular() - lighting/lightFuncSpecularV.glsl
27 calcPointLightSpecular() - lighting/lightFuncSpecularV.glsl
28 atmosAmbient() - windlight/atmosphericsHelpersV.glsl
29 atmosAffectDirectionalLight() - windlight/atmosphericsHelpersV.glsl
30 atmosGetDiffuseSunlightColor() - windlight/atmosphericsHelpersV.glsl
31 scaleDownLight() - windlight/atmosphericsHelpersV.glsl
32~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33avatar/eyeballF.glsl - gAvatarEyeballProgram
34 main() - avatar/eyeballF.glsl
35 default_lighting() - lighting/lightF.glsl
36 calc_default_lighting() - lighting/lightF.glsl
37 atmosLighting() - windlight/atmosphericsF.glsl
38 scaleSoftClip() - windlight/gammaF.glsl
39~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40avatar/pickAvatarV.glsl - gAvatarPickProgram
41 main() - avatar/pickAvatarV.glsl
42 getSkinnedTransform() - avatarSkinV.glsl
43~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44avatar/pickAvatarF.glsl - gAvatarPickProgram
45 main() - avatar/pickAvatarF.glsl
46~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47environment/terrainV.glsl - gTerrainProgram, gTerrainWaterProgram
48 texgen_object() - environment/terrainV.glsl
49 main() - environment/terrainV.glsl
50 texgen_object() - environment/terrainV.glsl
51 calcAtmospherics() - windlight/atmosphericsV.glsl
52 calcLighting() - lighting/lightV.glsl
53 sumLights() - lighting/sumLightsV.glsl
54 calcDirectionalLight() - lighting/lightFuncV.glsl
55 calcPointLight() - lighting/lightFuncV.glsl
56 scaleDownLight() - windlight/atmosphericsHelpersV.glsl
57 atmosAmbient() - windlight/atmosphericsHelpersV.glsl
58 atmosAffectDirectionalLight() - windlight/atmosphericsHelpersV.glsl
59~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60environment/terrainF.glsl - gTerrainProgram
61 main() - environment/terrainF.glsl
62 atmosLighting() - windlight/atmosphericsF.glsl
63 scaleSoftClip() - windlight/gammaF.glsl
64~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65environment/terrainWaterF.glsl - gTerrainWaterProgram
66 main() - environment/terrainWaterF.glsl
67 atmosLighting() - windlight/atmosphericsF.glsl
68 applyWaterFog() - environment/waterFogF.glsl
69~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70environment/underWaterF.glsl - gUnderWaterProgram
71 applyWaterFog() - environment/underWaterF.glsl (NOTE: different than one in waterFogF.glsl)
72 main() - environment/underWaterF.glsl
73 applyWaterFog() - environment/underWaterF.glsl
74~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75environment/waterV.glsl - gWaterProgram, gUnderWaterProgram
76 main() - environment/waterV.glsl
77 calcAtmospherics() - windlight/atmosphericsV.glsl
78~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79environment/waterF.glsl - gWaterProgram
80 main() - environment/waterF.glsl
81 atmosTransport() - windlight/transportF.glsl
82 scaleSoftClip() - windlight/gammaF.glsl
83~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
84objects/fullbrightV.glsl - gObjectFullbrightProgram, gObjectFullbrightWaterProgram
85 main() - objects/fullbrightV.glsl
86 calcAtmospherics() - windlight/atmosphericsV.glsl
87~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
88objects/fullbrightF.glsl - gObjectFullbrightProgram
89 main() - objects/fullbrightF.glsl
90 fullbright_lighting() - lighting/lightFullbrightF.glsl
91 fullbrightAtmosTransport() - windlight/transportF.glsl
92 atmosTransport() - windlight/transportF.glsl
93 fullbrightScaleSoftClip() - windlight/gammaF.glsl
94 scaleSoftClip() - windlight/gammaF.glsl
95~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
96objects/fullbrightShinyV.glsl - gObjectFullbrightShinyProgram
97 main() - objects/fullbrightShinyV.glsl
98 calcAtmospherics() - windlight/atmosphericsV.glsl
99~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100objects/fullbrightShinyF.glsl - gObjectFullbrightShinyProgram
101 main() - objects/fullbrightShinyF.glsl
102 fullbright_shiny_lighting() - lighting/lightFullbrightShinyF.glsl
103 fullbrightShinyAtmosTransport() - windlight/transportF.glsl
104 atmosTransport() - windlight/transportF.glsl
105 fullbrightScaleSoftClip() - windlight/gammaF.glsl
106 scaleSoftClip() - windlight/gammaF.glsl
107~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
108objects/fullbrightWaterF.glsl - gObjectFullbrightWaterProgram
109 main() - objects/fullbrightWaterF.glsl
110 fullbright_lighting_water() - lighting/lightFullbrightWaterF.glsl
111 fullbrightAtmosTransport() - windlight/transportF.glsl
112 atmosTransport() - windlight/transportF.glsl
113 applyWaterFog() - environment/waterFogF.glsl
114~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
115objects/shinyV.glsl - gObjectShinyProgram, gObjectShinyWaterProgram
116 main() - objects/shinyV.glsl
117 calcAtmospherics() - windlight/atmosphericsV.glsl
118 calcLighting() - lighting/lightV.glsl
119 calcLighting(vec4) - lighting/lightV.glsl
120 sumLights() - lighting/sumLightsV.glsl
121 calcDirectionalLight() - lighting/lightFuncV.glsl
122 calcPointLight() - lighting/lightFuncV.glsl
123 scaleDownLight() - windlight/atmosphericsHelpersV.glsl
124 atmosAmbient() - windlight/atmosphericsHelpersV.glsl
125 atmosAffectDirectionalLight() - windlight/atmosphericsHelpersV.glsl
126~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
127objects/shinyF.glsl - gObjectShinyProgram
128 main() - objects/shinyF.glsl
129 shiny_lighting() - lighting/lightShinyF.glsl
130 atmosLighting() - windlight/atmosphericsF.glsl
131 scaleSoftClip() - windlight/gammaF.glsl
132~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
133objects/shinyWaterF.glsl - gObjectShinyWaterProgram
134 main() - objects/shinyWaterF.glsl
135 shiny_lighting_water() - lighting/lightShinyWaterF.glsl
136 atmosLighting() - windlight/atmosphericsF.glsl
137 applyWaterFog() - environment/waterFogF.glsl
138~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139objects/simpleV.glsl - gObjectSimpleProgram, gObjectSimpleWaterProgram
140 main() - objects/simpleV.glsl
141 calcAtmospherics() - windlight/atmosphericsV.glsl
142 calcLighting() - lighting/lightV.glsl
143 sumLights() - lighting/sumLightsV.glsl
144 calcDirectionalLight() - lighting/lightFuncV.glsl
145 calcPointLight() - lighting/lightFuncV.glsl
146 scaleDownLight() - windlight/atmosphericsHelpersV.glsl
147 atmosAmbient() - windlight/atmosphericsHelpersV.glsl
148 atmosAffectDirectionalLight() - windlight/atmosphericsHelpersV.glsl
149~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
150objects/simpleF.glsl - gObjectSimpleProgram
151 main() - objects/simpleF.glsl
152 default_lighting() - lighting/lightF.glsl
153 atmosLighting() - windlight/atmosphericsF.glsl
154 scaleSoftClip() - windlight/gammaF.glsl
155~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
156objects/simpleWaterF.glsl - gObjectSimpleWaterProgram, gAvatarWaterProgram
157 main() - objects/simpleWaterF.glsl
158 default_lighting_water() - lighting/lightWaterF.glsl
159 atmosLighting() - windlight/atmosphericsF.glsl
160 applyWaterFog() - environment/waterFogF.glsl
161~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
162windlight/skyV.glsl - gWLSkyProgram
163 main() - windlight/skyV.glsl
164~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
165windlight/skyF.glsl - gWLSkyProgram
166 main() - windlight/skyF.glsl
167 scaleSoftClip() - windlight/gammaF.glsl
168~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
169windlight/cloudsV.glsl - gWLCloudProgram
170 main() - windlight/cloudsV.glsl
171~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
172windlight/cloudsF.glsl - gWLCloudProgram
173 main() - windlight/cloudsF.glsl
174 scaleSoftClip() - windlight/gammaF.glsl
175
176
diff --git a/linden/indra/newview/app_settings/ultra_graphics.xml b/linden/indra/newview/app_settings/ultra_graphics.xml
new file mode 100644
index 0000000..f16ec6c
--- /dev/null
+++ b/linden/indra/newview/app_settings/ultra_graphics.xml
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<settings version = "101">
3 <!--NO SHADERS-->
4 <RenderAvatarCloth value="TRUE"/>
5 <!--Default for now-->
6 <RenderAvatarLODFactor value="1.0"/>
7 <!--NO SHADERS-->
8 <RenderAvatarVP value="TRUE"/>
9 <!--Short Range-->
10 <RenderFarClip value="256"/>
11 <!--Default for now-->
12 <RenderFlexTimeFactor value="1"/>
13 <!--256... but they don't use this-->
14 <RenderGlowResolutionPow value="9"/>
15 <!--Sun/Moon only-->
16 <RenderLightingDetail value="1"/>
17 <!--Low number-->
18 <RenderMaxPartCount value="4096"/>
19 <!--bump okay-->
20 <RenderObjectBump value="TRUE"/>
21 <!--NO SHADERS-->
22 <RenderReflectionDetail value="3"/>
23 <!--Simple-->
24 <RenderTerrainDetail value="1"/>
25 <!--Default for now-->
26 <RenderTerrainLODFactor value="2.0"/>
27 <!--Default for now-->
28 <RenderTreeLODFactor value="1.0"/>
29 <!--Try Impostors-->
30 <RenderUseImpostors value="TRUE"/>
31 <!--Default for now-->
32 <RenderVolumeLODFactor value="2.0"/>
33 <!--NO SHADERS-->
34 <RenderWaterReflections value="TRUE"/>
35 <!--NO SHADERS-->
36 <VertexShaderEnable value="TRUE"/>
37 <!--NO SHADERS-->
38 <WindLightUseAtmosShaders value="TRUE"/>
39</settings>
diff --git a/linden/indra/newview/app_settings/windlight/clouds2.tga b/linden/indra/newview/app_settings/windlight/clouds2.tga
new file mode 100644
index 0000000..c95ce7f
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/clouds2.tga
Binary files differ
diff --git a/linden/indra/newview/app_settings/windlight/days/Default.xml b/linden/indra/newview/app_settings/windlight/days/Default.xml
new file mode 100644
index 0000000..3d3afd5
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/days/Default.xml
@@ -0,0 +1,36 @@
1<llsd>
2 <array>
3 <array>
4 <real>0</real>
5 <string>A-12AM</string>
6 </array>
7 <array>
8 <real>0.125</real>
9 <string>A-3AM</string>
10 </array>
11 <array>
12 <real>0.25</real>
13 <string>A-6AM</string>
14 </array>
15 <array>
16 <real>0.375</real>
17 <string>A-9AM</string>
18 </array>
19 <array>
20 <real>0.5</real>
21 <string>A-12PM</string>
22 </array>
23 <array>
24 <real>0.625</real>
25 <string>A-3PM</string>
26 </array>
27 <array>
28 <real>0.75</real>
29 <string>A-6PM</string>
30 </array>
31 <array>
32 <real>0.875</real>
33 <string>A-9PM</string>
34 </array>
35 </array>
36</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/postprocesseffects.xml b/linden/indra/newview/app_settings/windlight/postprocesseffects.xml
new file mode 100644
index 0000000..4645215
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/postprocesseffects.xml
@@ -0,0 +1,2 @@
1<llsd><map><key>Asi Weird</key><map><key>bloom_strength</key><real>4.5799999237060547</real><key>bloom_width</key><real>12.539999961853027</real><key>brightness</key><real>0.89999997615814209</real><key>brightness_multiplier</key><real>3</real><key>contrast</key><real>0.22999998927116394</real><key>contrast_base</key><array><real>1</real><real>1</real><real>1</real><real>0.5</real></array><key>enable_bloom</key><integer>1</integer><key>enable_color_filter</key><integer>1</integer><key>enable_night_vision</key><boolean>0</boolean><key>extract_high</key><real>1</real><key>extract_low</key><real>0.47999998927116394</real><key>noise_size</key><real>25</real><key>noise_strength</key><real>0.40000000000000002</real><key>saturation</key><real>-1</real></map><key>NegativeSaturation</key><map><key>bloom_strength</key><real>1.5</real><key>bloom_width</key><real>2.25</real><key>brightness</key><real>1</real><key>brightness_multiplier</key><real>3</real><key>contrast</key><real>1</real><key>contrast_base</key><array><real>1</real><real>1</real><real>1</real><real>0.5</real></array><key>enable_bloom</key><boolean>0</boolean><key>enable_color_filter</key><integer>1</integer><key>enable_night_vision</key><boolean>0</boolean><key>extract_high</key><real>1</real><key>extract_low</key><real>0.94999999999999996</real><key>noise_size</key><real>25</real><key>noise_strength</key><real>0.40000000000000002</real><key>saturation</key><real>-1</real></map><key>NightVision</key><map><key>bloom_strength</key><real>1.5</real><key>bloom_width</key><real>2.25</real><key>brightness</key><real>1</real><key>brightness_multiplier</key><real>3</real><key>contrast</key><real>1</real><key>contrast_base</key><array><real>1</real><real>1</real><real>1</real><real>0.5</real></array><key>enable_bloom</key><boolean>0</boolean><key>enable_color_filter</key><boolean>0</boolean><key>enable_night_vision</key><integer>1</integer><key>extract_high</key><real>1</real><key>extract_low</key><real>0.94999999999999996</real><key>noise_size</key><real>25</real><key>noise_strength</key><real>0.40000000000000002</real><key>saturation</key><real>1</real></map><key>WGhost</key><map><key>bloom_strength</key><real>2.0399999618530273</real><key>bloom_width</key><real>2.25</real><key>brightness</key><real>1</real><key>brightness_multiplier</key><real>3</real><key>contrast</key><real>1</real><key>contrast_base</key><array><real>1</real><real>1</real><real>1</real><real>0.5</real></array><key>enable_bloom</key><integer>1</integer><key>enable_color_filter</key><boolean>0</boolean><key>enable_night_vision</key><boolean>0</boolean><key>extract_high</key><real>1</real><key>extract_low</key><real>0.22999998927116394</real><key>noise_size</key><real>25</real><key>noise_strength</key><real>0.40000000000000002</real><key>saturation</key><real>1</real></map><key>default</key><map><key>bloom_strength</key><real>1.5</real><key>bloom_width</key><real>2.25</real><key>brightness</key><real>1</real><key>brightness_multiplier</key><real>3</real><key>contrast</key><real>1</real><key>contrast_base</key><array><real>1</real><real>1</real><real>1</real><real>0.5</real></array><key>enable_bloom</key><boolean>0</boolean><key>enable_color_filter</key><boolean>0</boolean><key>enable_night_vision</key><boolean>0</boolean><key>extract_high</key><real>1</real><key>extract_low</key><real>0.94999999999999996</real><key>noise_size</key><real>25</real><key>noise_strength</key><real>0.40000000000000002</real><key>saturation</key><real>1</real></map></map></llsd>
2><map><key>bloom_strength</key><real>1.5</real><key>bloom_width</key><real>2.25</real><key>brightness</key><real>1</real><key>brightness_multiplier</key><real>3</real><key>contrast</key><real>1</real><key>contrast_base</key><array><real>1</real><real>1</real><real>1</real><real>0.5</real></array><key>enable_bloom</key><boolean>0</boolean><key>enable_color_filter</key><boolean>0</boolean><key>enable_night_vision</key><boolean>0</boolean><key>extract_high</key><real>1</real><key>extract_low</key><real>0.94999999999999996</real><key>noise_size</key><real>25</real><key>noise_strength</key><real>0.40000000000000002</real><key>saturation</key><real>1</real></map></map></llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/A%2D12AM.xml b/linden/indra/newview/app_settings/windlight/skies/A%2D12AM.xml
new file mode 100644
index 0000000..0aba312
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/A%2D12AM.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.20405027270317078</real>
6 <real>0.24246673285961151</real>
7 <real>0.32999998331069946</real>
8 <real>0.10999999940395355</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.44999998807907104</real>
13 <real>0.44999998807907104</real>
14 <real>0.44999998807907104</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.23999999463558197</real>
20 <real>0.23999999463558197</real>
21 <real>0.23999999463558197</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22615399956703186</real>
27 <real>0.22615399956703186</real>
28 <real>0.22615399956703186</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>0.87999999523162842</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.49940013885498</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.26999998092651367</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00030000001424923539</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>0</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.47999998927116394</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>4</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>1</real>
117 <real>-4.8876205482883961e-007</real>
118 <real>1</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>906.20001220703125</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>2</real>
131 <key>sun_angle</key>
132 <real>4.7123894691467285</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.34876692295074463</real>
136 <real>0.35574248433113098</real>
137 <real>0.65999996662139893</real>
138 <real>0.2199999988079071</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/A%2D12PM.xml b/linden/indra/newview/app_settings/windlight/skies/A%2D12PM.xml
new file mode 100644
index 0000000..119b3e1
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/A%2D12PM.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>1.0499999523162842</real>
6 <real>1.0499999523162842</real>
7 <real>1.0499999523162842</real>
8 <real>0.34999999403953552</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.24475815892219543</real>
13 <real>0.44872328639030457</real>
14 <real>0.75999999046325684</real>
15 <real>0.37999999523162842</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.49548381567001343</real>
20 <real>0.49548381567001343</real>
21 <real>0.63999998569488525</real>
22 <real>0.31999999284744263</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.40999999642372131</real>
27 <real>0.40999999642372131</real>
28 <real>0.40999999642372131</real>
29 <real>0.40999999642372131</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.199999809265137</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.26999998092651367</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00017999998817685992</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>0.80000001192092896</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.47999998927116394</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.18999999761581421</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>1</real>
117 <real>-4.3711388286737929e-008</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>1605</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>1.5707963705062866</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.7342105507850647</real>
136 <real>0.78157895803451538</real>
137 <real>0.89999997615814209</real>
138 <real>0.29999998211860657</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/A%2D3AM.xml b/linden/indra/newview/app_settings/windlight/skies/A%2D3AM.xml
new file mode 100644
index 0000000..f790d3d
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/A%2D3AM.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.22259476780891418</real>
6 <real>0.26450252532958984</real>
7 <real>0.35999998450279236</real>
8 <real>0.11999999731779099</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.44999116536295314</real>
13 <real>0.44999854555993368</real>
14 <real>0.45001013284446073</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.23999616268583132</real>
20 <real>0.239999227803052</real>
21 <real>0.24000028550619668</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22615400241566114</real>
27 <real>0.22615400241566114</real>
28 <real>0.22615400241566114</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>0.88000000953681223</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.499400354105791</real>
55 <real>10.011000104419489</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.26999998092651367</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.0003000046529240592</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>7.8213197608078763e-005</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5.0000000000023022</real>
95 <real>0.0010000000214220922</real>
96 <real>-0.47999999165507345</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>3.9999044060931555</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>4.6348559691012062e-006</real>
109 <real>0.19915600437461423</real>
110 <real>0.19915600437461423</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.70710653066635132</real>
117 <real>-0.70710700750350952</real>
118 <real>1</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>906.19008370909478</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>1.9999420642852783</real>
131 <key>sun_angle</key>
132 <real>5.4977874755859375</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.60242295265197754</real>
136 <real>0.61447036266326904</real>
137 <real>1.1399999856948853</real>
138 <real>0.37999999523162842</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/A%2D3PM.xml b/linden/indra/newview/app_settings/windlight/skies/A%2D3PM.xml
new file mode 100644
index 0000000..ec97067
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/A%2D3PM.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>1.0499999523162842</real>
6 <real>1.0499999523162842</real>
7 <real>1.0499999523162842</real>
8 <real>0.34999999403953552</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.2447581488182351</real>
13 <real>0.44872328639030457</real>
14 <real>0.75999999046325684</real>
15 <real>0.38000004053115788</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.49548382097675159</real>
20 <real>0.49548381382419748</real>
21 <real>0.63999999284744291</real>
22 <real>0.31999999642372146</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.40999999165535073</real>
27 <real>0.40999999165535073</real>
28 <real>0.40999999165535073</real>
29 <real>0.40999999165535073</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>0.99999999999999289</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.4199999868869746</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.199999809265137</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.26999998092651367</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00017999998817685818</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>0.80000001192093606</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.47999998927116394</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.18999999761581243</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.70710659027099609</real>
117 <real>-0.70710694789886475</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>1605</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>2.3561947345733643</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.73421055078505759</real>
136 <real>0.78157895803450828</real>
137 <real>0.89999997615813498</real>
138 <real>0.29999998211860301</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/A%2D6AM.xml b/linden/indra/newview/app_settings/windlight/skies/A%2D6AM.xml
new file mode 100644
index 0000000..bbc7aee
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/A%2D6AM.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.80999994277954102</real>
6 <real>0.46289783716201782</real>
7 <real>0.62999993562698364</real>
8 <real>0.26999998092651367</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.15793180465698242</real>
13 <real>0.43499568104743958</real>
14 <real>0.87000000476837158</real>
15 <real>0.87000000476837158</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.20673196017742157</real>
20 <real>0.40988314151763916</real>
21 <real>0.47999998927116394</real>
22 <real>0.47999998927116394</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22616604226328718</real>
27 <real>0.22616604226328718</real>
28 <real>0.22616604226328718</real>
29 <real>0.99997219085526012</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>0.88000025272481253</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.49940013883861</real>
55 <real>10.010999679576344</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.26999998092651367</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00062000000616535544</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>2.6999279499073054</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5.0009990693069994</real>
95 <real>0.0010000000474963411</real>
96 <real>-0.48000101923815919</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.53999996185302734</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.15999999642372131</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.094108223915100098</real>
117 <real>0.99556195735931396</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>563</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>0.094247691333293915</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>2.369999885559082</real>
136 <real>2.369999885559082</real>
137 <real>2.369999885559082</real>
138 <real>0.78999996185302734</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/A%2D6PM.xml b/linden/indra/newview/app_settings/windlight/skies/A%2D6PM.xml
new file mode 100644
index 0000000..6e82f2e
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/A%2D6PM.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.14840038120746613</real>
6 <real>0.17633917927742004</real>
7 <real>0.23999999463558197</real>
8 <real>0.079999998211860657</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.14522500336170197</real>
13 <real>0.39999699592590332</real>
14 <real>0.80000197887420654</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.10767599940299988</real>
20 <real>0.21348699927330017</real>
21 <real>0.25</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22615399956703186</real>
27 <real>0.22615399956703186</real>
28 <real>0.22615399956703186</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>0.87999999523162842</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.49940013885498</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.26999998092651367</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00046000001020729542</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>2.7000000476837158</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.47999998927116394</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.15999999642372131</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.07532646507024765</real>
117 <real>-0.99715894460678101</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>562.5</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>3.0661947727203369</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>2.8385701179504395</real>
136 <real>2.8385701179504395</real>
137 <real>2.8385701179504395</real>
138 <real>1</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/A%2D9AM.xml b/linden/indra/newview/app_settings/windlight/skies/A%2D9AM.xml
new file mode 100644
index 0000000..413e3a2
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/A%2D9AM.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>1.0499999949065426</real>
6 <real>1.0499999988079054</real>
7 <real>1.0499999988079054</real>
8 <real>0.3500000095367426</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.15999999642372131</real>
13 <real>0.44872328639030457</real>
14 <real>0.75999999046325684</real>
15 <real>0.75999999046325684</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.53999996185302734</real>
20 <real>0.47999998927116394</real>
21 <real>0.69999998807907104</real>
22 <real>0.34999999403953552</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.37000000476837158</real>
27 <real>0.37000000476837158</real>
28 <real>0.37000000476837158</real>
29 <real>0.37000000476837158</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>0.99999998569455784</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999997615814166</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.199999844956437</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.27333331108093262</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00017999998102430359</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>0.80000008344649842</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>4.9999999284740397</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.47999999046327346</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.70000003576435432</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.18999999284767277</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.70710676908493042</real>
117 <real>0.70710676908493042</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>1605</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>0.78539818525314331</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.73421054104441197</real>
136 <real>0.7815789463510896</real>
137 <real>0.89999995470046912</real>
138 <real>0.29999997496605069</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/A%2D9PM.xml b/linden/indra/newview/app_settings/windlight/skies/A%2D9PM.xml
new file mode 100644
index 0000000..292f671
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/A%2D9PM.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.20404692765200849</real>
6 <real>0.24246276689169122</real>
7 <real>0.33000383615406292</real>
8 <real>0.1100123608103587</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.44999116536295314</real>
13 <real>0.44999854555993368</real>
14 <real>0.45001013284446073</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.23999616268583132</real>
20 <real>0.239999227803052</real>
21 <real>0.24000028550619668</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22615400241566114</real>
27 <real>0.22615400241566114</real>
28 <real>0.22615400241566114</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>0.88000000953681223</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.499400354105791</real>
55 <real>10.011000104419489</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.26999998092651367</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.0003000046529240592</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>7.8213197608078763e-005</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5.0000000000023022</real>
95 <real>0.0010000000214220922</real>
96 <real>-0.47999999165507345</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>3.9999044060931555</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>4.6348559691012062e-006</real>
109 <real>0.19915600437461423</real>
110 <real>0.19915600437461423</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.70710688829421997</real>
117 <real>0.70710664987564087</real>
118 <real>1</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>906.19008370909478</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>1.9999420642852783</real>
131 <key>sun_angle</key>
132 <real>3.9269909858703613</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.34878980098432066</real>
136 <real>0.35576509414380553</real>
137 <real>0.66003586768772493</real>
138 <real>0.22001197576412324</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Barcelona.xml b/linden/indra/newview/app_settings/windlight/skies/Barcelona.xml
new file mode 100644
index 0000000..ea9cab8
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Barcelona.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.22260047495365143</real>
6 <real>0.26450866460800171</real>
7 <real>0.35999998450279236</real>
8 <real>0.11999999731779099</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.14522500336170197</real>
13 <real>0.39999699592590332</real>
14 <real>0.80000197887420654</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.15130999684333801</real>
20 <real>0.30000001192092896</real>
21 <real>0.35131001472473145</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.50999999046325684</real>
27 <real>0.50999999046325684</real>
28 <real>0.50999999046325684</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.5</real>
34 <real>0.5</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.49940013885498</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.30000001192092896</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.0003499999875202775</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>6</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.33000001311302185</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.19915600121021271</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.062790460884571075</real>
117 <real>-0.99802672863006592</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>600</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>21</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>3.0787608623504639</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>1.1699999570846558</real>
136 <real>1.1699999570846558</real>
137 <real>1.1699999570846558</real>
138 <real>0.38999998569488525</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Blizzard.xml b/linden/indra/newview/app_settings/windlight/skies/Blizzard.xml
new file mode 100644
index 0000000..d17d279
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Blizzard.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.4823022186756134</real>
6 <real>0.57310229539871216</real>
7 <real>0.77999997138977051</real>
8 <real>0.25999999046325684</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.14522500336170197</real>
13 <real>0.39999699592590332</real>
14 <real>0.80000197887420654</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.15130999684333801</real>
20 <real>0.30000001192092896</real>
21 <real>0.35131001472473145</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.12862999737262726</real>
27 <real>0.12862999737262726</real>
28 <real>0.12862999737262726</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.88419097661972046</real>
34 <real>0.53047597408294678</real>
35 <real>0.4270470142364502</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.38419300317764282</real>
41 <real>0.5</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10</real>
55 <real>10</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.61711597442626953</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.0001250890054507181</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>11.40000057220459</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>6.4079799652099609</real>
95 <real>0.0012815999798476696</real>
96 <real>-0.42292699217796326</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>4</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.21744099259376526</real>
109 <real>0.21744099259376526</real>
110 <real>0.21744099259376526</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.15643447637557983</real>
117 <real>0.98768836259841919</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>4000</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>2</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>0.15707963705062866</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>3</real>
136 <real>3</real>
137 <real>3</real>
138 <real>1</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Blue%20Midday.xml b/linden/indra/newview/app_settings/windlight/skies/Blue%20Midday.xml
new file mode 100644
index 0000000..570f059
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Blue%20Midday.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.14999999105930328</real>
6 <real>0.14999999105930328</real>
7 <real>0.14999999105930328</real>
8 <real>0.049999997019767761</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.18153078854084015</real>
13 <real>0.49999505281448364</real>
14 <real>1</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.43070217967033386</real>
20 <real>0.85394656658172607</real>
21 <real>1</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.53962135314941406</real>
27 <real>0.53962135314941406</real>
28 <real>0.53962135314941406</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.5</real>
34 <real>0.5</real>
35 <real>0.69569224119186401</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.10999999195337296</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.49940013885498</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.3765256404876709</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.0003499999875202775</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>2.9846153259277344</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>4.2061538696289062</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.44246155023574829</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>2.8830769062042236</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.49740666151046753</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.86074197292327881</real>
117 <real>-0.50904154777526855</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>600</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>10</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>2.1048672199249268</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.88526362180709839</real>
136 <real>1.2300000190734863</real>
137 <real>1.2300000190734863</real>
138 <real>0.40999999642372131</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Coastal%20Afternoon.xml b/linden/indra/newview/app_settings/windlight/skies/Coastal%20Afternoon.xml
new file mode 100644
index 0000000..4925b29
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Coastal%20Afternoon.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.89040267467498779</real>
6 <real>1.0580335855484009</real>
7 <real>1.4399999380111694</real>
8 <real>0.47999998927116394</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.14522500336170197</real>
13 <real>0.39999699592590332</real>
14 <real>0.80000197887420654</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.15130999684333801</real>
20 <real>0.30000001192092896</real>
21 <real>0.35131001472473145</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.21396400034427643</real>
27 <real>0.21396400034427643</real>
28 <real>0.21396400034427643</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.16495099663734436</real>
34 <real>0.09771379828453064</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5</real>
42 <real>0.079754598438739777</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>9.644780158996582</real>
55 <real>10.423800468444824</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.30061298608779907</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00015800200344529003</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>1</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.33000001311302185</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.13210900127887726</real>
109 <real>0.13210900127887726</real>
110 <real>0.13210900127887726</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.031410444527864456</real>
117 <real>-0.99950659275054932</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>600</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>3</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>3.1101770401000977</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>3</real>
136 <real>3</real>
137 <real>3</real>
138 <real>1</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Coastal%20Sunset.xml b/linden/indra/newview/app_settings/windlight/skies/Coastal%20Sunset.xml
new file mode 100644
index 0000000..f4736cf
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Coastal%20Sunset.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.31535112857818604</real>
6 <real>0.37471914291381836</real>
7 <real>0.50999999046325684</real>
8 <real>0.17000000178813934</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.11645399779081345</real>
13 <real>0.32075101137161255</real>
14 <real>0.64150899648666382</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.054176401346921921</real>
20 <real>0.10741499811410904</real>
21 <real>0.12578600645065308</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.21396400034427643</real>
27 <real>0.21396400034427643</real>
28 <real>0.21396400034427643</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.27044001221656799</real>
34 <real>1</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5</real>
42 <real>0.10062900185585022</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>9.644780158996582</real>
55 <real>10.423800468444824</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.32704401016235352</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00015849100600462407</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>3.4000000953674316</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>6.867919921875</real>
95 <real>0.0013735899701714516</real>
96 <real>-0.45328301191329956</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.6792449951171875</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.13210900127887726</real>
109 <real>0.13210900127887726</real>
110 <real>0.13210900127887726</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.031410444527864456</real>
117 <real>-0.99950659275054932</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>1308.1800537109375</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>5</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>3.1101770401000977</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>3</real>
136 <real>3</real>
137 <real>3</real>
138 <real>1</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Default.xml b/linden/indra/newview/app_settings/windlight/skies/Default.xml
new file mode 100644
index 0000000..13a2c75
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Default.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>1.0499999523162842</real>
6 <real>1.0499999523162842</real>
7 <real>1.0499999523162842</real>
8 <real>0.34999999403953552</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.24475815892219543</real>
13 <real>0.44872328639030457</real>
14 <real>0.75999999046325684</real>
15 <real>0.37999999523162842</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.49548381567001343</real>
20 <real>0.49548381567001343</real>
21 <real>0.63999998569488525</real>
22 <real>0.31999999284744263</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.40999999642372131</real>
27 <real>0.40999999642372131</real>
28 <real>0.40999999642372131</real>
29 <real>0.40999999642372131</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.199999809265137</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.26999998092651367</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00017999998817685992</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>0.80000001192092896</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.47999998927116394</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.18999999761581421</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.91269159317016602</real>
117 <real>-0.40864911675453186</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>1605</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>1.9917697906494141</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.7342105507850647</real>
136 <real>0.78157895803451538</real>
137 <real>0.89999997615814209</real>
138 <real>0.29999998211860657</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Desert%20Sunset.xml b/linden/indra/newview/app_settings/windlight/skies/Desert%20Sunset.xml
new file mode 100644
index 0000000..b2a6111
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Desert%20Sunset.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.07420019805431366</real>
6 <real>0.088169597089290619</real>
7 <real>0.11999999731779099</real>
8 <real>1</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.14522500336170197</real>
13 <real>0.39999699592590332</real>
14 <real>0.80000197887420654</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.10767599940299988</real>
20 <real>0.21348699927330017</real>
21 <real>0.25</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22615399956703186</real>
27 <real>0.22615399956703186</real>
28 <real>0.22615399956703186</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.199999809265137</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.37999999523162842</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00046000001020729542</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>2</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1.6100000143051147</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.47999998927116394</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.15999999642372131</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.062790460884571075</real>
117 <real>-0.99802672863006592</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>562.5</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>3.0787608623504639</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>2.8385701179504395</real>
136 <real>2.8385701179504395</real>
137 <real>2.8385701179504395</real>
138 <real>1</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Fine%20Day.xml b/linden/indra/newview/app_settings/windlight/skies/Fine%20Day.xml
new file mode 100644
index 0000000..e053815
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Fine%20Day.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.21194984018802643</real>
6 <real>0.25700280070304871</real>
7 <real>0.25999999046325684</real>
8 <real>0.25999999046325684</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.10031381994485855</real>
13 <real>0.2849995493888855</real>
14 <real>0.56999999284744263</real>
15 <real>0.56999999284744263</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.15806557238101959</real>
20 <real>0.31211116909980774</real>
21 <real>0.52999997138977051</real>
22 <real>0.52999997138977051</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.62000000476837158</real>
27 <real>0.72737622261047363</real>
28 <real>0.73626559972763062</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.89999997615814209</real>
34 <real>0.93999999761581421</real>
35 <real>0.74000000953674316</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.11999999731779099</real>
41 <real>0.20999999344348907</real>
42 <real>0.029999999329447746</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.25999999046325684</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>9.993240904292179</real>
55 <real>10.010000228881836</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.29999998211860657</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00013000000035390258</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>10.100000381469727</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>3.8955750465393066</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1.4699999094009399</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>11.200000762939453</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.64999997615814209</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.35999998450279236</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.11999999731779099</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0.66304093599319458</real>
116 <real>0.24868990480899811</real>
117 <real>-0.70606660842895508</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>789</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>24</integer>
129 <key>star_brightness</key>
130 <real>0.18999999761581421</real>
131 <key>sun_angle</key>
132 <real>0.25132742524147034</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>2.25</real>
136 <real>1.2599999904632568</real>
137 <real>0.59999996423721313</real>
138 <real>2.25</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Fluffy%20Big%20Clouds.xml b/linden/indra/newview/app_settings/windlight/skies/Fluffy%20Big%20Clouds.xml
new file mode 100644
index 0000000..8576ec1
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Fluffy%20Big%20Clouds.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.029999999329447746</real>
6 <real>0</real>
7 <real>0</real>
8 <real>0.029999999329447746</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.097999997437000275</real>
13 <real>0.2800000011920929</real>
14 <real>1</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.11999999731779099</real>
20 <real>0.35094299912452698</real>
21 <real>1</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.48999997973442078</real>
27 <real>0.79000002145767212</real>
28 <real>0.80000001192092896</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.53999996185302734</real>
34 <real>0.5</real>
35 <real>0.75999999046325684</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.38999998569488525</real>
41 <real>0.5</real>
42 <real>0.039999999105930328</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.43999999761581421</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>11.809999465942383</real>
55 <real>12.799999237060547</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.32999998331069946</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00021999998716637492</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>4</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>3.2044246196746826</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1.5399999618530273</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>3.8000010331979865</real>
95 <real>0.001000000059761974</real>
96 <real>-0.49999996688498527</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.20999999344348907</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.049999997019767761</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0.056814663112163544</real>
116 <real>0.42577928304672241</real>
117 <real>-0.90304160118103027</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>676.10003662109375</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>18</integer>
129 <key>star_brightness</key>
130 <real>0.44999998807907104</real>
131 <key>sun_angle</key>
132 <real>0.4398229718208313</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>1.7999999523162842</real>
136 <real>1.4099999666213989</real>
137 <real>1.0199999809265137</real>
138 <real>1.7999999523162842</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Foggy.xml b/linden/indra/newview/app_settings/windlight/skies/Foggy.xml
new file mode 100644
index 0000000..cb7395d
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Foggy.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.32999998331069946</real>
6 <real>0.32999998331069946</real>
7 <real>0.32999998331069946</real>
8 <real>0.10999999940395355</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.14522500336170197</real>
13 <real>0.39999699592590332</real>
14 <real>0.80000197887420654</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.43070214986801147</real>
20 <real>0.85394668579101563</real>
21 <real>1</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.69999998807907104</real>
27 <real>0.69999998807907104</real>
28 <real>0.69999998807907104</real>
29 <real>0.69999998807907104</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.5</real>
34 <real>0.5</real>
35 <real>0.53999996185302734</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.29999998211860657</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.49940013885498</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.39999997615814209</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.0003499999875202775</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>4</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>3.7999999523162842</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.5</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>4</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.64999997615814209</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>1</real>
117 <real>-4.3711388286737929e-008</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>600</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>18</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>1.5707963705062866</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.53999996185302734</real>
136 <real>0.53999996185302734</real>
137 <real>0.53999996185302734</real>
138 <real>0.17999999225139618</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Funky%20Funky%20Funky.xml b/linden/indra/newview/app_settings/windlight/skies/Funky%20Funky%20Funky.xml
new file mode 100644
index 0000000..32be0d2
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Funky%20Funky%20Funky.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.29999998211860657</real>
6 <real>0.23511900007724762</real>
7 <real>0.31999999284744263</real>
8 <real>1</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.13977900147438049</real>
13 <real>0.38499599695205688</real>
14 <real>0.76999998092651367</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.18999999761581421</real>
20 <real>0.18999999761581421</real>
21 <real>0.18999999761581421</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22615399956703186</real>
27 <real>0.22615399956703186</real>
28 <real>0.22615399956703186</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>5.3780298233032227</real>
34 <real>1.9675600528717041</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>5.3780298233032227</real>
41 <real>1.9675600528717041</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.739999771118164</real>
55 <real>10.600000381469727</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.31000000238418579</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00052000000141561031</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>3.4000000953674316</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>0.77999997138977051</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.47999998927116394</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>1.1000000238418579</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.12999999523162842</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.53582650423049927</real>
117 <real>-0.84432810544967651</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>656.20001220703125</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>28</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>2.5761063098907471</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>2.1299998760223389</real>
136 <real>1.5299999713897705</real>
137 <real>2.8385701179504395</real>
138 <real>1</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Funky%20Funky.xml b/linden/indra/newview/app_settings/windlight/skies/Funky%20Funky.xml
new file mode 100644
index 0000000..ae16b2d
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Funky%20Funky.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.32999998331069946</real>
6 <real>0.32999998331069946</real>
7 <real>0.32999998331069946</real>
8 <real>0.10999999940395355</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.14522500336170197</real>
13 <real>0.39999699592590332</real>
14 <real>0.80000197887420654</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.15130999684333801</real>
20 <real>0.30000001192092896</real>
21 <real>0.35131001472473145</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22615399956703186</real>
27 <real>0.22615399956703186</real>
28 <real>0.22615399956703186</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.65280699729919434</real>
34 <real>0.50335597991943359</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.65280699729919434</real>
41 <real>0.50335597991943359</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.49940013885498</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.33064401149749756</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.0003499999875202775</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>1</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.33000001311302185</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.19915600121021271</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.062790460884571075</real>
117 <real>-0.99802672863006592</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>600</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>11</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>3.0787608623504639</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.86811381578445435</real>
136 <real>2.2200000286102295</real>
137 <real>2.2200000286102295</real>
138 <real>0.74000000953674316</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Gelatto.xml b/linden/indra/newview/app_settings/windlight/skies/Gelatto.xml
new file mode 100644
index 0000000..66b3d31
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Gelatto.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0</real>
6 <real>0.15999999642372131</real>
7 <real>0</real>
8 <real>0.15999999642372131</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.019999999552965164</real>
13 <real>0.22999770939350128</real>
14 <real>0.45999997854232788</real>
15 <real>0.55000001192092896</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0</real>
20 <real>0.6319204568862915</real>
21 <real>0.74000000953674316</real>
22 <real>0.84999996423721313</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>1</real>
27 <real>0</real>
28 <real>0</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.53999996185302734</real>
34 <real>0.50999999046325684</real>
35 <real>0.23999999463558197</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5</real>
42 <real>0.059999998658895493</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.2800000011920929</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>20</real>
55 <real>20</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.32999998331069946</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00016999999934341758</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>8.1000003814697266</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>3.7699110507965088</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>0</boolean>
83 <boolean>0</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1.5399999618530273</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>0.39999961853027344</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.49999997019767761</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>3.2599999904632568</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.4699999988079071</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0.58749508857727051</real>
116 <real>-0.031410761177539825</real>
117 <real>-0.80861783027648926</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>1267.5999755859375</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>18</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>-0.031415928155183792</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.75</real>
136 <real>0.71999996900558472</real>
137 <real>0.37800011038780212</real>
138 <real>0.80999994277954102</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Ghost.xml b/linden/indra/newview/app_settings/windlight/skies/Ghost.xml
new file mode 100644
index 0000000..447202e
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Ghost.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.23999999463558197</real>
6 <real>0.23999999463558197</real>
7 <real>0.23999999463558197</real>
8 <real>0.079999998211860657</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.16700799763202667</real>
13 <real>0.45999500155448914</real>
14 <real>0.92000001668930054</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.18089599907398224</real>
20 <real>0.35865798592567444</real>
21 <real>0.41999998688697815</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.40999999642372131</real>
27 <real>0.40999999642372131</real>
28 <real>0.40999999642372131</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.5</real>
34 <real>0.5</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>11.539999961853027</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.36000001430511475</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00042999998549930751</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>8.1000003814697266</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.51999998092651367</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.75</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.18000000715255737</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.89100658893585205</real>
117 <real>0.45399042963981628</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>718.70001220703125</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>23</integer>
129 <key>star_brightness</key>
130 <real>2</real>
131 <key>sun_angle</key>
132 <real>1.0995575189590454</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.33000001311302185</real>
136 <real>0.33000001311302185</real>
137 <real>0.33000001311302185</real>
138 <real>1</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Incongruent%20Truths.xml b/linden/indra/newview/app_settings/windlight/skies/Incongruent%20Truths.xml
new file mode 100644
index 0000000..098844e
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Incongruent%20Truths.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0</real>
6 <real>0</real>
7 <real>0.44999998807907104</real>
8 <real>0.44999998807907104</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.13997539444089213</real>
13 <real>0.38665792478461469</real>
14 <real>0.77332294252195766</real>
15 <real>0.95108884837904384</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0</real>
20 <real>0.22876684367656708</real>
21 <real>0.290018230676651</real>
22 <real>0.31999999284744263</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.25999999046325684</real>
27 <real>0.28883209824562073</real>
28 <real>0.28994369506835938</real>
29 <real>0.28999999165534973</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.17999999225139618</real>
34 <real>0.50999999046325684</real>
35 <real>0.91999995708465576</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5</real>
42 <real>0.079999998211860657</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.25</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.436104517528292</real>
55 <real>10</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.34000000357627869</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.0002899999963119626</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>1.3000000715255737</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>2.2619466781616211</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1.5399999618530273</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>4.0000009536743164</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.74999994039535522</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.12999999523162842</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.14999999105930328</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>-0.74630612134933472</real>
116 <real>0.24868990480899811</real>
117 <real>-0.61739814281463623</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>394.39999389648437</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>18</integer>
129 <key>star_brightness</key>
130 <real>0.44999998807907104</real>
131 <key>sun_angle</key>
132 <real>0.25132742524147034</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>2.25</real>
136 <real>1.957500696182251</real>
137 <real>1.170000433921814</real>
138 <real>0.75</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Midday%201.xml b/linden/indra/newview/app_settings/windlight/skies/Midday%201.xml
new file mode 100644
index 0000000..13a2c75
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Midday%201.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>1.0499999523162842</real>
6 <real>1.0499999523162842</real>
7 <real>1.0499999523162842</real>
8 <real>0.34999999403953552</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.24475815892219543</real>
13 <real>0.44872328639030457</real>
14 <real>0.75999999046325684</real>
15 <real>0.37999999523162842</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.49548381567001343</real>
20 <real>0.49548381567001343</real>
21 <real>0.63999998569488525</real>
22 <real>0.31999999284744263</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.40999999642372131</real>
27 <real>0.40999999642372131</real>
28 <real>0.40999999642372131</real>
29 <real>0.40999999642372131</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.6884100437164307</real>
34 <real>0.52609699964523315</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.6884100437164307</real>
41 <real>0.52609699964523315</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.199999809265137</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.26999998092651367</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00017999998817685992</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>0.80000001192092896</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.47999998927116394</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.18999999761581421</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.91269159317016602</real>
117 <real>-0.40864911675453186</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>1605</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>22</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>1.9917697906494141</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.7342105507850647</real>
136 <real>0.78157895803451538</real>
137 <real>0.89999997615814209</real>
138 <real>0.29999998211860657</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Midday%202.xml b/linden/indra/newview/app_settings/windlight/skies/Midday%202.xml
new file mode 100644
index 0000000..04f2ba8
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Midday%202.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0</real>
6 <real>0</real>
7 <real>0</real>
8 <real>0</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.14522500336170197</real>
13 <real>0.39999699592590332</real>
14 <real>0.80000197887420654</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.43070214986801147</real>
20 <real>0.85394668579101563</real>
21 <real>1</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.69999998807907104</real>
27 <real>0.69999998807907104</real>
28 <real>0.69999998807907104</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.5</real>
34 <real>0.5</real>
35 <real>0.53999996185302734</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.29999998211860657</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.199999809265137</real>
55 <real>10.069999694824219</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.22999998927116394</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.0003499999875202775</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>0</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1.6100000143051147</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>3.7999999523162842</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.5</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.41999998688697815</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>1</real>
117 <real>-4.3711388286737929e-008</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>600</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>-1163005939</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>1.5707963705062866</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.80999994277954102</real>
136 <real>0.80999994277954102</real>
137 <real>0.80999994277954102</real>
138 <real>0.26999998092651367</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Midday%203.xml b/linden/indra/newview/app_settings/windlight/skies/Midday%203.xml
new file mode 100644
index 0000000..a23dcab
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Midday%203.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.33000001311302185</real>
6 <real>0.33000001311302185</real>
7 <real>0.33000001311302185</real>
8 <real>1</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.16449999809265137</real>
13 <real>0.4699999988079071</real>
14 <real>0.93999999761581421</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.17547200620174408</real>
20 <real>0.35094299912452698</real>
21 <real>0.62000000476837158</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.5899999737739563</real>
27 <real>0.79000002145767212</real>
28 <real>0.80000001192092896</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>2.8148899078369141</real>
34 <real>5.6909198760986328</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>5.9584097862243652</real>
41 <real>6.9909601211547852</real>
42 <real>0.070000000298023224</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>9.9300003051757813</real>
55 <real>10.199999809265137</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.25999999046325684</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00039000000106170774</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>0.69999998807907104</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1.6100000143051147</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-1.1599999666213989</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.20999999344348907</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.11999999731779099</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>1</real>
117 <real>-4.3711388286737929e-008</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>2250</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>24</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>1.5707963705062866</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>1.2599999904632568</real>
136 <real>1.2599999904632568</real>
137 <real>1.2599999904632568</real>
138 <real>1</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Midday%204.xml b/linden/indra/newview/app_settings/windlight/skies/Midday%204.xml
new file mode 100644
index 0000000..255e314
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Midday%204.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.33000001311302185</real>
6 <real>0.33000001311302185</real>
7 <real>0.33000001311302185</real>
8 <real>1</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.097999997437000275</real>
13 <real>0.2800000011920929</real>
14 <real>0.56000000238418579</real>
15 <real>0.56000000238418579</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.17547200620174408</real>
20 <real>0.35094299912452698</real>
21 <real>0.61000001430511475</real>
22 <real>0.61000001430511475</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.5899999737739563</real>
27 <real>0.79000002145767212</real>
28 <real>0.80000001192092896</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>2.8148899078369141</real>
34 <real>5.6909198760986328</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>5.9584097862243652</real>
41 <real>6.9909601211547852</real>
42 <real>0.070000000298023224</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.32999998331069946</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>9.9300003051757813</real>
55 <real>10.199999809265137</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.22999998927116394</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00039000000106170774</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>0.69999998807907104</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1.6100000143051147</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>3.8000011444091797</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.49999997019767761</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.20999999344348907</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.19999998807907104</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>1</real>
117 <real>-4.3711388286737929e-008</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>1802.800048828125</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>24</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>1.5707963705062866</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>1.2599999904632568</real>
136 <real>1.2599999904632568</real>
137 <real>1.2599999904632568</real>
138 <real>0.41999998688697815</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Night.xml b/linden/indra/newview/app_settings/windlight/skies/Night.xml
new file mode 100644
index 0000000..c493894
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Night.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.20405027105862608</real>
6 <real>0.24246673976617727</real>
7 <real>0.32999997392212316</real>
8 <real>0.11000000166951449</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.44999999369830818</real>
13 <real>0.44999999398335949</real>
14 <real>0.4499999944309046</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.23999999567946317</real>
20 <real>0.23999999579784967</real>
21 <real>0.23999999583870221</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22615400241575034</real>
27 <real>0.22615400241575034</real>
28 <real>0.22615400241575034</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.5</real>
34 <real>0.5</real>
35 <real>0.88000000953711155</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.49940035411295</real>
55 <real>10.011000104431371</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.36000001430511475</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00030000001824737163</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>3.0208916693946743e-009</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000214212465</real>
96 <real>-0.47999999165502744</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>3.9999999963077992</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>1.7901579546794781e-010</real>
109 <real>0.19915600437467304</real>
110 <real>0.19915600437467304</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>1</real>
117 <real>3.0028815672267228e-005</real>
118 <real>1</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>906.20003957594895</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>26</integer>
129 <key>star_brightness</key>
130 <real>2</real>
131 <key>sun_angle</key>
132 <real>4.7123589515686035</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.34876692389196384</real>
136 <real>0.3557424864638451</real>
137 <real>0.65999994893325931</real>
138 <real>0.22000000284673543</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Pirate.xml b/linden/indra/newview/app_settings/windlight/skies/Pirate.xml
new file mode 100644
index 0000000..dcb9c27
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Pirate.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.27825063467025757</real>
6 <real>0.33063584566116333</real>
7 <real>0.44999998807907104</real>
8 <real>0.14999999105930328</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.14522500336170197</real>
13 <real>0.39999699592590332</real>
14 <real>0.80000197887420654</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.15130999684333801</real>
20 <real>0.30000001192092896</real>
21 <real>0.35131001472473145</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22615399956703186</real>
27 <real>0.22615399956703186</real>
28 <real>0.22615399956703186</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>1.2046600580215454</real>
34 <real>0.51547497510910034</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>1.2046600580215454</real>
41 <real>0.51547497510910034</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.49940013885498</real>
55 <real>10.01099967956543</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.33064401149749756</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.0003499999875202775</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>3.4000000953674316</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.36000001430511475</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.69999998807907104</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.19915600121021271</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.062790460884571075</real>
117 <real>-0.99802672863006592</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>600</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>27</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>3.0787608623504639</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>2.8385701179504395</real>
136 <real>2.8385701179504395</real>
137 <real>2.8385701179504395</real>
138 <real>1</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Purple.xml b/linden/indra/newview/app_settings/windlight/skies/Purple.xml
new file mode 100644
index 0000000..0e9ac3f
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Purple.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.1978670060634613</real>
6 <real>0.23511900007724762</real>
7 <real>0.31999999284744263</real>
8 <real>1</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.13977900147438049</real>
13 <real>0.38499599695205688</real>
14 <real>0.76999998092651367</real>
15 <real>1</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.18999999761581421</real>
20 <real>0.18999999761581421</real>
21 <real>0.18999999761581421</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.22615399956703186</real>
27 <real>0.22615399956703186</real>
28 <real>0.22615399956703186</real>
29 <real>1</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>5.3780298233032227</real>
34 <real>1.9675600528717041</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>5.3780298233032227</real>
41 <real>1.9675600528717041</real>
42 <real>0.125</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.41999998688697815</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>10.739999771118164</real>
55 <real>10.600000381469727</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.31000000238418579</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00052000000141561031</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>3.4000000953674316</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>0</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>5</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.47999998927116394</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>1.1000000238418579</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.12999999523162842</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0</real>
116 <real>0.094108030200004578</real>
117 <real>-0.99556201696395874</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>656.20001220703125</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>28</integer>
129 <key>star_brightness</key>
130 <real>0</real>
131 <key>sun_angle</key>
132 <real>3.0473451614379883</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>1.5</real>
136 <real>1.5299999713897705</real>
137 <real>2.8385701179504395</real>
138 <real>1</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Sailor%27s%20Delight.xml b/linden/indra/newview/app_settings/windlight/skies/Sailor%27s%20Delight.xml
new file mode 100644
index 0000000..70df6b0
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Sailor%27s%20Delight.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0.8399999737739563</real>
6 <real>0.090738050639629364</real>
7 <real>0.1234893873333931</real>
8 <real>0.8399999737739563</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0.93999999761581421</real>
13 <real>0.69999998807907104</real>
14 <real>0.25</real>
15 <real>0.93999999761581421</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>1</real>
20 <real>0.59999996423721313</real>
21 <real>0.25001853704452515</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.65999996662139893</real>
27 <real>0.38999998569488525</real>
28 <real>0.22618354856967926</real>
29 <real>0.65999996662139893</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.76999998092651367</real>
34 <real>0.50999999046325684</real>
35 <real>1</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.5</real>
41 <real>0.5899999737739563</real>
42 <real>0.019999999552965164</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.26999998092651367</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>9.4499998092651367</real>
55 <real>9.4399995803833008</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.5</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00019999999494757503</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>6.7000002861022949</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>3.7070791721343994</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1.4800000190734863</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>0.79999923706054688</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.94999998807907104</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.89999997615814209</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.29999998211860657</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>0.53160154819488525</real>
116 <real>0.12533323466777802</real>
117 <real>-0.83767020702362061</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>281.70001220703125</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>18</integer>
129 <key>star_brightness</key>
130 <real>1.3799999952316284</real>
131 <key>sun_angle</key>
132 <real>0.12566371262073517</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>0.75</real>
136 <real>1.6800000667572021</real>
137 <real>1.0777359008789062</real>
138 <real>0.56000000238418579</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/skies/Sheer%20Surreality.xml b/linden/indra/newview/app_settings/windlight/skies/Sheer%20Surreality.xml
new file mode 100644
index 0000000..4c44a1b
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/skies/Sheer%20Surreality.xml
@@ -0,0 +1,141 @@
1<llsd>
2 <map>
3 <key>ambient</key>
4 <array>
5 <real>0</real>
6 <real>0.059999998658895493</real>
7 <real>0</real>
8 <real>0.059999998658895493</real>
9 </array>
10 <key>blue_density</key>
11 <array>
12 <real>0</real>
13 <real>0.099999994039535522</real>
14 <real>0.32999998331069946</real>
15 <real>0.32999998331069946</real>
16 </array>
17 <key>blue_horizon</key>
18 <array>
19 <real>0.029999999329447746</real>
20 <real>0</real>
21 <real>1</real>
22 <real>1</real>
23 </array>
24 <key>cloud_color</key>
25 <array>
26 <real>0.81999999284744263</real>
27 <real>0.18999999761581421</real>
28 <real>0.039999999105930328</real>
29 <real>0.81999999284744263</real>
30 </array>
31 <key>cloud_pos_density1</key>
32 <array>
33 <real>0.74000000953674316</real>
34 <real>0.93999999761581421</real>
35 <real>0.20999999344348907</real>
36 <real>1</real>
37 </array>
38 <key>cloud_pos_density2</key>
39 <array>
40 <real>0.65999996662139893</real>
41 <real>0.52999997138977051</real>
42 <real>0.0099999997764825821</real>
43 <real>1</real>
44 </array>
45 <key>cloud_scale</key>
46 <array>
47 <real>0.14000000059604645</real>
48 <real>0</real>
49 <real>0</real>
50 <real>1</real>
51 </array>
52 <key>cloud_scroll_rate</key>
53 <array>
54 <real>18</real>
55 <real>20</real>
56 </array>
57 <key>cloud_shadow</key>
58 <array>
59 <real>0.37999999523162842</real>
60 <real>0</real>
61 <real>0</real>
62 <real>1</real>
63 </array>
64 <key>density_multiplier</key>
65 <array>
66 <real>0.00018000000272877514</real>
67 <real>0</real>
68 <real>0</real>
69 <real>1</real>
70 </array>
71 <key>distance_multiplier</key>
72 <array>
73 <real>6.7000002861022949</real>
74 <real>0</real>
75 <real>0</real>
76 <real>1</real>
77 </array>
78 <key>east_angle</key>
79 <real>2.3247785568237305</real>
80 <key>enable_cloud_scroll</key>
81 <array>
82 <boolean>1</boolean>
83 <boolean>1</boolean>
84 </array>
85 <key>gamma</key>
86 <array>
87 <real>1.9499999284744263</real>
88 <real>0</real>
89 <real>0</real>
90 <real>1</real>
91 </array>
92 <key>glow</key>
93 <array>
94 <real>17.399999618530273</real>
95 <real>0.0010000000474974513</real>
96 <real>-0.64999997615814209</real>
97 <real>1</real>
98 </array>
99 <key>haze_density</key>
100 <array>
101 <real>0.40999999642372131</real>
102 <real>0</real>
103 <real>0</real>
104 <real>1</real>
105 </array>
106 <key>haze_horizon</key>
107 <array>
108 <real>0.17000000178813934</real>
109 <real>0.19915600121021271</real>
110 <real>0.19915600121021271</real>
111 <real>1</real>
112 </array>
113 <key>lightnorm</key>
114 <array>
115 <real>-0.72322052717208862</real>
116 <real>0.12533323466777802</real>
117 <real>-0.67914927005767822</real>
118 <real>0</real>
119 </array>
120 <key>max_y</key>
121 <array>
122 <real>263</real>
123 <real>0</real>
124 <real>0</real>
125 <real>1</real>
126 </array>
127 <key>preset_num</key>
128 <integer>24</integer>
129 <key>star_brightness</key>
130 <real>1.0399999618530273</real>
131 <key>sun_angle</key>
132 <real>0.12566371262073517</real>
133 <key>sunlight_color</key>
134 <array>
135 <real>1.5899999141693115</real>
136 <real>1.5299999713897705</real>
137 <real>0.53999996185302734</real>
138 <real>1.5899999141693115</real>
139 </array>
140 </map>
141</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/water/Default.xml b/linden/indra/newview/app_settings/windlight/water/Default.xml
new file mode 100644
index 0000000..dce4148
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/water/Default.xml
@@ -0,0 +1,43 @@
1<llsd>
2 <map>
3 <key>blurMultiplier</key>
4 <real>0.040000002831220627</real>
5 <key>fresnelOffset</key>
6 <real>0.5</real>
7 <key>fresnelScale</key>
8 <real>0.39999997615814209</real>
9 <key>normScale</key>
10 <array>
11 <integer>2</integer>
12 <integer>2</integer>
13 <integer>2</integer>
14 </array>
15 <key>normalMap</key>
16 <uuid>822ded49-9a6c-f61c-cb89-6df54f42cdf4</uuid>
17 <key>scaleAbove</key>
18 <real>0.029999999329447746</real>
19 <key>scaleBelow</key>
20 <real>0.20000000298023224</real>
21 <key>underWaterFogMod</key>
22 <real>0.25</real>
23 <key>waterFogColor</key>
24 <array>
25 <real>0.015686275437474251</real>
26 <real>0.14901961386203766</real>
27 <real>0.25098040699958801</real>
28 <real>1</real>
29 </array>
30 <key>waterFogDensity</key>
31 <real>16</real>
32 <key>wave1Dir</key>
33 <array>
34 <real>1.0499997138977051</real>
35 <real>-0.42000007629394531</real>
36 </array>
37 <key>wave2Dir</key>
38 <array>
39 <real>1.1099996566772461</real>
40 <real>-1.1600000858306885</real>
41 </array>
42 </map>
43</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/water/Glassy.xml b/linden/indra/newview/app_settings/windlight/water/Glassy.xml
new file mode 100644
index 0000000..01183e4
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/water/Glassy.xml
@@ -0,0 +1,43 @@
1<llsd>
2 <map>
3 <key>blurMultiplier</key>
4 <real>0.003000000026077032089233398</real>
5 <key>fresnelOffset</key>
6 <real>0.579999983310699462890625</real>
7 <key>fresnelScale</key>
8 <real>0.0999999940395355224609375</real>
9 <key>normScale</key>
10 <array>
11 <integer>2</integer>
12 <integer>2</integer>
13 <integer>2</integer>
14 </array>
15 <key>normalMap</key>
16 <uuid>822ded49-9a6c-f61c-cb89-6df54f42cdf4</uuid>
17 <key>scaleAbove</key>
18 <real>0.07999999821186065673828125</real>
19 <key>scaleBelow</key>
20 <real>0.2000000029802322387695312</real>
21 <key>underWaterFogMod</key>
22 <real>0.25</real>
23 <key>waterFogColor</key>
24 <array>
25 <real>0.04999999701976776123046875</real>
26 <real>0.37999999523162841796875</real>
27 <real>0.5299999713897705078125</real>
28 <real>0.5299999713897705078125</real>
29 </array>
30 <key>waterFogDensity</key>
31 <real>1</real>
32 <key>wave1Dir</key>
33 <array>
34 <real>0.5</real>
35 <real>-0.1700000017881393432617188</real>
36 </array>
37 <key>wave2Dir</key>
38 <array>
39 <real>0.579999983310699462890625</real>
40 <real>-0.670000016689300537109375</real>
41 </array>
42 </map>
43</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/water/Murky.xml b/linden/indra/newview/app_settings/windlight/water/Murky.xml
new file mode 100644
index 0000000..1d9e022
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/water/Murky.xml
@@ -0,0 +1,43 @@
1<llsd>
2 <map>
3 <key>blurMultiplier</key>
4 <real>0.0030000000260770321</real>
5 <key>fresnelOffset</key>
6 <real>0.39999997615814209</real>
7 <key>fresnelScale</key>
8 <real>0.5</real>
9 <key>normScale</key>
10 <array>
11 <integer>2</integer>
12 <integer>2</integer>
13 <integer>2</integer>
14 </array>
15 <key>normalMap</key>
16 <uuid>822ded49-9a6c-f61c-cb89-6df54f42cdf4</uuid>
17 <key>scaleAbove</key>
18 <real>0.079999998211860657</real>
19 <key>scaleBelow</key>
20 <real>0.20000000298023224</real>
21 <key>underWaterFogMod</key>
22 <real>0.76999998092651367</real>
23 <key>waterFogColor</key>
24 <array>
25 <real>0.08999999612569809</real>
26 <real>0.17000000178813934</real>
27 <real>0.20999999344348907</real>
28 <real>0.20999999344348907</real>
29 </array>
30 <key>waterFogDensity</key>
31 <real>16</real>
32 <key>wave1Dir</key>
33 <array>
34 <real>0.5</real>
35 <real>-0.17000000178813934</real>
36 </array>
37 <key>wave2Dir</key>
38 <array>
39 <real>0.57999998331069946</real>
40 <real>-0.67000001668930054</real>
41 </array>
42 </map>
43</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/water/Pond.xml b/linden/indra/newview/app_settings/windlight/water/Pond.xml
new file mode 100644
index 0000000..59e3c44
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/water/Pond.xml
@@ -0,0 +1,43 @@
1<llsd>
2 <map>
3 <key>blurMultiplier</key>
4 <real>0.0030000000260770321</real>
5 <key>fresnelOffset</key>
6 <real>0.50999999046325684</real>
7 <key>fresnelScale</key>
8 <real>0.099999994039535522</real>
9 <key>normScale</key>
10 <array>
11 <integer>2</integer>
12 <integer>2</integer>
13 <integer>2</integer>
14 </array>
15 <key>normalMap</key>
16 <uuid>822ded49-9a6c-f61c-cb89-6df54f42cdf4</uuid>
17 <key>scaleAbove</key>
18 <real>0.079999998211860657</real>
19 <key>scaleBelow</key>
20 <real>0.20000000298023224</real>
21 <key>underWaterFogMod</key>
22 <real>0.25</real>
23 <key>waterFogColor</key>
24 <array>
25 <real>0.059999998658895493</real>
26 <real>0.37999999523162842</real>
27 <real>0.52999997138977051</real>
28 <real>0.52999997138977051</real>
29 </array>
30 <key>waterFogDensity</key>
31 <real>2.1000001430511475</real>
32 <key>wave1Dir</key>
33 <array>
34 <real>0.5</real>
35 <real>-0.17000000178813934</real>
36 </array>
37 <key>wave2Dir</key>
38 <array>
39 <real>0.57999998331069946</real>
40 <real>-0.67000001668930054</real>
41 </array>
42 </map>
43</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/water/SNAKE%21%21%21.xml b/linden/indra/newview/app_settings/windlight/water/SNAKE%21%21%21.xml
new file mode 100644
index 0000000..6dbc4e8
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/water/SNAKE%21%21%21.xml
@@ -0,0 +1,43 @@
1<llsd>
2 <map>
3 <key>blurMultiplier</key>
4 <real>0.0030000000260770321</real>
5 <key>fresnelOffset</key>
6 <real>0.57999998331069946</real>
7 <key>fresnelScale</key>
8 <real>0.099999994039535522</real>
9 <key>normScale</key>
10 <array>
11 <real>10</real>
12 <real>10</real>
13 <real>10</real>
14 </array>
15 <key>normalMap</key>
16 <uuid>470626e3-ac38-8554-d49b-90311c0176a9</uuid>
17 <key>scaleAbove</key>
18 <real>0.91999995708465576</real>
19 <key>scaleBelow</key>
20 <real>0.93999999761581421</real>
21 <key>underWaterFogMod</key>
22 <real>0.25</real>
23 <key>waterFogColor</key>
24 <array>
25 <real>0.049999997019767761</real>
26 <real>0.37999999523162842</real>
27 <real>0.52999997138977051</real>
28 <real>0.52999997138977051</real>
29 </array>
30 <key>waterFogDensity</key>
31 <real>3.2000000476837158</real>
32 <key>wave1Dir</key>
33 <array>
34 <real>0.5</real>
35 <real>-0.17000000178813934</real>
36 </array>
37 <key>wave2Dir</key>
38 <array>
39 <real>0.57999998331069946</real>
40 <real>-0.67000001668930054</real>
41 </array>
42 </map>
43</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/water/Second%20Plague.xml b/linden/indra/newview/app_settings/windlight/water/Second%20Plague.xml
new file mode 100644
index 0000000..137483a
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/water/Second%20Plague.xml
@@ -0,0 +1,43 @@
1<llsd>
2 <map>
3 <key>blurMultiplier</key>
4 <real>0.017000000923871994</real>
5 <key>fresnelOffset</key>
6 <real>0.37000000476837158</real>
7 <key>fresnelScale</key>
8 <real>0</real>
9 <key>normScale</key>
10 <array>
11 <integer>2</integer>
12 <integer>2</integer>
13 <integer>2</integer>
14 </array>
15 <key>normalMap</key>
16 <uuid>822ded49-9a6c-f61c-cb89-6df54f42cdf4</uuid>
17 <key>scaleAbove</key>
18 <real>0.079999998211860657</real>
19 <key>scaleBelow</key>
20 <real>0.20000000298023224</real>
21 <key>underWaterFogMod</key>
22 <real>0.85999995470046997</real>
23 <key>waterFogColor</key>
24 <array>
25 <real>0.48999997973442078</real>
26 <real>0</real>
27 <real>0</real>
28 <real>0.48999997973442078</real>
29 </array>
30 <key>waterFogDensity</key>
31 <real>20</real>
32 <key>wave1Dir</key>
33 <array>
34 <real>0.5</real>
35 <real>-0.17000000178813934</real>
36 </array>
37 <key>wave2Dir</key>
38 <array>
39 <real>0.57999998331069946</real>
40 <real>-0.67000001668930054</real>
41 </array>
42 </map>
43</llsd>
diff --git a/linden/indra/newview/app_settings/windlight/water/Valdez.xml b/linden/indra/newview/app_settings/windlight/water/Valdez.xml
new file mode 100644
index 0000000..eb70a14
--- /dev/null
+++ b/linden/indra/newview/app_settings/windlight/water/Valdez.xml
@@ -0,0 +1,43 @@
1<llsd>
2 <map>
3 <key>blurMultiplier</key>
4 <real>0.0020000000949949026</real>
5 <key>fresnelOffset</key>
6 <real>0.28999999165534973</real>
7 <key>fresnelScale</key>
8 <real>0</real>
9 <key>normScale</key>
10 <array>
11 <integer>2</integer>
12 <integer>2</integer>
13 <integer>2</integer>
14 </array>
15 <key>normalMap</key>
16 <uuid>822ded49-9a6c-f61c-cb89-6df54f42cdf4</uuid>
17 <key>scaleAbove</key>
18 <real>0.079999998211860657</real>
19 <key>scaleBelow</key>
20 <real>0.20000000298023224</real>
21 <key>underWaterFogMod</key>
22 <real>1</real>
23 <key>waterFogColor</key>
24 <array>
25 <real>0</real>
26 <real>0</real>
27 <real>0</real>
28 <real>0</real>
29 </array>
30 <key>waterFogDensity</key>
31 <real>1024</real>
32 <key>wave1Dir</key>
33 <array>
34 <real>0.5</real>
35 <real>-0.17000000178813934</real>
36 </array>
37 <key>wave2Dir</key>
38 <array>
39 <real>0.57999998331069946</real>
40 <real>-0.67000001668930054</real>
41 </array>
42 </map>
43</llsd>