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>
|
<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>
|
||||||
|
@ -85,13 +76,13 @@
|
||||||
<name>forward</name>
|
<name>forward</name>
|
||||||
<type>scene</type>
|
<type>scene</type>
|
||||||
<effect-scheme>als-lighting</effect-scheme>
|
<effect-scheme>als-lighting</effect-scheme>
|
||||||
<!--
|
<!--
|
||||||
<clustered-shading>
|
<clustered-shading>
|
||||||
<tile-size>128</tile-size>
|
<tile-size>128</tile-size>
|
||||||
<num-threads>4</num-threads>
|
<num-threads>4</num-threads>
|
||||||
<depth-slices>16</depth-slices>
|
<depth-slices>16</depth-slices>
|
||||||
</clustered-shading>
|
</clustered-shading>
|
||||||
-->
|
-->
|
||||||
<use-shadow-pass>csm0</use-shadow-pass>
|
<use-shadow-pass>csm0</use-shadow-pass>
|
||||||
<use-shadow-pass>csm1</use-shadow-pass>
|
<use-shadow-pass>csm1</use-shadow-pass>
|
||||||
<use-shadow-pass>csm2</use-shadow-pass>
|
<use-shadow-pass>csm2</use-shadow-pass>
|
||||||
|
@ -105,42 +96,17 @@
|
||||||
<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>
|
||||||
|
|
||||||
<pass>
|
<pass>
|
||||||
<name>display</name>
|
<name>display</name>
|
||||||
<type>quad</type>
|
<type>quad</type>
|
||||||
<binding>
|
<binding>
|
||||||
<buffer>color</buffer>
|
<buffer>color</buffer>
|
||||||
<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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
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>
|
<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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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> -->
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 );
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
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 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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -17,4 +17,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -15,4 +15,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -16,4 +16,7 @@
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -383,4 +383,7 @@ print("Done.");
|
||||||
</animation>-->
|
</animation>-->
|
||||||
|
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -30,4 +30,7 @@
|
||||||
</condition>
|
</condition>
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -13,4 +13,7 @@
|
||||||
<object-name>rect</object-name>
|
<object-name>rect</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -13,4 +13,7 @@
|
||||||
<object-name>rect</object-name>
|
<object-name>rect</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -13,4 +13,7 @@
|
||||||
<object-name>rect</object-name>
|
<object-name>rect</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -13,4 +13,7 @@
|
||||||
<object-name>rect</object-name>
|
<object-name>rect</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -14,4 +14,7 @@
|
||||||
<object-name>mesh</object-name>
|
<object-name>mesh</object-name>
|
||||||
</effect>
|
</effect>
|
||||||
|
|
||||||
|
<animation>
|
||||||
|
<type>noshadow</type>
|
||||||
|
</animation>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -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
Loading…
Reference in a new issue