Merge /u/fgarlin/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/158/
This commit is contained in:
commit
7ba35793f6
246 changed files with 1365 additions and 79 deletions
|
@ -10,13 +10,6 @@
|
|||
<height>screen</height>
|
||||
<format>rgba8</format>
|
||||
</buffer>
|
||||
<buffer>
|
||||
<name>depth</name>
|
||||
<type>2d</type>
|
||||
<width>screen</width>
|
||||
<height>screen</height>
|
||||
<format>depth32f</format>
|
||||
</buffer>
|
||||
<buffer>
|
||||
<name>sun-shadowmap-atlas</name>
|
||||
<type>2d</type>
|
||||
|
@ -33,8 +26,6 @@
|
|||
</buffer>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Shadow mapping pre-passes -->
|
||||
<pass include="csm.xml">
|
||||
<name>csm0</name>
|
||||
|
@ -50,7 +41,7 @@
|
|||
<pass include="csm.xml">
|
||||
<name>csm1</name>
|
||||
<near-m>3.0</near-m>
|
||||
<far-m>30.0</far-m>
|
||||
<far-m>50.0</far-m>
|
||||
<viewport>
|
||||
<x>0.5</x>
|
||||
<y>0.0</y>
|
||||
|
@ -60,8 +51,8 @@
|
|||
</pass>
|
||||
<pass include="csm.xml">
|
||||
<name>csm2</name>
|
||||
<near-m>30.0</near-m>
|
||||
<far-m>300.0</far-m>
|
||||
<near-m>50.0</near-m>
|
||||
<far-m>150.0</far-m>
|
||||
<viewport>
|
||||
<x>0.0</x>
|
||||
<y>0.5</y>
|
||||
|
@ -71,8 +62,8 @@
|
|||
</pass>
|
||||
<pass include="csm.xml">
|
||||
<name>csm3</name>
|
||||
<near-m>300.0</near-m>
|
||||
<far-m>3000.0</far-m>
|
||||
<near-m>150.0</near-m>
|
||||
<far-m>1500.0</far-m>
|
||||
<viewport>
|
||||
<x>0.5</x>
|
||||
<y>0.5</y>
|
||||
|
@ -85,13 +76,13 @@
|
|||
<name>forward</name>
|
||||
<type>scene</type>
|
||||
<effect-scheme>als-lighting</effect-scheme>
|
||||
<!--
|
||||
<!--
|
||||
<clustered-shading>
|
||||
<tile-size>128</tile-size>
|
||||
<num-threads>4</num-threads>
|
||||
<depth-slices>16</depth-slices>
|
||||
</clustered-shading>
|
||||
-->
|
||||
-->
|
||||
<use-shadow-pass>csm0</use-shadow-pass>
|
||||
<use-shadow-pass>csm1</use-shadow-pass>
|
||||
<use-shadow-pass>csm2</use-shadow-pass>
|
||||
|
@ -105,14 +96,8 @@
|
|||
<attachment>
|
||||
<buffer>color</buffer>
|
||||
<component>color0</component>
|
||||
<!--
|
||||
<multisample-samples>4</multisample-samples>
|
||||
<multisample-color-samples>4</multisample-color-samples>
|
||||
-->
|
||||
</attachment>
|
||||
<attachment>
|
||||
<buffer>depth</buffer>
|
||||
<component>depth</component>
|
||||
</attachment>
|
||||
</pass>
|
||||
|
||||
|
@ -124,23 +109,4 @@
|
|||
<unit>0</unit>
|
||||
</binding>
|
||||
</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>
|
||||
|
|
|
@ -7,12 +7,10 @@
|
|||
<lighting>false</lighting>
|
||||
<color-mask type="vec4d">0 0 0 0</color-mask>
|
||||
<cull-face>back</cull-face>
|
||||
<!--
|
||||
<program>
|
||||
<vertex-shader>Compositor/Shaders/shadow-pass.vert</vertex-shader>
|
||||
<fragment-shader>Compositor/Shaders/shadow-pass.frag</fragment-shader>
|
||||
<vertex-shader>Shaders/Default/trivial.vert</vertex-shader>
|
||||
<fragment-shader>Shaders/Default/trivial.frag</fragment-shader>
|
||||
</program>
|
||||
-->
|
||||
</pass>
|
||||
</technique>
|
||||
</PropertyList>
|
||||
|
|
|
@ -433,12 +433,14 @@
|
|||
<program>
|
||||
<vertex-shader>Shaders/ALS/terrain-ultra.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/cloud-shadowfunc.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>grain_strength</name>
|
||||
|
@ -1147,6 +1149,27 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</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>
|
||||
<function>lequal</function>
|
||||
</depth>
|
||||
|
|
|
@ -198,12 +198,14 @@
|
|||
<program>
|
||||
<vertex-shader>Shaders/ALS/terrain-ultra.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/cloud-shadowfunc.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -859,6 +861,27 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</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>
|
||||
<function>lequal</function>
|
||||
<write-mask type="bool">false</write-mask>
|
||||
|
|
125
Compositor/Effects/chrome.eff
Normal file
125
Compositor/Effects/chrome.eff
Normal 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>
|
|
@ -201,12 +201,14 @@
|
|||
<program>
|
||||
<vertex-shader>Shaders/ALS/terrain-ultra.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/cloud-shadowfunc.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -862,6 +864,27 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</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>
|
||||
<function>lequal</function>
|
||||
<write-mask type="bool">false</write-mask>
|
||||
|
@ -938,6 +961,7 @@
|
|||
<fragment-shader n="0">Shaders/ALS/grass.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="3">Shaders/ALS/shadows-include.frag</fragment-shader>
|
||||
<geometry-vertices-out type="int">96</geometry-vertices-out>
|
||||
<geometry-input-type>triangles</geometry-input-type>
|
||||
<geometry-output-type>triangle-strip</geometry-output-type>
|
||||
|
@ -1123,6 +1147,27 @@
|
|||
<use>wind_effects</use>
|
||||
</value>
|
||||
</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>
|
||||
<active>true</active>
|
||||
<source>src-alpha</source>
|
||||
|
|
|
@ -1081,12 +1081,14 @@ please see Docs/README.model-combined.eff for documentation
|
|||
</vertex-program-two-side>
|
||||
<program>
|
||||
<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="1">Shaders/ALS/cloud-shadowfunc.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="4">Shaders/ALS/noise.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>
|
||||
<uniform>
|
||||
<name>BaseTex</name>
|
||||
|
@ -1997,6 +1999,27 @@ please see Docs/README.model-combined.eff for documentation
|
|||
<use>rembrandt</use>
|
||||
</value>
|
||||
</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>
|
||||
</technique>
|
||||
</PropertyList>
|
||||
|
|
|
@ -125,6 +125,14 @@
|
|||
<use>/sim/rendering/shaders/transition</use>
|
||||
</tquality_level>
|
||||
<!-- 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>
|
||||
<technique n="8">
|
||||
<predicate>
|
||||
|
@ -466,11 +474,13 @@
|
|||
</vertex-program-two-side>
|
||||
<program>
|
||||
<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/hazes.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -785,6 +795,27 @@
|
|||
<use>tquality_level</use>
|
||||
</value>
|
||||
</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>
|
||||
</technique>
|
||||
</PropertyList>
|
||||
|
|
|
@ -117,4 +117,81 @@
|
|||
-->
|
||||
</pass>
|
||||
</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>
|
||||
|
|
|
@ -657,6 +657,7 @@
|
|||
<program>
|
||||
<vertex-shader n="0">Shaders/ALS/terrain-ultra.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="1">Shaders/ALS/cloud-shadowfunc.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="5">Shaders/ALS/filters.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>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -1552,6 +1554,27 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</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>
|
||||
<function>lequal</function>
|
||||
<write-mask type="bool">false</write-mask>
|
||||
|
|
|
@ -355,6 +355,14 @@
|
|||
<cloud_shadow_flag>
|
||||
<use>/local-weather/cloud-shadows/cloud-shadow-flag</use>
|
||||
</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>
|
||||
<!-- put techniques at a "high" index to allow derived effects to
|
||||
insert their own techniques first. -->
|
||||
|
@ -820,12 +828,14 @@
|
|||
<program>
|
||||
<vertex-shader>Shaders/ALS/terrain-ultra.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/noise.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/cloud-shadowfunc.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/secondary_lights.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>grain_strength</name>
|
||||
|
@ -1517,6 +1527,27 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</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>
|
||||
<function>lequal</function>
|
||||
<!-- <write-mask type="bool">false</write-mask> -->
|
||||
|
@ -1677,10 +1708,12 @@
|
|||
<program>
|
||||
<vertex-shader>Shaders/ALS/terrain-detailed.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/noise.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/hazes.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -1935,6 +1968,27 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</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>
|
||||
<function>lequal</function>
|
||||
<!--><write-mask type="bool">false</write-mask> -->
|
||||
|
@ -2055,10 +2109,12 @@
|
|||
</texture-unit>
|
||||
<program>
|
||||
<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/hazes.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/noise.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/filters.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/ALS/shadows-include.frag</fragment-shader>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -2226,6 +2282,27 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</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>
|
||||
<function>lequal</function>
|
||||
<!-- <write-mask type="bool">false</write-mask> -->
|
||||
|
|
|
@ -92,6 +92,8 @@ vec3 searchlight();
|
|||
vec3 landing_light(in float offset, in float offsetv);
|
||||
vec3 filter_combined (in vec3 color) ;
|
||||
|
||||
float getShadowing();
|
||||
|
||||
|
||||
// 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);
|
||||
|
||||
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);}
|
||||
color += diffuse_term * NdotL;
|
||||
color += diffuse_term * NdotL * shadowmap;
|
||||
NdotHV = max(dot(n, halfVector), 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)))
|
||||
* 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;
|
||||
// This shouldn't be necessary, but our lighting becomes very
|
||||
|
|
|
@ -78,6 +78,8 @@ vec3 searchlight();
|
|||
vec3 landing_light(in float offset, in float offsetv);
|
||||
vec3 filter_combined (in vec3 color) ;
|
||||
|
||||
float getShadowing();
|
||||
|
||||
|
||||
float detail_fade (in float scale, in float angle, in float dist)
|
||||
{
|
||||
|
@ -282,9 +284,10 @@ if (quality_level > 3)
|
|||
}
|
||||
|
||||
if (NdotL > 0.0) {
|
||||
float shadowmap = getShadowing();
|
||||
if (cloud_shadow_flag == 1)
|
||||
{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)
|
||||
specular.rgb = ((gl_FrontMaterial.specular.rgb + (water_factor * vec3 (1.0, 1.0, 1.0)))
|
||||
* 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;
|
||||
// This shouldn't be necessary, but our lighting becomes very
|
||||
|
|
|
@ -37,6 +37,8 @@ uniform float ground_scattering;
|
|||
uniform float moonlight;
|
||||
|
||||
|
||||
void setupShadows(vec4 eyeSpacePos);
|
||||
|
||||
// This is the value used in the skydome scattering shader - use the same here for consistency?
|
||||
const float EarthRadius = 5800000.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_BackColor.rgb = constant_term.rgb; gl_BackColor.a = 0.0;
|
||||
|
||||
setupShadows(gl_ModelViewMatrix * gl_Vertex);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -37,6 +37,8 @@ float rand2D(in vec2 co);
|
|||
float Noise2D(in vec2 co, in float wavelength);
|
||||
vec3 filter_combined (in vec3 color) ;
|
||||
|
||||
float getShadowing();
|
||||
|
||||
|
||||
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.g = texel.g;
|
||||
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)));
|
||||
|
||||
float base_alpha = clamp(0.4 * max_height/0.3, 0.4, 1.0);
|
||||
|
|
|
@ -15,6 +15,18 @@ varying out float g_distance_to_eye;
|
|||
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)
|
||||
{
|
||||
|
@ -45,6 +57,8 @@ void main()
|
|||
g_distance_to_eye = distances[i];
|
||||
g_layer = currDeltaLayer;
|
||||
|
||||
setupShadows(gl_ModelViewMatrix * pos);
|
||||
|
||||
gl_Position = gl_ModelViewProjectionMatrix * pos;
|
||||
gl_TexCoord[0] = gl_TexCoordIn[i][0];
|
||||
EmitVertex();
|
||||
|
|
|
@ -56,6 +56,8 @@ vec3 searchlight();
|
|||
vec3 landing_light(in float offset, in float offsetv);
|
||||
vec3 filter_combined (in vec3 color) ;
|
||||
|
||||
float getShadowing();
|
||||
|
||||
float luminance(vec3 color)
|
||||
{
|
||||
return dot(vec3(0.212671, 0.715160, 0.072169), color);
|
||||
|
@ -107,12 +109,14 @@ void main()
|
|||
|
||||
NdotL = dot(n, lightDir);
|
||||
if (NdotL > 0.0) {
|
||||
color += diffuse_term * NdotL;
|
||||
float shadowmap = getShadowing();
|
||||
color += diffuse_term * NdotL * shadowmap;
|
||||
NdotHV = max(dot(n, halfVector), 0.0);
|
||||
if (gl_FrontMaterial.shininess > 0.0)
|
||||
specular.rgb = (gl_FrontMaterial.specular.rgb
|
||||
* light_specular.rgb
|
||||
* pow(NdotHV, gl_FrontMaterial.shininess));
|
||||
* pow(NdotHV, gl_FrontMaterial.shininess)
|
||||
* shadowmap);
|
||||
}
|
||||
color.a = diffuse_term.a;
|
||||
// This shouldn't be necessary, but our lighting becomes very
|
||||
|
|
|
@ -119,6 +119,8 @@ vec3 filter_combined (in vec3 color) ;
|
|||
vec3 moonlight_perception (in vec3 light) ;
|
||||
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)
|
||||
{
|
||||
|
@ -340,6 +342,8 @@ void main (void)
|
|||
{pf1 = pow(nDotHV1, 0.5*gl_FrontMaterial.shininess);}
|
||||
|
||||
|
||||
float shadowmap = getShadowing();
|
||||
light_diffuse *= shadowmap;
|
||||
|
||||
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 *= refl_d;
|
||||
Specular *= shadowmap;
|
||||
|
||||
vec4 color = gl_Color + Diffuse * gl_FrontMaterial.diffuse;
|
||||
color = clamp( color, 0.0, 1.0 );
|
||||
|
|
|
@ -28,6 +28,8 @@ uniform int shader_qual;
|
|||
// 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)
|
||||
{
|
||||
rotmat = mat4( cosRy , sinRx * sinRy , cosRx * sinRy, 0.0,
|
||||
|
@ -112,4 +114,6 @@ void main(void)
|
|||
|
||||
gl_Position = ftransform();
|
||||
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
||||
|
||||
setupShadows(ecPosition);
|
||||
}
|
||||
|
|
|
@ -73,6 +73,8 @@ vec3 rayleigh_out_shift(in vec3 color, in float outscatter);
|
|||
vec3 get_hazeColor(in float light_arg);
|
||||
vec3 filter_combined (in vec3 color) ;
|
||||
|
||||
float getShadowing();
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
|
@ -286,14 +288,16 @@ if ((dist < 5000.0)&& (quality_level > 3) && (wetness>0.0))
|
|||
}
|
||||
if (NdotL > 0.0)
|
||||
{
|
||||
float shadowmap = getShadowing();
|
||||
if (cloud_shadow_flag == 1)
|
||||
{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);
|
||||
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)))
|
||||
* light_specular.rgb
|
||||
* pow(NdotHV, max(4.0, (20.0 * water_factor))));
|
||||
* pow(NdotHV, max(4.0, (20.0 * water_factor)))
|
||||
* shadowmap);
|
||||
}
|
||||
|
||||
// raindrops
|
||||
|
|
120
Compositor/Shaders/ALS/shadows-include.frag
Normal file
120
Compositor/Shaders/ALS/shadows-include.frag
Normal 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;
|
||||
}
|
38
Compositor/Shaders/ALS/shadows-include.vert
Normal file
38
Compositor/Shaders/ALS/shadows-include.vert
Normal 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;
|
||||
}
|
|
@ -35,6 +35,8 @@ float fog_func (in float targ, in float alt);
|
|||
vec3 get_hazeColor(in float light_arg);
|
||||
vec3 filter_combined (in vec3 color) ;
|
||||
|
||||
float getShadowing();
|
||||
|
||||
float luminance(vec3 color)
|
||||
{
|
||||
return dot(vec3(0.212671, 0.715160, 0.072169), color);
|
||||
|
@ -69,12 +71,14 @@ void main()
|
|||
|
||||
NdotL = dot(n, lightDir);
|
||||
if (NdotL > 0.0) {
|
||||
color += diffuse_term * NdotL;
|
||||
float shadowmap = getShadowing();
|
||||
color += diffuse_term * NdotL * shadowmap;
|
||||
NdotHV = max(dot(n, halfVector), 0.0);
|
||||
if (gl_FrontMaterial.shininess > 0.0)
|
||||
specular.rgb = (gl_FrontMaterial.specular.rgb
|
||||
* light_specular.rgb
|
||||
* pow(NdotHV, gl_FrontMaterial.shininess));
|
||||
* pow(NdotHV, gl_FrontMaterial.shininess)
|
||||
* shadowmap);
|
||||
}
|
||||
color.a = diffuse_term.a;
|
||||
// This shouldn't be necessary, but our lighting becomes very
|
||||
|
|
|
@ -56,6 +56,7 @@ float fog_func (in float targ, in float alt);
|
|||
vec3 get_hazeColor(in float light_arg);
|
||||
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));
|
||||
}
|
||||
if (NdotL > 0.0) {
|
||||
color += diffuse_term * NdotL;
|
||||
float shadowmap = getShadowing();
|
||||
color += diffuse_term * NdotL * shadowmap;
|
||||
NdotHV = max(dot(n, halfVector), 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)))
|
||||
* 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;
|
||||
// This shouldn't be necessary, but our lighting becomes very
|
||||
|
|
|
@ -55,6 +55,7 @@ const float EarthRadius = 5800000.0;
|
|||
const float terminator_width = 200000.0;
|
||||
|
||||
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)
|
||||
{
|
||||
|
@ -84,7 +85,8 @@ void main()
|
|||
float scattering;
|
||||
|
||||
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));
|
||||
|
||||
|
||||
|
@ -299,6 +301,7 @@ if (use_IR_vision)
|
|||
gl_BackColor.a = mie_angle;
|
||||
}
|
||||
|
||||
setupShadows(eyePos);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -88,6 +88,7 @@ vec3 searchlight();
|
|||
vec3 landing_light(in float offset, in float offsetv);
|
||||
vec3 filter_combined (in vec3 color) ;
|
||||
|
||||
float getShadowing();
|
||||
|
||||
|
||||
// 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)) ;
|
||||
|
||||
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);}
|
||||
color += diffuse_term * NdotL;
|
||||
color += diffuse_term * NdotL * shadowmap;
|
||||
NdotHV = max(dot(n, halfVector), 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)))
|
||||
* 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;
|
||||
// This shouldn't be necessary, but our lighting becomes very
|
||||
|
|
|
@ -51,6 +51,8 @@ uniform mat4 osg_ViewMatrixInverse;
|
|||
float earthShade;
|
||||
float yprime_alt;
|
||||
|
||||
void setupShadows(vec4 eyeSpacePos);
|
||||
|
||||
vec3 moonlight_perception (in vec3 light);
|
||||
|
||||
// This is the value used in the skydome scattering shader - use the same here for consistency?
|
||||
|
@ -88,7 +90,8 @@ void main()
|
|||
float scattering;
|
||||
|
||||
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));
|
||||
|
@ -290,7 +293,7 @@ if (use_IR_vision)
|
|||
gl_FrontColor.a = mie_angle;
|
||||
gl_BackColor.a = mie_angle;
|
||||
|
||||
|
||||
setupShadows(eyePos);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -17,4 +17,7 @@
|
|||
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -15,4 +15,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -16,4 +16,7 @@
|
|||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -383,4 +383,7 @@ print("Done.");
|
|||
</animation>-->
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -30,4 +30,7 @@
|
|||
</condition>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -12,4 +12,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -12,4 +12,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -12,4 +12,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<object-name>rect</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<object-name>rect</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<object-name>rect</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<object-name>rect</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -13,4 +13,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -12,4 +12,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -12,4 +12,7 @@
|
|||
<enable-hot type="bool">false</enable-hot>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
<object-name>mesh</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
|
@ -14,4 +14,7 @@
|
|||
</effect>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>noshadow</type>
|
||||
</animation>
|
||||
</PropertyList>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue