1
0
Fork 0

Merge /u/fgarlin/flightgear/ branch next into next

https://sourceforge.net/p/flightgear/fgdata/merge-requests/158/
This commit is contained in:
James Turner 2019-11-05 08:51:54 +00:00
commit 7ba35793f6
246 changed files with 1365 additions and 79 deletions

View file

@ -10,13 +10,6 @@
<height>screen</height> <height>screen</height>
<format>rgba8</format> <format>rgba8</format>
</buffer> </buffer>
<buffer>
<name>depth</name>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<format>depth32f</format>
</buffer>
<buffer> <buffer>
<name>sun-shadowmap-atlas</name> <name>sun-shadowmap-atlas</name>
<type>2d</type> <type>2d</type>
@ -33,8 +26,6 @@
</buffer> </buffer>
<!-- Shadow mapping pre-passes --> <!-- Shadow mapping pre-passes -->
<pass include="csm.xml"> <pass include="csm.xml">
<name>csm0</name> <name>csm0</name>
@ -50,7 +41,7 @@
<pass include="csm.xml"> <pass include="csm.xml">
<name>csm1</name> <name>csm1</name>
<near-m>3.0</near-m> <near-m>3.0</near-m>
<far-m>30.0</far-m> <far-m>50.0</far-m>
<viewport> <viewport>
<x>0.5</x> <x>0.5</x>
<y>0.0</y> <y>0.0</y>
@ -60,8 +51,8 @@
</pass> </pass>
<pass include="csm.xml"> <pass include="csm.xml">
<name>csm2</name> <name>csm2</name>
<near-m>30.0</near-m> <near-m>50.0</near-m>
<far-m>300.0</far-m> <far-m>150.0</far-m>
<viewport> <viewport>
<x>0.0</x> <x>0.0</x>
<y>0.5</y> <y>0.5</y>
@ -71,8 +62,8 @@
</pass> </pass>
<pass include="csm.xml"> <pass include="csm.xml">
<name>csm3</name> <name>csm3</name>
<near-m>300.0</near-m> <near-m>150.0</near-m>
<far-m>3000.0</far-m> <far-m>1500.0</far-m>
<viewport> <viewport>
<x>0.5</x> <x>0.5</x>
<y>0.5</y> <y>0.5</y>
@ -105,14 +96,8 @@
<attachment> <attachment>
<buffer>color</buffer> <buffer>color</buffer>
<component>color0</component> <component>color0</component>
<!--
<multisample-samples>4</multisample-samples> <multisample-samples>4</multisample-samples>
<multisample-color-samples>4</multisample-color-samples> <multisample-color-samples>4</multisample-color-samples>
-->
</attachment>
<attachment>
<buffer>depth</buffer>
<component>depth</component>
</attachment> </attachment>
</pass> </pass>
@ -124,23 +109,4 @@
<unit>0</unit> <unit>0</unit>
</binding> </binding>
</pass> </pass>
<pass>
<name>depth-debug</name>
<type>quad</type>
<clear-mask>depth</clear-mask>
<geometry>
<left>0.8</left>
<bottom>0.0</bottom>
<width>0.2</width>
<height>0.2</height>
<scale>1.0</scale>
</geometry>
<binding>
<buffer>depth</buffer>
<unit>0</unit>
</binding>
</pass>
</PropertyList> </PropertyList>

View file

@ -7,12 +7,10 @@
<lighting>false</lighting> <lighting>false</lighting>
<color-mask type="vec4d">0 0 0 0</color-mask> <color-mask type="vec4d">0 0 0 0</color-mask>
<cull-face>back</cull-face> <cull-face>back</cull-face>
<!--
<program> <program>
<vertex-shader>Compositor/Shaders/shadow-pass.vert</vertex-shader> <vertex-shader>Shaders/Default/trivial.vert</vertex-shader>
<fragment-shader>Compositor/Shaders/shadow-pass.frag</fragment-shader> <fragment-shader>Shaders/Default/trivial.frag</fragment-shader>
</program> </program>
-->
</pass> </pass>
</technique> </technique>
</PropertyList> </PropertyList>

View file

@ -433,12 +433,14 @@
<program> <program>
<vertex-shader>Shaders/ALS/terrain-ultra.vert</vertex-shader> <vertex-shader>Shaders/ALS/terrain-ultra.vert</vertex-shader>
<vertex-shader>Shaders/ALS/filters.vert</vertex-shader> <vertex-shader>Shaders/ALS/filters.vert</vertex-shader>
<vertex-shader>Shaders/ALS/shadows-include.vert</vertex-shader>
<fragment-shader>Shaders/ALS/agriculture.frag</fragment-shader> <fragment-shader>Shaders/ALS/agriculture.frag</fragment-shader>
<fragment-shader>Shaders/ALS/cloud-shadowfunc.frag</fragment-shader> <fragment-shader>Shaders/ALS/cloud-shadowfunc.frag</fragment-shader>
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader> <fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader> <fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
<fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader> <fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader> <fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
</program> </program>
<uniform> <uniform>
<name>grain_strength</name> <name>grain_strength</name>
@ -1147,6 +1149,27 @@
<value>2</value> <value>2</value>
<!-- AMBIENT_AND_DIFFUSE --> <!-- AMBIENT_AND_DIFFUSE -->
</uniform> </uniform>
<!-- BEGIN shadows include -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>shadows_enabled</name>
<type>bool</type>
<value>
<use>shadows_enabled</use>
</value>
</uniform>
<uniform>
<name>sun_atlas_size</name>
<type>int</type>
<value>
<use>sun_atlas_size</use>
</value>
</uniform>
<!-- END shadows include -->
<depth> <depth>
<function>lequal</function> <function>lequal</function>
</depth> </depth>

View file

@ -198,12 +198,14 @@
<program> <program>
<vertex-shader>Shaders/ALS/terrain-ultra.vert</vertex-shader> <vertex-shader>Shaders/ALS/terrain-ultra.vert</vertex-shader>
<vertex-shader>Shaders/ALS/filters.vert</vertex-shader> <vertex-shader>Shaders/ALS/filters.vert</vertex-shader>
<vertex-shader>Shaders/ALS/shadows-include.vert</vertex-shader>
<fragment-shader>Shaders/ALS/airfield.frag</fragment-shader> <fragment-shader>Shaders/ALS/airfield.frag</fragment-shader>
<fragment-shader>Shaders/ALS/cloud-shadowfunc.frag</fragment-shader> <fragment-shader>Shaders/ALS/cloud-shadowfunc.frag</fragment-shader>
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader> <fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader> <fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
<fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader> <fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader> <fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
</program> </program>
<uniform> <uniform>
<name>visibility</name> <name>visibility</name>
@ -859,6 +861,27 @@
<value>2</value> <value>2</value>
<!-- AMBIENT_AND_DIFFUSE --> <!-- AMBIENT_AND_DIFFUSE -->
</uniform> </uniform>
<!-- BEGIN shadows include -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>shadows_enabled</name>
<type>bool</type>
<value>
<use>shadows_enabled</use>
</value>
</uniform>
<uniform>
<name>sun_atlas_size</name>
<type>int</type>
<value>
<use>sun_atlas_size</use>
</value>
</uniform>
<!-- END shadows include -->
<depth> <depth>
<function>lequal</function> <function>lequal</function>
<write-mask type="bool">false</write-mask> <write-mask type="bool">false</write-mask>

View file

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/chrome</name>
<parameters>
<texture n ="0">
<type>transparent</type>
</texture>
<chrome-light><use>/rendering/scene/chrome-light</use></chrome-light>
</parameters>
<technique n="9">
<pass>
<lighting>false</lighting>
<blend>
<active><use>blend/active</use></active>
<source><use>blend/source</use></source>
<destination><use>blend/destination</use></destination>
</blend>
<shade-model><use>shade-model</use></shade-model>
<cull-face><use>cull-face</use></cull-face>
<rendering-hint><use>rendering-hint</use></rendering-hint>
<texture-unit>
<unit>0</unit>
<type><use>texture[0]/type</use></type>
<image><use>texture[0]/image</use></image>
<filter><use>texture[0]/filter</use></filter>
<wrap-s><use>texture[0]/wrap-s</use></wrap-s>
<wrap-t><use>texture[0]/wrap-t</use></wrap-t>
<!--
<internal-format>
<use>texture[0]/internal-format</use>
</internal-format>
-->
<texenv-combine>
<combine-rgb>modulate</combine-rgb>
<source0-rgb>constant</source0-rgb>
<operand0-rgb>src-color</operand0-rgb>
<source1-rgb>texture1</source1-rgb>
<operand1-rgb>src-color</operand1-rgb>
<constant-color><use>chrome-light</use></constant-color>
</texenv-combine>
</texture-unit>
<texture-unit>
<unit>1</unit>
<image><use>chrome-texture</use></image>
<filter>linear-mipmap-linear</filter>
<wrap-s>repeat</wrap-s>
<wrap-t>repeat</wrap-t>
<texenv-combine>
<combine-rgb>interpolate</combine-rgb>
<source0-rgb>texture0</source0-rgb>
<operand0-rgb>src-color</operand0-rgb>
<source1-rgb>previous</source1-rgb>
<operand1-rgb>src-color</operand1-rgb>
<source2-rgb>texture0</source2-rgb>
<operand2-rgb>src-alpha</operand2-rgb>
<!-- Are these used for anything? -->
<combine-alpha>replace</combine-alpha>
<source0-alpha>texture1</source0-alpha>
<operand0-alpha>src-alpha</operand0-alpha>
</texenv-combine>
<texgen>
<mode>sphere-map</mode>
</texgen>
</texture-unit>
</pass>
</technique>
<technique n="19">
<scheme>als-lighting</scheme>
<pass>
<lighting>false</lighting>
<blend>
<active><use>blend/active</use></active>
<source><use>blend/source</use></source>
<destination><use>blend/destination</use></destination>
</blend>
<shade-model><use>shade-model</use></shade-model>
<cull-face><use>cull-face</use></cull-face>
<rendering-hint><use>rendering-hint</use></rendering-hint>
<texture-unit>
<unit>0</unit>
<type><use>texture[0]/type</use></type>
<image><use>texture[0]/image</use></image>
<filter><use>texture[0]/filter</use></filter>
<wrap-s><use>texture[0]/wrap-s</use></wrap-s>
<wrap-t><use>texture[0]/wrap-t</use></wrap-t>
<!--
<internal-format>
<use>texture[0]/internal-format</use>
</internal-format>
-->
<texenv-combine>
<combine-rgb>modulate</combine-rgb>
<source0-rgb>constant</source0-rgb>
<operand0-rgb>src-color</operand0-rgb>
<source1-rgb>texture1</source1-rgb>
<operand1-rgb>src-color</operand1-rgb>
<constant-color><use>chrome-light</use></constant-color>
</texenv-combine>
</texture-unit>
<texture-unit>
<unit>1</unit>
<image><use>chrome-texture</use></image>
<filter>linear-mipmap-linear</filter>
<wrap-s>repeat</wrap-s>
<wrap-t>repeat</wrap-t>
<texenv-combine>
<combine-rgb>interpolate</combine-rgb>
<source0-rgb>texture0</source0-rgb>
<operand0-rgb>src-color</operand0-rgb>
<source1-rgb>previous</source1-rgb>
<operand1-rgb>src-color</operand1-rgb>
<source2-rgb>texture0</source2-rgb>
<operand2-rgb>src-alpha</operand2-rgb>
<!-- Are these used for anything? -->
<combine-alpha>replace</combine-alpha>
<source0-alpha>texture1</source0-alpha>
<operand0-alpha>src-alpha</operand0-alpha>
</texenv-combine>
<texgen>
<mode>sphere-map</mode>
</texgen>
</texture-unit>
</pass>
</technique>
</PropertyList>

View file

@ -201,12 +201,14 @@
<program> <program>
<vertex-shader>Shaders/ALS/terrain-ultra.vert</vertex-shader> <vertex-shader>Shaders/ALS/terrain-ultra.vert</vertex-shader>
<vertex-shader>Shaders/ALS/filters.vert</vertex-shader> <vertex-shader>Shaders/ALS/filters.vert</vertex-shader>
<vertex-shader>Shaders/ALS/shadows-include.vert</vertex-shader>
<fragment-shader>Shaders/ALS/airfield.frag</fragment-shader> <fragment-shader>Shaders/ALS/airfield.frag</fragment-shader>
<fragment-shader>Shaders/ALS/cloud-shadowfunc.frag</fragment-shader> <fragment-shader>Shaders/ALS/cloud-shadowfunc.frag</fragment-shader>
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader> <fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader> <fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
<fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader> <fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader> <fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
</program> </program>
<uniform> <uniform>
<name>visibility</name> <name>visibility</name>
@ -862,6 +864,27 @@
<value>2</value> <value>2</value>
<!-- AMBIENT_AND_DIFFUSE --> <!-- AMBIENT_AND_DIFFUSE -->
</uniform> </uniform>
<!-- BEGIN shadows include -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>shadows_enabled</name>
<type>bool</type>
<value>
<use>shadows_enabled</use>
</value>
</uniform>
<uniform>
<name>sun_atlas_size</name>
<type>int</type>
<value>
<use>sun_atlas_size</use>
</value>
</uniform>
<!-- END shadows include -->
<depth> <depth>
<function>lequal</function> <function>lequal</function>
<write-mask type="bool">false</write-mask> <write-mask type="bool">false</write-mask>
@ -938,6 +961,7 @@
<fragment-shader n="0">Shaders/ALS/grass.frag</fragment-shader> <fragment-shader n="0">Shaders/ALS/grass.frag</fragment-shader>
<fragment-shader n="1">Shaders/ALS/noise.frag</fragment-shader> <fragment-shader n="1">Shaders/ALS/noise.frag</fragment-shader>
<fragment-shader n="2">Shaders/ALS/filters.frag</fragment-shader> <fragment-shader n="2">Shaders/ALS/filters.frag</fragment-shader>
<fragment-shader n="3">Shaders/ALS/shadows-include.frag</fragment-shader>
<geometry-vertices-out type="int">96</geometry-vertices-out> <geometry-vertices-out type="int">96</geometry-vertices-out>
<geometry-input-type>triangles</geometry-input-type> <geometry-input-type>triangles</geometry-input-type>
<geometry-output-type>triangle-strip</geometry-output-type> <geometry-output-type>triangle-strip</geometry-output-type>
@ -1123,6 +1147,27 @@
<use>wind_effects</use> <use>wind_effects</use>
</value> </value>
</uniform> </uniform>
<!-- BEGIN shadows include -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>shadows_enabled</name>
<type>bool</type>
<value>
<use>shadows_enabled</use>
</value>
</uniform>
<uniform>
<name>sun_atlas_size</name>
<type>int</type>
<value>
<use>sun_atlas_size</use>
</value>
</uniform>
<!-- END shadows include -->
<blend> <blend>
<active>true</active> <active>true</active>
<source>src-alpha</source> <source>src-alpha</source>

View file

@ -1081,12 +1081,14 @@ please see Docs/README.model-combined.eff for documentation
</vertex-program-two-side> </vertex-program-two-side>
<program> <program>
<vertex-shader n="0">Shaders/ALS/model-ultra.vert</vertex-shader> <vertex-shader n="0">Shaders/ALS/model-ultra.vert</vertex-shader>
<vertex-shader n="1">Shaders/ALS/shadows-include.vert</vertex-shader>
<fragment-shader n="0">Shaders/ALS/model-ultra.frag</fragment-shader> <fragment-shader n="0">Shaders/ALS/model-ultra.frag</fragment-shader>
<fragment-shader n="1">Shaders/ALS/cloud-shadowfunc.frag</fragment-shader> <fragment-shader n="1">Shaders/ALS/cloud-shadowfunc.frag</fragment-shader>
<fragment-shader n="2">Shaders/ALS/hazes.frag</fragment-shader> <fragment-shader n="2">Shaders/ALS/hazes.frag</fragment-shader>
<fragment-shader n="3">Shaders/ALS/secondary_lights.frag</fragment-shader> <fragment-shader n="3">Shaders/ALS/secondary_lights.frag</fragment-shader>
<fragment-shader n="4">Shaders/ALS/noise.frag</fragment-shader> <fragment-shader n="4">Shaders/ALS/noise.frag</fragment-shader>
<fragment-shader n="5">Shaders/ALS/filters.frag</fragment-shader> <fragment-shader n="5">Shaders/ALS/filters.frag</fragment-shader>
<fragment-shader n="6">Shaders/ALS/shadows-include.frag</fragment-shader>
</program> </program>
<uniform> <uniform>
<name>BaseTex</name> <name>BaseTex</name>
@ -1997,6 +1999,27 @@ please see Docs/README.model-combined.eff for documentation
<use>rembrandt</use> <use>rembrandt</use>
</value> </value>
</uniform> </uniform>
<!-- BEGIN shadows include -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>shadows_enabled</name>
<type>bool</type>
<value>
<use>shadows_enabled</use>
</value>
</uniform>
<uniform>
<name>sun_atlas_size</name>
<type>int</type>
<value>
<use>sun_atlas_size</use>
</value>
</uniform>
<!-- END shadows include -->
</pass> </pass>
</technique> </technique>
</PropertyList> </PropertyList>

View file

@ -125,6 +125,14 @@
<use>/sim/rendering/shaders/transition</use> <use>/sim/rendering/shaders/transition</use>
</tquality_level> </tquality_level>
<!-- END fog include --> <!-- END fog include -->
<!-- BEGIN shadows include -->
<shadows_enabled>
<use>/sim/rendering/als/shadows/enabled</use>
</shadows_enabled>
<sun_atlas_size>
<use>/sim/rendering/als/shadows/sun-atlas-size</use>
</sun_atlas_size>
<!-- END shadows include -->
</parameters> </parameters>
<technique n="8"> <technique n="8">
<predicate> <predicate>
@ -466,11 +474,13 @@
</vertex-program-two-side> </vertex-program-two-side>
<program> <program>
<vertex-shader>Shaders/ALS/generic-base.vert</vertex-shader> <vertex-shader>Shaders/ALS/generic-base.vert</vertex-shader>
<vertex-shader>Shaders/ALS/shadows-include.vert</vertex-shader>
<fragment-shader>Shaders/ALS/model-base.frag</fragment-shader> <fragment-shader>Shaders/ALS/model-base.frag</fragment-shader>
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader> <fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
<fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader> <fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader> <fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader> <fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
</program> </program>
<uniform> <uniform>
<name>visibility</name> <name>visibility</name>
@ -785,6 +795,27 @@
<use>tquality_level</use> <use>tquality_level</use>
</value> </value>
</uniform> </uniform>
<!-- BEGIN shadows include -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>shadows_enabled</name>
<type>bool</type>
<value>
<use>shadows_enabled</use>
</value>
</uniform>
<uniform>
<name>sun_atlas_size</name>
<type>int</type>
<value>
<use>sun_atlas_size</use>
</value>
</uniform>
<!-- END shadows include -->
</pass> </pass>
</technique> </technique>
</PropertyList> </PropertyList>

View file

@ -117,4 +117,81 @@
--> -->
</pass> </pass>
</technique> </technique>
<technique n="19">
<scheme>als-lighting</scheme>
<pass>
<lighting>true</lighting>
<depth>
<write-mask type="bool">false</write-mask>
</depth>
<material>
<active>
<use>material/active</use>
</active>
<ambient>
<use>material/ambient</use>
</ambient>
<diffuse>
<use>material/diffuse</use>
</diffuse>
<specular>
<use>material/specular</use>
</specular>
<emissive>
<use>material/emissive</use>
</emissive>
<shininess>
<use>material/shininess</use>
</shininess>
<color-mode>
<use>material/color-mode</use>
</color-mode>
</material>
<blend>
<active>
<use>blend/active</use>
</active>
<source>
<use>blend/source</use>
</source>
<destination>
<use>blend/destination</use>
</destination>
</blend>
<shade-model>
<use>shade-model</use>
</shade-model>
<cull-face>
<use>cull-face</use>
</cull-face>
<render-bin>
<bin-number>111</bin-number>
<bin-name>DepthSortedBin</bin-name>
</render-bin>
<texture-unit>
<unit>0</unit>
<active>
<use>texture[0]/active</use>
</active>
<type>
<use>texture[0]/type</use>
</type>
<image>
<use>texture[0]/image</use>
</image>
<filter>
<use>texture[0]/filter</use>
</filter>
<wrap-s>
<use>texture[0]/wrap-s</use>
</wrap-s>
<wrap-t>
<use>texture[0]/wrap-t</use>
</wrap-t>
<environment>
<mode>modulate</mode>
</environment>
</texture-unit>
</pass>
</technique>
</PropertyList> </PropertyList>

View file

@ -657,6 +657,7 @@
<program> <program>
<vertex-shader n="0">Shaders/ALS/terrain-ultra.vert</vertex-shader> <vertex-shader n="0">Shaders/ALS/terrain-ultra.vert</vertex-shader>
<vertex-shader n="1">Shaders/ALS/filters.vert</vertex-shader> <vertex-shader n="1">Shaders/ALS/filters.vert</vertex-shader>
<vertex-shader n="2">Shaders/ALS/shadows-include.vert</vertex-shader>
<fragment-shader n="0">Shaders/ALS/runway.frag</fragment-shader> <fragment-shader n="0">Shaders/ALS/runway.frag</fragment-shader>
<fragment-shader n="1">Shaders/ALS/cloud-shadowfunc.frag</fragment-shader> <fragment-shader n="1">Shaders/ALS/cloud-shadowfunc.frag</fragment-shader>
<fragment-shader n="2">Shaders/ALS/noise.frag</fragment-shader> <fragment-shader n="2">Shaders/ALS/noise.frag</fragment-shader>
@ -664,6 +665,7 @@
<fragment-shader n="4">Shaders/ALS/secondary_lights.frag</fragment-shader> <fragment-shader n="4">Shaders/ALS/secondary_lights.frag</fragment-shader>
<fragment-shader n="5">Shaders/ALS/filters.frag</fragment-shader> <fragment-shader n="5">Shaders/ALS/filters.frag</fragment-shader>
<fragment-shader n="6">Shaders/ALS/lightspot.frag</fragment-shader> <fragment-shader n="6">Shaders/ALS/lightspot.frag</fragment-shader>
<fragment-shader n="7">Shaders/ALS/shadows-include.frag</fragment-shader>
</program> </program>
<uniform> <uniform>
<name>visibility</name> <name>visibility</name>
@ -1552,6 +1554,27 @@
<value>2</value> <value>2</value>
<!-- AMBIENT_AND_DIFFUSE --> <!-- AMBIENT_AND_DIFFUSE -->
</uniform> </uniform>
<!-- BEGIN shadows include -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>shadows_enabled</name>
<type>bool</type>
<value>
<use>shadows_enabled</use>
</value>
</uniform>
<uniform>
<name>sun_atlas_size</name>
<type>int</type>
<value>
<use>sun_atlas_size</use>
</value>
</uniform>
<!-- END shadows include -->
<!--<depth> <!--<depth>
<function>lequal</function> <function>lequal</function>
<write-mask type="bool">false</write-mask> <write-mask type="bool">false</write-mask>

View file

@ -355,6 +355,14 @@
<cloud_shadow_flag> <cloud_shadow_flag>
<use>/local-weather/cloud-shadows/cloud-shadow-flag</use> <use>/local-weather/cloud-shadows/cloud-shadow-flag</use>
</cloud_shadow_flag> </cloud_shadow_flag>
<!-- BEGIN shadows include -->
<shadows_enabled>
<use>/sim/rendering/als/shadows/enabled</use>
</shadows_enabled>
<sun_atlas_size>
<use>/sim/rendering/als/shadows/sun-atlas-size</use>
</sun_atlas_size>
<!-- END shadows include -->
</parameters> </parameters>
<!-- put techniques at a "high" index to allow derived effects to <!-- put techniques at a "high" index to allow derived effects to
insert their own techniques first. --> insert their own techniques first. -->
@ -820,12 +828,14 @@
<program> <program>
<vertex-shader>Shaders/ALS/terrain-ultra.vert</vertex-shader> <vertex-shader>Shaders/ALS/terrain-ultra.vert</vertex-shader>
<vertex-shader>Shaders/ALS/filters.vert</vertex-shader> <vertex-shader>Shaders/ALS/filters.vert</vertex-shader>
<vertex-shader>Shaders/ALS/shadows-include.vert</vertex-shader>
<fragment-shader>Shaders/ALS/terrain-ultra.frag</fragment-shader> <fragment-shader>Shaders/ALS/terrain-ultra.frag</fragment-shader>
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader> <fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
<fragment-shader>Shaders/ALS/cloud-shadowfunc.frag</fragment-shader> <fragment-shader>Shaders/ALS/cloud-shadowfunc.frag</fragment-shader>
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader> <fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
<fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader> <fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader> <fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
</program> </program>
<uniform> <uniform>
<name>grain_strength</name> <name>grain_strength</name>
@ -1517,6 +1527,27 @@
<value>2</value> <value>2</value>
<!-- AMBIENT_AND_DIFFUSE --> <!-- AMBIENT_AND_DIFFUSE -->
</uniform> </uniform>
<!-- BEGIN shadows include -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>shadows_enabled</name>
<type>bool</type>
<value>
<use>shadows_enabled</use>
</value>
</uniform>
<uniform>
<name>sun_atlas_size</name>
<type>int</type>
<value>
<use>sun_atlas_size</use>
</value>
</uniform>
<!-- END shadows include -->
<depth> <depth>
<function>lequal</function> <function>lequal</function>
<!-- <write-mask type="bool">false</write-mask> --> <!-- <write-mask type="bool">false</write-mask> -->
@ -1677,10 +1708,12 @@
<program> <program>
<vertex-shader>Shaders/ALS/terrain-detailed.vert</vertex-shader> <vertex-shader>Shaders/ALS/terrain-detailed.vert</vertex-shader>
<vertex-shader>Shaders/ALS/filters.vert</vertex-shader> <vertex-shader>Shaders/ALS/filters.vert</vertex-shader>
<vertex-shader>Shaders/ALS/shadows-include.vert</vertex-shader>
<fragment-shader>Shaders/ALS/terrain-detailed.frag</fragment-shader> <fragment-shader>Shaders/ALS/terrain-detailed.frag</fragment-shader>
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader> <fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader> <fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader> <fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
</program> </program>
<uniform> <uniform>
<name>visibility</name> <name>visibility</name>
@ -1935,6 +1968,27 @@
<value>2</value> <value>2</value>
<!-- AMBIENT_AND_DIFFUSE --> <!-- AMBIENT_AND_DIFFUSE -->
</uniform> </uniform>
<!-- BEGIN shadows include -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>shadows_enabled</name>
<type>bool</type>
<value>
<use>shadows_enabled</use>
</value>
</uniform>
<uniform>
<name>sun_atlas_size</name>
<type>int</type>
<value>
<use>sun_atlas_size</use>
</value>
</uniform>
<!-- END shadows include -->
<depth> <depth>
<function>lequal</function> <function>lequal</function>
<!--><write-mask type="bool">false</write-mask> --> <!--><write-mask type="bool">false</write-mask> -->
@ -2055,10 +2109,12 @@
</texture-unit> </texture-unit>
<program> <program>
<vertex-shader>Shaders/ALS/generic-base.vert</vertex-shader> <vertex-shader>Shaders/ALS/generic-base.vert</vertex-shader>
<vertex-shader>Shaders/ALS/shadows-include.vert</vertex-shader>
<fragment-shader>Shaders/ALS/terrain-base.frag</fragment-shader> <fragment-shader>Shaders/ALS/terrain-base.frag</fragment-shader>
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader> <fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader> <fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader> <fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
</program> </program>
<uniform> <uniform>
<name>visibility</name> <name>visibility</name>
@ -2226,6 +2282,27 @@
<value>2</value> <value>2</value>
<!-- AMBIENT_AND_DIFFUSE --> <!-- AMBIENT_AND_DIFFUSE -->
</uniform> </uniform>
<!-- BEGIN shadows include -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>shadows_enabled</name>
<type>bool</type>
<value>
<use>shadows_enabled</use>
</value>
</uniform>
<uniform>
<name>sun_atlas_size</name>
<type>int</type>
<value>
<use>sun_atlas_size</use>
</value>
</uniform>
<!-- END shadows include -->
<depth> <depth>
<function>lequal</function> <function>lequal</function>
<!-- <write-mask type="bool">false</write-mask> --> <!-- <write-mask type="bool">false</write-mask> -->

View file

@ -92,6 +92,8 @@ vec3 searchlight();
vec3 landing_light(in float offset, in float offsetv); vec3 landing_light(in float offset, in float offsetv);
vec3 filter_combined (in vec3 color) ; vec3 filter_combined (in vec3 color) ;
float getShadowing();
// a fade function for procedural scales which are smaller than a pixel // a fade function for procedural scales which are smaller than a pixel
@ -417,13 +419,15 @@ if ((dist < 5000.0)&& (quality_level > 3) && (combined_wetness>0.0))
NdotL = NdotL + 0.05 * noisegrad_1m * detail_fade(1.0, view_angle,dist); NdotL = NdotL + 0.05 * noisegrad_1m * detail_fade(1.0, view_angle,dist);
if (NdotL > 0.0) { if (NdotL > 0.0) {
float shadowmap = getShadowing();
if (cloud_shadow_flag == 1) {NdotL = NdotL * shadow_func(relPos.x, relPos.y, 0.3 * noise_250m + 0.5 * noise_500m+0.2 * noise_1500m, dist);} if (cloud_shadow_flag == 1) {NdotL = NdotL * shadow_func(relPos.x, relPos.y, 0.3 * noise_250m + 0.5 * noise_500m+0.2 * noise_1500m, dist);}
color += diffuse_term * NdotL; color += diffuse_term * NdotL * shadowmap;
NdotHV = max(dot(n, halfVector), 0.0); NdotHV = max(dot(n, halfVector), 0.0);
if (gl_FrontMaterial.shininess > 0.0) if (gl_FrontMaterial.shininess > 0.0)
specular.rgb = ((gl_FrontMaterial.specular.rgb * 0.1 + (water_factor * vec3 (1.0, 1.0, 1.0))) specular.rgb = ((gl_FrontMaterial.specular.rgb * 0.1 + (water_factor * vec3 (1.0, 1.0, 1.0)))
* light_specular.rgb * light_specular.rgb
* pow(NdotHV, gl_FrontMaterial.shininess + (20.0 * water_factor))); * pow(NdotHV, gl_FrontMaterial.shininess + (20.0 * water_factor))
* shadowmap);
} }
color.a = 1.0;//diffuse_term.a; color.a = 1.0;//diffuse_term.a;
// This shouldn't be necessary, but our lighting becomes very // This shouldn't be necessary, but our lighting becomes very

View file

@ -78,6 +78,8 @@ vec3 searchlight();
vec3 landing_light(in float offset, in float offsetv); vec3 landing_light(in float offset, in float offsetv);
vec3 filter_combined (in vec3 color) ; vec3 filter_combined (in vec3 color) ;
float getShadowing();
float detail_fade (in float scale, in float angle, in float dist) float detail_fade (in float scale, in float angle, in float dist)
{ {
@ -282,9 +284,10 @@ if (quality_level > 3)
} }
if (NdotL > 0.0) { if (NdotL > 0.0) {
float shadowmap = getShadowing();
if (cloud_shadow_flag == 1) if (cloud_shadow_flag == 1)
{NdotL = NdotL * shadow_func(relPos.x, relPos.y, noise_1500m, dist);} {NdotL = NdotL * shadow_func(relPos.x, relPos.y, noise_1500m, dist);}
color += diffuse_term * NdotL; color += diffuse_term * NdotL * shadowmap;
@ -294,7 +297,8 @@ if (quality_level > 3)
if (gl_FrontMaterial.shininess > 0.0) if (gl_FrontMaterial.shininess > 0.0)
specular.rgb = ((gl_FrontMaterial.specular.rgb + (water_factor * vec3 (1.0, 1.0, 1.0))) specular.rgb = ((gl_FrontMaterial.specular.rgb + (water_factor * vec3 (1.0, 1.0, 1.0)))
* light_specular.rgb * light_specular.rgb
* pow(NdotHV, (gl_FrontMaterial.shininess + 20.0 * water_factor))); * pow(NdotHV, (gl_FrontMaterial.shininess + 20.0 * water_factor))
* shadowmap);
} }
color.a = 1.0; color.a = 1.0;
// This shouldn't be necessary, but our lighting becomes very // This shouldn't be necessary, but our lighting becomes very

View file

@ -37,6 +37,8 @@ uniform float ground_scattering;
uniform float moonlight; uniform float moonlight;
void setupShadows(vec4 eyeSpacePos);
// This is the value used in the skydome scattering shader - use the same here for consistency? // This is the value used in the skydome scattering shader - use the same here for consistency?
const float EarthRadius = 5800000.0; const float EarthRadius = 5800000.0;
const float terminator_width = 200000.0; const float terminator_width = 200000.0;
@ -239,6 +241,7 @@ else // the faster, full-day version without lightfields
gl_FrontColor.rgb = constant_term.rgb; gl_FrontColor.a = 1.0; gl_FrontColor.rgb = constant_term.rgb; gl_FrontColor.a = 1.0;
gl_BackColor.rgb = constant_term.rgb; gl_BackColor.a = 0.0; gl_BackColor.rgb = constant_term.rgb; gl_BackColor.a = 0.0;
setupShadows(gl_ModelViewMatrix * gl_Vertex);
} }

View file

@ -37,6 +37,8 @@ float rand2D(in vec2 co);
float Noise2D(in vec2 co, in float wavelength); float Noise2D(in vec2 co, in float wavelength);
vec3 filter_combined (in vec3 color) ; vec3 filter_combined (in vec3 color) ;
float getShadowing();
float map(float s, float a1, float a2, float b1, float b2) float map(float s, float a1, float a2, float b1, float b2)
{ {
@ -153,7 +155,7 @@ void main()
texel.r = min(1.0, (1.0 + 2.5 * 0.1 * season) * texel.r); texel.r = min(1.0, (1.0 + 2.5 * 0.1 * season) * texel.r);
texel.g = texel.g; texel.g = texel.g;
texel.b = max(0.0, (1.0 - 4.0 * 0.1 * season) * texel.b); texel.b = max(0.0, (1.0 - 4.0 * 0.1 * season) * texel.b);
float intensity = length(texel.rgb) * (1.0 - 0.5 * smoothstep(1.1,2.0,season)); float intensity = length(texel.rgb) * (1.0 - 0.5 * smoothstep(1.1,2.0,season)) * mix(0.3, 1.0, getShadowing());
texel.rgb = intensity * normalize(mix(texel.rgb, vec3(0.23,0.17,0.08), smoothstep(1.1,2.0, season))); texel.rgb = intensity * normalize(mix(texel.rgb, vec3(0.23,0.17,0.08), smoothstep(1.1,2.0, season)));
float base_alpha = clamp(0.4 * max_height/0.3, 0.4, 1.0); float base_alpha = clamp(0.4 * max_height/0.3, 0.4, 1.0);

View file

@ -15,6 +15,18 @@ varying out float g_distance_to_eye;
varying out float g_layer; varying out float g_layer;
uniform mat4 fg_LightMatrix_csm0;
uniform mat4 fg_LightMatrix_csm1;
uniform mat4 fg_LightMatrix_csm2;
uniform mat4 fg_LightMatrix_csm3;
varying out vec4 lightSpacePos[4];
void setupShadows(vec4 eyeSpacePos)
{
lightSpacePos[0] = fg_LightMatrix_csm0 * eyeSpacePos;
lightSpacePos[1] = fg_LightMatrix_csm1 * eyeSpacePos;
lightSpacePos[2] = fg_LightMatrix_csm2 * eyeSpacePos;
lightSpacePos[3] = fg_LightMatrix_csm3 * eyeSpacePos;
}
float min3(in float a, in float b, in float c) float min3(in float a, in float b, in float c)
{ {
@ -45,6 +57,8 @@ void main()
g_distance_to_eye = distances[i]; g_distance_to_eye = distances[i];
g_layer = currDeltaLayer; g_layer = currDeltaLayer;
setupShadows(gl_ModelViewMatrix * pos);
gl_Position = gl_ModelViewProjectionMatrix * pos; gl_Position = gl_ModelViewProjectionMatrix * pos;
gl_TexCoord[0] = gl_TexCoordIn[i][0]; gl_TexCoord[0] = gl_TexCoordIn[i][0];
EmitVertex(); EmitVertex();

View file

@ -56,6 +56,8 @@ vec3 searchlight();
vec3 landing_light(in float offset, in float offsetv); vec3 landing_light(in float offset, in float offsetv);
vec3 filter_combined (in vec3 color) ; vec3 filter_combined (in vec3 color) ;
float getShadowing();
float luminance(vec3 color) float luminance(vec3 color)
{ {
return dot(vec3(0.212671, 0.715160, 0.072169), color); return dot(vec3(0.212671, 0.715160, 0.072169), color);
@ -107,12 +109,14 @@ void main()
NdotL = dot(n, lightDir); NdotL = dot(n, lightDir);
if (NdotL > 0.0) { if (NdotL > 0.0) {
color += diffuse_term * NdotL; float shadowmap = getShadowing();
color += diffuse_term * NdotL * shadowmap;
NdotHV = max(dot(n, halfVector), 0.0); NdotHV = max(dot(n, halfVector), 0.0);
if (gl_FrontMaterial.shininess > 0.0) if (gl_FrontMaterial.shininess > 0.0)
specular.rgb = (gl_FrontMaterial.specular.rgb specular.rgb = (gl_FrontMaterial.specular.rgb
* light_specular.rgb * light_specular.rgb
* pow(NdotHV, gl_FrontMaterial.shininess)); * pow(NdotHV, gl_FrontMaterial.shininess)
* shadowmap);
} }
color.a = diffuse_term.a; color.a = diffuse_term.a;
// This shouldn't be necessary, but our lighting becomes very // This shouldn't be necessary, but our lighting becomes very

View file

@ -119,6 +119,8 @@ vec3 filter_combined (in vec3 color) ;
vec3 moonlight_perception (in vec3 light) ; vec3 moonlight_perception (in vec3 light) ;
vec3 addLights(in vec3 color1, in vec3 color2); vec3 addLights(in vec3 color1, in vec3 color2);
float getShadowing();
float light_func (in float x, in float a, in float b, in float c, in float d, in float e) float light_func (in float x, in float a, in float b, in float c, in float d, in float e)
{ {
@ -340,6 +342,8 @@ void main (void)
{pf1 = pow(nDotHV1, 0.5*gl_FrontMaterial.shininess);} {pf1 = pow(nDotHV1, 0.5*gl_FrontMaterial.shininess);}
float shadowmap = getShadowing();
light_diffuse *= shadowmap;
if (cloud_shadow_flag == 1) if (cloud_shadow_flag == 1)
{ {
@ -387,6 +391,7 @@ void main (void)
Specular+= gl_FrontMaterial.specular * pow(max(0.0,-dot(N,normalize(vertVec))),gl_FrontMaterial.shininess) * vec4(secondary_light,1.0); Specular+= gl_FrontMaterial.specular * pow(max(0.0,-dot(N,normalize(vertVec))),gl_FrontMaterial.shininess) * vec4(secondary_light,1.0);
Specular *= refl_d; Specular *= refl_d;
Specular *= shadowmap;
vec4 color = gl_Color + Diffuse * gl_FrontMaterial.diffuse; vec4 color = gl_Color + Diffuse * gl_FrontMaterial.diffuse;
color = clamp( color, 0.0, 1.0 ); color = clamp( color, 0.0, 1.0 );

View file

@ -28,6 +28,8 @@ uniform int shader_qual;
// void fog_Func(int type); // void fog_Func(int type);
//////////////////////////// ////////////////////////////
void setupShadows(vec4 eyeSpacePos);
void rotationMatrixPR(in float sinRx, in float cosRx, in float sinRy, in float cosRy, out mat4 rotmat) void rotationMatrixPR(in float sinRx, in float cosRx, in float sinRy, in float cosRy, out mat4 rotmat)
{ {
rotmat = mat4( cosRy , sinRx * sinRy , cosRx * sinRy, 0.0, rotmat = mat4( cosRy , sinRx * sinRy , cosRx * sinRy, 0.0,
@ -112,4 +114,6 @@ void main(void)
gl_Position = ftransform(); gl_Position = ftransform();
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
setupShadows(ecPosition);
} }

View file

@ -73,6 +73,8 @@ vec3 rayleigh_out_shift(in vec3 color, in float outscatter);
vec3 get_hazeColor(in float light_arg); vec3 get_hazeColor(in float light_arg);
vec3 filter_combined (in vec3 color) ; vec3 filter_combined (in vec3 color) ;
float getShadowing();
void main() void main()
{ {
@ -286,14 +288,16 @@ if ((dist < 5000.0)&& (quality_level > 3) && (wetness>0.0))
} }
if (NdotL > 0.0) if (NdotL > 0.0)
{ {
float shadowmap = getShadowing();
if (cloud_shadow_flag == 1) if (cloud_shadow_flag == 1)
{NdotL = NdotL * shadow_func(relPos.x, relPos.y, 1.0, dist);} {NdotL = NdotL * shadow_func(relPos.x, relPos.y, 1.0, dist);}
color += diffuse_term * NdotL; color += diffuse_term * NdotL * shadowmap;
NdotHV = max(dot(n, halfVector), 0.0); NdotHV = max(dot(n, halfVector), 0.0);
fresnel = 1.0 + 5.0 * (1.0-smoothstep(0.0,0.2, dot(E,n))); fresnel = 1.0 + 5.0 * (1.0-smoothstep(0.0,0.2, dot(E,n)));
specular.rgb = ((vec3 (0.2,0.2,0.2) * fresnel + (water_factor * vec3 (1.0, 1.0, 1.0))) specular.rgb = ((vec3 (0.2,0.2,0.2) * fresnel + (water_factor * vec3 (1.0, 1.0, 1.0)))
* light_specular.rgb * light_specular.rgb
* pow(NdotHV, max(4.0, (20.0 * water_factor)))); * pow(NdotHV, max(4.0, (20.0 * water_factor)))
* shadowmap);
} }
// raindrops // raindrops

View file

@ -0,0 +1,120 @@
#version 120
uniform sampler2DShadow shadow_tex;
uniform bool shadows_enabled;
uniform int sun_atlas_size;
varying vec4 lightSpacePos[4];
const float depth_bias = 0.0005;
// Ideally these should be passed as an uniform, but we don't support uniform
// arrays yet
const vec2 uv_shifts[4] = vec2[4](
vec2(0.0, 0.0), vec2(0.5, 0.0),
vec2(0.0, 0.5), vec2(0.5, 0.5));
const vec2 uv_factor = vec2(0.5, 0.5);
float checkWithinBounds(vec2 coords, vec2 bottomLeft, vec2 topRight)
{
vec2 r = step(bottomLeft, coords) - step(topRight, coords);
return r.x * r.y;
}
float sampleOffset(vec4 pos, vec2 offset, vec2 invTexelSize)
{
return shadow2DProj(
shadow_tex, vec4(
pos.xy + offset * invTexelSize * pos.w,
pos.z - depth_bias,
pos.w)).r;
}
// OptimizedPCF from https://github.com/TheRealMJP/Shadows
// Original by Ignacio Castaño for The Witness
// Released under The MIT License
float sampleOptimizedPCF(vec4 pos)
{
vec2 invTexelSize = vec2(1.0 / float(sun_atlas_size));
vec2 uv = pos.xy * sun_atlas_size;
vec2 base_uv = floor(uv + 0.5);
float s = (uv.x + 0.5 - base_uv.x);
float t = (uv.y + 0.5 - base_uv.y);
base_uv -= vec2(0.5);
base_uv *= invTexelSize;
pos.xy = base_uv.xy;
float sum = 0.0;
float uw0 = (4.0 - 3.0 * s);
float uw1 = 7.0;
float uw2 = (1.0 + 3.0 * s);
float u0 = (3.0 - 2.0 * s) / uw0 - 2.0;
float u1 = (3.0 + s) / uw1;
float u2 = s / uw2 + 2.0;
float vw0 = (4.0 - 3.0 * t);
float vw1 = 7.0;
float vw2 = (1.0 + 3.0 * t);
float v0 = (3.0 - 2.0 * t) / vw0 - 2.0;
float v1 = (3.0 + t) / vw1;
float v2 = t / vw2 + 2.0;
sum += uw0 * vw0 * sampleOffset(pos, vec2(u0, v0), invTexelSize);
sum += uw1 * vw0 * sampleOffset(pos, vec2(u1, v0), invTexelSize);
sum += uw2 * vw0 * sampleOffset(pos, vec2(u2, v0), invTexelSize);
sum += uw0 * vw1 * sampleOffset(pos, vec2(u0, v1), invTexelSize);
sum += uw1 * vw1 * sampleOffset(pos, vec2(u1, v1), invTexelSize);
sum += uw2 * vw1 * sampleOffset(pos, vec2(u2, v1), invTexelSize);
sum += uw0 * vw2 * sampleOffset(pos, vec2(u0, v2), invTexelSize);
sum += uw1 * vw2 * sampleOffset(pos, vec2(u1, v2), invTexelSize);
sum += uw2 * vw2 * sampleOffset(pos, vec2(u2, v2), invTexelSize);
return sum / 144.0;
}
float sampleShadowMap(int n)
{
float s = 1.0;
if (n < 4) {
vec4 pos = lightSpacePos[n];
pos.xy *= uv_factor;
pos.xy += uv_shifts[n];
s = sampleOptimizedPCF(pos);
}
return s;
}
// Get a value between 0.0 and 1.0 where 0.0 means shadowed and 1.0 means lit
float getShadowing()
{
if (!shadows_enabled)
return 1.0;
const float band_size = 0.2;
const vec2 bandBottomLeft = vec2(band_size);
const vec2 bandTopRight = vec2(1.0 - band_size);
for (int i = 0; i < 4; ++i) {
if (checkWithinBounds(lightSpacePos[i].xy, vec2(0.0), vec2(1.0)) > 0.0 &&
(lightSpacePos[i].z / lightSpacePos[i].w) <= 1.0) {
if (checkWithinBounds(lightSpacePos[i].xy, bandBottomLeft, bandTopRight) < 1.0) {
vec2 s =
smoothstep(vec2(0.0), bandBottomLeft, lightSpacePos[i].xy) -
smoothstep(bandTopRight, vec2(1.0), lightSpacePos[i].xy);
float blend = 1.0 - s.x * s.y;
return mix(sampleShadowMap(i), sampleShadowMap(i+1), blend);
}
return sampleShadowMap(i);
}
}
return 1.0;
}

View file

@ -0,0 +1,38 @@
#version 120
uniform mat4 fg_LightMatrix_csm0;
uniform mat4 fg_LightMatrix_csm1;
uniform mat4 fg_LightMatrix_csm2;
uniform mat4 fg_LightMatrix_csm3;
varying vec4 lightSpacePos[4];
void setupShadows(vec4 eyeSpacePos)
{
float normalOffset = 0.005;
float costheta = clamp(dot(gl_Normal, gl_LightSource[0].position.xyz), 0.0, 1.0);
float slopeScale = 1.0 - costheta;
normalOffset *= slopeScale;
vec4 offsetPos = gl_ModelViewMatrix *
(gl_Vertex + vec4(gl_Normal, 0.0) * normalOffset);
vec4 offsets[4];
offsets[0] = fg_LightMatrix_csm0 * offsetPos;
offsets[1] = fg_LightMatrix_csm1 * offsetPos;
offsets[2] = fg_LightMatrix_csm2 * offsetPos;
offsets[3] = fg_LightMatrix_csm3 * offsetPos;
lightSpacePos[0] = fg_LightMatrix_csm0 * eyeSpacePos;
lightSpacePos[1] = fg_LightMatrix_csm1 * eyeSpacePos;
lightSpacePos[2] = fg_LightMatrix_csm2 * eyeSpacePos;
lightSpacePos[3] = fg_LightMatrix_csm3 * eyeSpacePos;
// Offset only in UV space
lightSpacePos[0].xy = offsets[0].xy;
lightSpacePos[1].xy = offsets[1].xy;
lightSpacePos[2].xy = offsets[2].xy;
lightSpacePos[3].xy = offsets[3].xy;
}

View file

@ -35,6 +35,8 @@ float fog_func (in float targ, in float alt);
vec3 get_hazeColor(in float light_arg); vec3 get_hazeColor(in float light_arg);
vec3 filter_combined (in vec3 color) ; vec3 filter_combined (in vec3 color) ;
float getShadowing();
float luminance(vec3 color) float luminance(vec3 color)
{ {
return dot(vec3(0.212671, 0.715160, 0.072169), color); return dot(vec3(0.212671, 0.715160, 0.072169), color);
@ -69,12 +71,14 @@ void main()
NdotL = dot(n, lightDir); NdotL = dot(n, lightDir);
if (NdotL > 0.0) { if (NdotL > 0.0) {
color += diffuse_term * NdotL; float shadowmap = getShadowing();
color += diffuse_term * NdotL * shadowmap;
NdotHV = max(dot(n, halfVector), 0.0); NdotHV = max(dot(n, halfVector), 0.0);
if (gl_FrontMaterial.shininess > 0.0) if (gl_FrontMaterial.shininess > 0.0)
specular.rgb = (gl_FrontMaterial.specular.rgb specular.rgb = (gl_FrontMaterial.specular.rgb
* light_specular.rgb * light_specular.rgb
* pow(NdotHV, gl_FrontMaterial.shininess)); * pow(NdotHV, gl_FrontMaterial.shininess)
* shadowmap);
} }
color.a = diffuse_term.a; color.a = diffuse_term.a;
// This shouldn't be necessary, but our lighting becomes very // This shouldn't be necessary, but our lighting becomes very

View file

@ -56,6 +56,7 @@ float fog_func (in float targ, in float alt);
vec3 get_hazeColor(in float light_arg); vec3 get_hazeColor(in float light_arg);
vec3 filter_combined (in vec3 color) ; vec3 filter_combined (in vec3 color) ;
float getShadowing();
@ -305,12 +306,14 @@ if ((dist < 5000.0)&& (quality_level > 3) && (wetness>0.0))
NdotL = NdotL + 1.0 * (noisegrad_10m + 0.5* noisegrad_5m) * mix_factor/0.8 * (1.0 - smoothstep(1000.0, 2000.0, dist)); NdotL = NdotL + 1.0 * (noisegrad_10m + 0.5* noisegrad_5m) * mix_factor/0.8 * (1.0 - smoothstep(1000.0, 2000.0, dist));
} }
if (NdotL > 0.0) { if (NdotL > 0.0) {
color += diffuse_term * NdotL; float shadowmap = getShadowing();
color += diffuse_term * NdotL * shadowmap;
NdotHV = max(dot(n, halfVector), 0.0); NdotHV = max(dot(n, halfVector), 0.0);
if (gl_FrontMaterial.shininess > 0.0) if (gl_FrontMaterial.shininess > 0.0)
specular.rgb = ((gl_FrontMaterial.specular.rgb * 0.1 + (water_factor * vec3 (1.0, 1.0, 1.0))) specular.rgb = ((gl_FrontMaterial.specular.rgb * 0.1 + (water_factor * vec3 (1.0, 1.0, 1.0)))
* light_specular.rgb * light_specular.rgb
* pow(NdotHV, gl_FrontMaterial.shininess + (20.0 * water_factor))); * pow(NdotHV, gl_FrontMaterial.shininess + (20.0 * water_factor))
* shadowmap);
} }
color.a = 1.0;//diffuse_term.a; color.a = 1.0;//diffuse_term.a;
// This shouldn't be necessary, but our lighting becomes very // This shouldn't be necessary, but our lighting becomes very

View file

@ -55,6 +55,7 @@ const float EarthRadius = 5800000.0;
const float terminator_width = 200000.0; const float terminator_width = 200000.0;
vec3 moonlight_perception (in vec3 light); vec3 moonlight_perception (in vec3 light);
void setupShadows(vec4 eyeSpacePos);
float light_func (in float x, in float a, in float b, in float c, in float d, in float e) float light_func (in float x, in float a, in float b, in float c, in float d, in float e)
{ {
@ -84,7 +85,8 @@ void main()
float scattering; float scattering;
rawPos = gl_Vertex.xy; rawPos = gl_Vertex.xy;
worldPos = (osg_ViewMatrixInverse *gl_ModelViewMatrix * gl_Vertex).xyz; vec4 eyePos = gl_ModelViewMatrix * gl_Vertex;
worldPos = (osg_ViewMatrixInverse * eyePos).xyz;
steepness = dot(normalize(gl_Normal), vec3 (0.0, 0.0, 1.0)); steepness = dot(normalize(gl_Normal), vec3 (0.0, 0.0, 1.0));
@ -299,6 +301,7 @@ if (use_IR_vision)
gl_BackColor.a = mie_angle; gl_BackColor.a = mie_angle;
} }
setupShadows(eyePos);
} }

View file

@ -88,6 +88,7 @@ vec3 searchlight();
vec3 landing_light(in float offset, in float offsetv); vec3 landing_light(in float offset, in float offsetv);
vec3 filter_combined (in vec3 color) ; vec3 filter_combined (in vec3 color) ;
float getShadowing();
// a fade function for procedural scales which are smaller than a pixel // a fade function for procedural scales which are smaller than a pixel
@ -442,13 +443,15 @@ if ((dist < 5000.0) && (combined_wetness>0.0))
NdotL = NdotL + (1.0-snow_mix_factor) * 0.3* dot_texel.a * (0.5* dotnoisegrad_10m * detail_fade(1.0 * dot_size, view_angle, dist) +0.5 * dotnoisegrad_10m * noise_01m * detail_fade(0.1, view_angle, dist)) ; NdotL = NdotL + (1.0-snow_mix_factor) * 0.3* dot_texel.a * (0.5* dotnoisegrad_10m * detail_fade(1.0 * dot_size, view_angle, dist) +0.5 * dotnoisegrad_10m * noise_01m * detail_fade(0.1, view_angle, dist)) ;
if (NdotL > 0.0) { if (NdotL > 0.0) {
float shadowmap = getShadowing();
if (cloud_shadow_flag == 1) {NdotL = NdotL * shadow_func(relPos.x, relPos.y, 0.3 * noise_250m + 0.5 * noise_500m+0.2 * noise_1500m, dist);} if (cloud_shadow_flag == 1) {NdotL = NdotL * shadow_func(relPos.x, relPos.y, 0.3 * noise_250m + 0.5 * noise_500m+0.2 * noise_1500m, dist);}
color += diffuse_term * NdotL; color += diffuse_term * NdotL * shadowmap;
NdotHV = max(dot(n, halfVector), 0.0); NdotHV = max(dot(n, halfVector), 0.0);
if (gl_FrontMaterial.shininess > 0.0) if (gl_FrontMaterial.shininess > 0.0)
specular.rgb = ((gl_FrontMaterial.specular.rgb * 0.1 + (water_factor * vec3 (1.0, 1.0, 1.0))) specular.rgb = ((gl_FrontMaterial.specular.rgb * 0.1 + (water_factor * vec3 (1.0, 1.0, 1.0)))
* light_specular.rgb * light_specular.rgb
* pow(NdotHV, gl_FrontMaterial.shininess + (20.0 * water_factor))); * pow(NdotHV, gl_FrontMaterial.shininess + (20.0 * water_factor))
* shadowmap);
} }
color.a = 1.0;//diffuse_term.a; color.a = 1.0;//diffuse_term.a;
// This shouldn't be necessary, but our lighting becomes very // This shouldn't be necessary, but our lighting becomes very

View file

@ -51,6 +51,8 @@ uniform mat4 osg_ViewMatrixInverse;
float earthShade; float earthShade;
float yprime_alt; float yprime_alt;
void setupShadows(vec4 eyeSpacePos);
vec3 moonlight_perception (in vec3 light); vec3 moonlight_perception (in vec3 light);
// This is the value used in the skydome scattering shader - use the same here for consistency? // This is the value used in the skydome scattering shader - use the same here for consistency?
@ -88,7 +90,8 @@ void main()
float scattering; float scattering;
rawPos = gl_Vertex.xy; rawPos = gl_Vertex.xy;
worldPos = (osg_ViewMatrixInverse *gl_ModelViewMatrix * gl_Vertex).xyz; vec4 eyePos = gl_ModelViewMatrix * gl_Vertex;
worldPos = (osg_ViewMatrixInverse * eyePos).xyz;
steepness = dot(normalize(gl_Normal), vec3 (0.0, 0.0, 1.0)); steepness = dot(normalize(gl_Normal), vec3 (0.0, 0.0, 1.0));
@ -290,7 +293,7 @@ if (use_IR_vision)
gl_FrontColor.a = mie_angle; gl_FrontColor.a = mie_angle;
gl_BackColor.a = mie_angle; gl_BackColor.a = mie_angle;
setupShadows(eyePos);
} }

View file

@ -16,4 +16,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -17,4 +17,7 @@
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -15,4 +15,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -16,4 +16,7 @@
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -383,4 +383,7 @@ print("Done.");
</animation>--> </animation>-->
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -30,4 +30,7 @@
</condition> </condition>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -12,4 +12,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -12,4 +12,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -12,4 +12,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<object-name>rect</object-name> <object-name>rect</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<object-name>rect</object-name> <object-name>rect</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<object-name>rect</object-name> <object-name>rect</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<object-name>rect</object-name> <object-name>rect</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -13,4 +13,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -12,4 +12,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -12,4 +12,7 @@
<enable-hot type="bool">false</enable-hot> <enable-hot type="bool">false</enable-hot>
</animation> </animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
<object-name>mesh</object-name> <object-name>mesh</object-name>
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

View file

@ -14,4 +14,7 @@
</effect> </effect>
<animation>
<type>noshadow</type>
</animation>
</PropertyList> </PropertyList>

Some files were not shown because too many files have changed in this diff Show more