2020-11-08 22:44:34 +00:00
|
|
|
<?xml version='1.0' encoding='UTF-8'?>
|
|
|
|
<!-- World Scenery 3.0 Effect -->
|
|
|
|
<PropertyList>
|
|
|
|
<name>Effects/ws30</name>
|
|
|
|
<parameters>
|
|
|
|
<material>
|
|
|
|
<ambient type="vec4d">
|
|
|
|
0.2 .2 0.2 1.0
|
|
|
|
</ambient>
|
|
|
|
<diffuse type="vec4d">
|
|
|
|
.8 .8 .8 1.0
|
|
|
|
</diffuse>
|
|
|
|
<specular type="vec4d">
|
|
|
|
0.0 0.0 0.0 1.0
|
|
|
|
</specular>
|
|
|
|
<emissive type="vec4d">
|
|
|
|
0.0 0.0 0.0 1.0
|
|
|
|
</emissive>
|
|
|
|
<shininess>1.2</shininess>
|
|
|
|
</material>
|
2020-12-08 21:15:13 +00:00
|
|
|
|
2021-01-26 20:17:17 +00:00
|
|
|
<texture n="6">
|
|
|
|
<image>Textures/perlin.png</image>
|
|
|
|
<type>2d</type>
|
|
|
|
<filter>nearest</filter>
|
|
|
|
<wrap-s>repeat</wrap-s>
|
|
|
|
<wrap-t>repeat</wrap-t>
|
|
|
|
<internal-format>normalized</internal-format>
|
|
|
|
</texture>
|
|
|
|
|
2020-11-08 22:44:34 +00:00
|
|
|
<texture n="10">
|
|
|
|
<image>Textures/Terrain/snow3.png</image>
|
|
|
|
<type>2d</type>
|
|
|
|
<filter>linear-mipmap-linear</filter>
|
|
|
|
<wrap-s>repeat</wrap-s>
|
|
|
|
<wrap-t>repeat</wrap-t>
|
|
|
|
<internal-format>normalized</internal-format>
|
|
|
|
</texture>
|
|
|
|
<texture n="11">
|
|
|
|
<image>Textures/Terrain/void.png</image>
|
|
|
|
<type>2d</type>
|
|
|
|
<filter>linear-mipmap-linear</filter>
|
|
|
|
<wrap-s>repeat</wrap-s>
|
|
|
|
<wrap-t>repeat</wrap-t>
|
|
|
|
<internal-format>normalized</internal-format>
|
|
|
|
</texture>
|
|
|
|
<texture n="12">
|
|
|
|
<image>Textures/Terrain/void.png</image>
|
|
|
|
<type>2d</type>
|
|
|
|
<filter>linear-mipmap-linear</filter>
|
|
|
|
<wrap-s>repeat</wrap-s>
|
|
|
|
<wrap-t>repeat</wrap-t>
|
|
|
|
<internal-format>normalized</internal-format>
|
|
|
|
</texture>
|
|
|
|
<texture n="13">
|
|
|
|
<image>Textures/Terrain/rock_alt.png</image>
|
|
|
|
<type>2d</type>
|
|
|
|
<filter>linear-mipmap-linear</filter>
|
|
|
|
<wrap-s>repeat</wrap-s>
|
|
|
|
<wrap-t>repeat</wrap-t>
|
|
|
|
<internal-format>normalized</internal-format>
|
|
|
|
</texture>
|
|
|
|
<texture n="14">
|
|
|
|
<image>Textures/Terrain/grain_texture.png</image>
|
|
|
|
<type>2d</type>
|
|
|
|
<filter>linear-mipmap-linear</filter>
|
|
|
|
<wrap-s>repeat</wrap-s>
|
|
|
|
<wrap-t>repeat</wrap-t>
|
|
|
|
<internal-format>normalized</internal-format>
|
|
|
|
</texture>
|
|
|
|
<texture n="15">
|
|
|
|
<image>Textures/Terrain/void.png</image>
|
|
|
|
<type>2d</type>
|
|
|
|
<filter>linear-mipmap-linear</filter>
|
|
|
|
<wrap-s>repeat</wrap-s>
|
|
|
|
<wrap-t>repeat</wrap-t>
|
|
|
|
<internal-format>normalized</internal-format>
|
|
|
|
</texture>
|
|
|
|
<transparent>false</transparent>
|
|
|
|
<render-bin>
|
|
|
|
<bin-number>0</bin-number>
|
|
|
|
<bin-name>RenderBin</bin-name>
|
|
|
|
</render-bin>
|
|
|
|
<material-id>0</material-id>
|
|
|
|
<grain_strength>0.5</grain_strength>
|
|
|
|
<intrinsic_wetness>0.0</intrinsic_wetness>
|
|
|
|
<transition_model>0.5</transition_model>
|
|
|
|
<hires_overlay_bias>0.0</hires_overlay_bias>
|
|
|
|
<dot_density>1.0</dot_density>
|
|
|
|
<dot_size>1.0</dot_size>
|
|
|
|
<dust_resistance>1.0</dust_resistance>
|
|
|
|
<rock_strata>0</rock_strata>
|
|
|
|
<raise_vertex type="bool">false</raise_vertex>
|
2021-01-23 17:15:12 +00:00
|
|
|
<visibility><use>/environment/ground-visibility-m</use></visibility>
|
|
|
|
<avisibility><use>/environment/visibility-m</use></avisibility>
|
|
|
|
<lthickness><use>/environment/ground-haze-thickness-m</use></lthickness>
|
|
|
|
<scattering><use>/rendering/scene/scattering</use></scattering>
|
|
|
|
<ground_scattering><use>/environment/surface/scattering</use></ground_scattering>
|
|
|
|
<terminator><use>/environment/terminator-relative-position-m</use></terminator>
|
|
|
|
<terrain_alt><use>/environment/mean-terrain-elevation-m</use></terrain_alt>
|
|
|
|
<overcast><use>/rendering/scene/overcast</use></overcast>
|
|
|
|
<eye_alt><use>/sim/rendering/eye-altitude-m</use></eye_alt>
|
|
|
|
<snow_level><use>/environment/snow-level-m</use></snow_level>
|
|
|
|
<snow_thickness_factor><use>/environment/surface/snow-thickness-factor</use></snow_thickness_factor>
|
|
|
|
<dust_cover_factor><use>/environment/surface/dust-cover-factor</use></dust_cover_factor>
|
|
|
|
<lichen_cover_factor><use>/environment/surface/lichen-cover-factor</use></lichen_cover_factor>
|
|
|
|
<wetness><use>/environment/surface/wetness</use></wetness>
|
|
|
|
<fogtype><use>/sim/rendering/shaders/skydome</use></fogtype>
|
|
|
|
<fogstructure><use>/environment/fog-structure</use></fogstructure>
|
|
|
|
<cloud_self_shading><use>/environment/cloud-self-shading</use></cloud_self_shading>
|
|
|
|
<moonlight><use>/environment/moonlight</use></moonlight>
|
|
|
|
<season><use>/environment/season</use></season>
|
|
|
|
<air_pollution><use>/environment/air-pollution-norm</use></air_pollution>
|
|
|
|
<delta_T><use>/environment/surface/delta-T-soil</use></delta_T>
|
|
|
|
<wind_effects><use>/sim/rendering/shaders/wind-effects</use></wind_effects>
|
|
|
|
<windE><use>/environment/sea/surface/wind-from-east-fps</use></windE>
|
|
|
|
<windN><use>/environment/sea/surface/wind-from-north-fps</use></windN>
|
|
|
|
<display_xsize><use>/sim/startup/xsize</use></display_xsize>
|
|
|
|
<display_ysize><use>/sim/startup/ysize</use></display_ysize>
|
2020-12-08 21:15:13 +00:00
|
|
|
<!--
|
2021-01-23 17:15:12 +00:00
|
|
|
<tile_width><use>/sim/rendering/texture-factor</use></tile_width>
|
2020-12-08 21:15:13 +00:00
|
|
|
-->
|
2021-01-23 17:15:12 +00:00
|
|
|
<view_pitch_offset><use>/sim/current-view/pitch-offset-deg</use></view_pitch_offset>
|
|
|
|
<view_heading_offset><use>/sim/current-view/heading-offset-deg</use></view_heading_offset>
|
|
|
|
<view_fov><use>/sim/current-view/field-of-view</use></view_fov>
|
|
|
|
<use_searchlight><use>/sim/rendering/als-secondary-lights/use-searchlight</use></use_searchlight>
|
|
|
|
<use_landing_light><use>/sim/rendering/als-secondary-lights/use-landing-light</use></use_landing_light>
|
|
|
|
<use_alt_landing_light><use>/sim/rendering/als-secondary-lights/use-alt-landing-light</use></use_alt_landing_light>
|
|
|
|
<landing_light1_offset><use>/sim/rendering/als-secondary-lights/landing-light1-offset-deg</use></landing_light1_offset>
|
|
|
|
<landing_light2_offset><use>/sim/rendering/als-secondary-lights/landing-light2-offset-deg</use></landing_light2_offset>
|
|
|
|
<landing_light3_offset><use>/sim/rendering/als-secondary-lights/landing-light3-offset-deg</use></landing_light3_offset>
|
|
|
|
<quality_level><use>/sim/rendering/shaders/landmass</use></quality_level>
|
|
|
|
<tquality_level><use>/sim/rendering/shaders/transition</use></tquality_level>
|
|
|
|
<use_filtering><use>/sim/rendering/als-filters/use-filtering</use></use_filtering>
|
|
|
|
<gamma><use>/sim/rendering/als-filters/gamma</use></gamma>
|
|
|
|
<brightness><use>/sim/rendering/als-filters/brightness</use></brightness>
|
|
|
|
<fact_grey><use>/sim/rendering/als-filters/grey-factor</use></fact_grey>
|
|
|
|
<fact_black><use>/sim/rendering/als-filters/black-factor</use></fact_black>
|
|
|
|
<use_night_vision><use>/sim/rendering/als-filters/use-night-vision</use></use_night_vision>
|
|
|
|
<use_IR_vision><use>/sim/rendering/als-filters/use-IR-vision</use></use_IR_vision>
|
|
|
|
<cloudpos1_x><use>/local-weather/cloud-shadows/cloudpos-x[0]</use></cloudpos1_x>
|
|
|
|
<cloudpos1_y><use>/local-weather/cloud-shadows/cloudpos-y[0]</use></cloudpos1_y>
|
|
|
|
<cloudpos2_x><use>/local-weather/cloud-shadows/cloudpos-x[1]</use></cloudpos2_x>
|
|
|
|
<cloudpos2_y><use>/local-weather/cloud-shadows/cloudpos-y[1]</use></cloudpos2_y>
|
|
|
|
<cloudpos3_x><use>/local-weather/cloud-shadows/cloudpos-x[2]</use></cloudpos3_x>
|
|
|
|
<cloudpos3_y><use>/local-weather/cloud-shadows/cloudpos-y[2]</use></cloudpos3_y>
|
|
|
|
<cloudpos4_x><use>/local-weather/cloud-shadows/cloudpos-x[3]</use></cloudpos4_x>
|
|
|
|
<cloudpos4_y><use>/local-weather/cloud-shadows/cloudpos-y[3]</use></cloudpos4_y>
|
|
|
|
<cloudpos5_x><use>/local-weather/cloud-shadows/cloudpos-x[4]</use></cloudpos5_x>
|
|
|
|
<cloudpos5_y><use>/local-weather/cloud-shadows/cloudpos-y[4]</use></cloudpos5_y>
|
|
|
|
<cloudpos6_x><use>/local-weather/cloud-shadows/cloudpos-x[5]</use></cloudpos6_x>
|
|
|
|
<cloudpos6_y><use>/local-weather/cloud-shadows/cloudpos-y[5]</use></cloudpos6_y>
|
|
|
|
<cloudpos7_x><use>/local-weather/cloud-shadows/cloudpos-x[6]</use></cloudpos7_x>
|
|
|
|
<cloudpos7_y><use>/local-weather/cloud-shadows/cloudpos-y[6]</use></cloudpos7_y>
|
|
|
|
<cloudpos8_x><use>/local-weather/cloud-shadows/cloudpos-x[7]</use></cloudpos8_x>
|
|
|
|
<cloudpos8_y><use>/local-weather/cloud-shadows/cloudpos-y[7]</use></cloudpos8_y>
|
|
|
|
<cloudpos9_x><use>/local-weather/cloud-shadows/cloudpos-x[8]</use></cloudpos9_x>
|
|
|
|
<cloudpos9_y><use>/local-weather/cloud-shadows/cloudpos-y[8]</use></cloudpos9_y>
|
|
|
|
<cloudpos10_x><use>/local-weather/cloud-shadows/cloudpos-x[9]</use></cloudpos10_x>
|
|
|
|
<cloudpos10_y><use>/local-weather/cloud-shadows/cloudpos-y[9]</use></cloudpos10_y>
|
|
|
|
<cloudpos11_x><use>/local-weather/cloud-shadows/cloudpos-x[10]</use></cloudpos11_x>
|
|
|
|
<cloudpos11_y><use>/local-weather/cloud-shadows/cloudpos-y[10]</use></cloudpos11_y>
|
|
|
|
<cloudpos12_x><use>/local-weather/cloud-shadows/cloudpos-x[11]</use></cloudpos12_x>
|
|
|
|
<cloudpos12_y><use>/local-weather/cloud-shadows/cloudpos-y[11]</use></cloudpos12_y>
|
|
|
|
<cloudpos13_x><use>/local-weather/cloud-shadows/cloudpos-x[12]</use></cloudpos13_x>
|
|
|
|
<cloudpos13_y><use>/local-weather/cloud-shadows/cloudpos-y[12]</use></cloudpos13_y>
|
|
|
|
<cloudpos14_x><use>/local-weather/cloud-shadows/cloudpos-x[13]</use></cloudpos14_x>
|
|
|
|
<cloudpos14_y><use>/local-weather/cloud-shadows/cloudpos-y[13]</use></cloudpos14_y>
|
|
|
|
<cloudpos15_x><use>/local-weather/cloud-shadows/cloudpos-x[14]</use></cloudpos15_x>
|
|
|
|
<cloudpos15_y><use>/local-weather/cloud-shadows/cloudpos-y[14]</use></cloudpos15_y>
|
|
|
|
<cloudpos16_x><use>/local-weather/cloud-shadows/cloudpos-x[15]</use></cloudpos16_x>
|
|
|
|
<cloudpos16_y><use>/local-weather/cloud-shadows/cloudpos-y[15]</use></cloudpos16_y>
|
|
|
|
<cloudpos17_x><use>/local-weather/cloud-shadows/cloudpos-x[16]</use></cloudpos17_x>
|
|
|
|
<cloudpos17_y><use>/local-weather/cloud-shadows/cloudpos-y[16]</use></cloudpos17_y>
|
|
|
|
<cloudpos18_x><use>/local-weather/cloud-shadows/cloudpos-x[17]</use></cloudpos18_x>
|
|
|
|
<cloudpos18_y><use>/local-weather/cloud-shadows/cloudpos-y[17]</use></cloudpos18_y>
|
|
|
|
<cloudpos19_x><use>/local-weather/cloud-shadows/cloudpos-x[18]</use></cloudpos19_x>
|
|
|
|
<cloudpos19_y><use>/local-weather/cloud-shadows/cloudpos-y[18]</use></cloudpos19_y>
|
|
|
|
<cloudpos20_x><use>/local-weather/cloud-shadows/cloudpos-x[19]</use></cloudpos20_x>
|
|
|
|
<cloudpos20_y><use>/local-weather/cloud-shadows/cloudpos-y[19]</use></cloudpos20_y>
|
|
|
|
<cloudpos_n_x><use>/local-weather/cloud-shadows/nearest-cloudpos-x</use></cloudpos_n_x>
|
|
|
|
<cloudpos_n_y><use>/local-weather/cloud-shadows/nearest-cloudpos-y</use></cloudpos_n_y>
|
|
|
|
<cloud_shadow_flag><use>/local-weather/cloud-shadows/cloud-shadow-flag</use></cloud_shadow_flag>
|
2020-11-08 22:44:34 +00:00
|
|
|
<!-- BEGIN shadows include -->
|
2021-01-23 17:15:12 +00:00
|
|
|
<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>
|
2020-11-08 22:44:34 +00:00
|
|
|
<!-- END shadows include -->
|
|
|
|
</parameters>
|
|
|
|
<!-- put techniques at a "high" index to allow derived effects to
|
|
|
|
insert their own techniques first. -->
|
2021-10-21 20:31:03 +00:00
|
|
|
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
|
|
|
|
<!-- ALS ultra shaders -->
|
|
|
|
<technique n="5">
|
2021-11-06 14:46:39 +00:00
|
|
|
<predicate>
|
|
|
|
<and>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<property>/sim/rendering/shaders/skydome</property>
|
2021-11-06 16:21:58 +00:00
|
|
|
<and>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<less-equal>
|
|
|
|
<value type="float">6.0</value>
|
|
|
|
<float-property>/sim/rendering/shaders/landmass</float-property>
|
|
|
|
</less-equal>
|
|
|
|
<less-equal>
|
|
|
|
<value type="float">6.0</value>
|
|
|
|
<float-property>/sim/rendering/shaders/transition</float-property>
|
|
|
|
</less-equal>
|
2021-11-06 16:21:58 +00:00
|
|
|
</and>
|
|
|
|
<or>
|
|
|
|
<less-equal>
|
|
|
|
<value type="float">2.0</value>
|
|
|
|
<glversion/>
|
|
|
|
</less-equal>
|
|
|
|
<and>
|
|
|
|
<extension-supported>GL_ARB_shader_objects</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_shading_language_100</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_vertex_shader</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_fragment_shader</extension-supported>
|
|
|
|
</and>
|
|
|
|
</or>
|
2021-11-06 14:46:39 +00:00
|
|
|
</and>
|
|
|
|
</predicate>
|
|
|
|
|
|
|
|
<pass>
|
|
|
|
<lighting>true</lighting>
|
|
|
|
<material>
|
|
|
|
<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>ambient-and-diffuse</color-mode>
|
|
|
|
</material>
|
|
|
|
<blend><use>transparent</use></blend>
|
|
|
|
<alpha-test><use>transparent</use></alpha-test>
|
|
|
|
<shade-model>smooth</shade-model>
|
|
|
|
<cull-face>back</cull-face>
|
|
|
|
<render-bin>
|
|
|
|
<bin-number><use>render-bin/bin-number</use></bin-number>
|
|
|
|
<bin-name><use>render-bin/bin-name</use></bin-name>
|
|
|
|
</render-bin>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
|
|
|
|
<!-- texture unit 0 direct from VPBBuilder.cxx -->
|
|
|
|
|
2021-11-06 14:46:39 +00:00
|
|
|
<texture-unit>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<unit>1</unit>
|
|
|
|
<image><use>texture[1]/image</use></image>
|
|
|
|
<filter>nearest-mipmap-nearest</filter>
|
|
|
|
<mag-filter>nearest-mipmap-nearest</mag-filter>
|
2021-11-06 14:46:39 +00:00
|
|
|
<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>
|
|
|
|
</texture-unit>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>2</unit>
|
|
|
|
<image><use>texture[2]/image</use></image>
|
|
|
|
<filter><use>texture[2]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[2]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[2]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[2]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>3</unit>
|
|
|
|
<image><use>texture[3]/image</use></image>
|
|
|
|
<filter><use>texture[3]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[3]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[3]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[3]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>4</unit>
|
|
|
|
<image><use>texture[4]/image</use></image>
|
|
|
|
<filter><use>texture[4]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[4]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[4]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[4]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>6</unit>
|
|
|
|
<image><use>texture[6]/image</use></image>
|
|
|
|
<filter><use>texture[6]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[6]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[6]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[6]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
2021-11-06 16:21:58 +00:00
|
|
|
<program>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<vertex-shader>Shaders/ws30-ALS-ultra.vert</vertex-shader>
|
|
|
|
<vertex-shader>Shaders/filters-ALS.vert</vertex-shader>
|
2021-11-06 16:21:58 +00:00
|
|
|
<vertex-shader>Shaders/shadows-include.vert</vertex-shader>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<fragment-shader>Shaders/ws30-ALS-ultra.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/ws30-ALS-landclass-search-functions.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/noise.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/cloud-shadowfunc.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/hazes.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
2021-11-06 16:21:58 +00:00
|
|
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
|
|
|
|
</program>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<uniform>
|
|
|
|
<name>grain_strength</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>grain_strength</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>intrinsic_wetness</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>intrinsic_wetness</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>transition_model</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>transition_model</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>hires_overlay_bias</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>hires_overlay_bias</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>dot_density</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>dot_density</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>dot_size</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>dot_size</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>dust_resistance</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>dust_resistance</use></value>
|
|
|
|
</uniform>
|
2021-11-06 16:21:58 +00:00
|
|
|
<uniform>
|
|
|
|
<name>visibility</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>visibility</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<name>avisibility</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>avisibility</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>hazeLayerAltitude</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>lthickness</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>scattering</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>scattering</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>ground_scattering</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>ground_scattering</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>terminator</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>terminator</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>terrain_alt</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>terrain_alt</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>overcast</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>overcast</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>eye_alt</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>eye_alt</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>eye_lat</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>eye_lat</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>eye_lon</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>eye_lon</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>snowlevel</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>snow_level</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>snow_thickness_factor</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>snow_thickness_factor</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>dust_cover_factor</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>dust_cover_factor</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>lichen_cover_factor</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value> <use>lichen_cover_factor</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>wetness</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>wetness</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>fogstructure</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>fogstructure</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloud_self_shading</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloud_self_shading</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>moonlight</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>moonlight</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>season</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>season</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>air_pollution</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>air_pollution</use></value>
|
|
|
|
</uniform>
|
|
|
|
<!-- secondary lights -->
|
|
|
|
<uniform>
|
|
|
|
<name>view_pitch_offset</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>view_pitch_offset</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>view_heading_offset</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>view_heading_offset</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>field_of_view</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>view_fov</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>landing_light1_offset</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>landing_light1_offset</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>landing_light2_offset</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>landing_light2_offset</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>landing_light3_offset</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>landing_light3_offset</use></value>
|
|
|
|
</uniform>
|
|
|
|
<!-- filtering -->
|
|
|
|
<uniform>
|
|
|
|
<name>gamma</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>gamma</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>brightness</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>brightness</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_night_vision</name>
|
|
|
|
<type>bool</type>
|
|
|
|
<value><use>use_night_vision</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_IR_vision</name>
|
|
|
|
<type>bool</type>
|
|
|
|
<value><use>use_IR_vision</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_filtering</name>
|
|
|
|
<type>bool</type>
|
|
|
|
<value><use>use_filtering</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>delta_T</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>delta_T</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>fact_grey</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>fact_grey</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>fact_black</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>fact_black</use></value>
|
|
|
|
</uniform>
|
|
|
|
<!-- cloud shadows -->
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos1_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos1_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos1_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos1_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos2_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos2_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos2_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos2_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos3_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos3_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos3_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos3_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos4_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos4_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos4_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos4_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos5_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos5_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos5_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos5_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos6_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos6_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos6_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos6_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos7_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos7_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos7_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos7_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos8_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos8_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos8_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos8_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos9_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos9_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos9_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos9_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos10_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos10_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos10_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos10_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos11_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos11_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos11_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos11_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos12_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos12_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos12_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos12_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos13_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos13_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos13_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos13_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos14_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos14_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos14_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos14_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos15_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos15_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos15_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos15_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos16_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos16_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos16_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos16_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos17_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos17_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos17_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos17_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos18_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos18_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos18_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos18_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos19_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos19_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos19_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos19_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos20_x</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos20_x</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloudpos20_y</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloudpos20_y</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>WindE</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>windE</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>WindN</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>windN</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_searchlight</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value> <use>use_searchlight</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_landing_light</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value> <use>use_landing_light</use></value>
|
2021-11-06 16:21:58 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<name>use_alt_landing_light</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value> <use>use_alt_landing_light</use></value>
|
2021-11-06 16:21:58 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<name>display_xsize</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value><use>display_xsize</use></value>
|
2021-11-06 16:21:58 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<name>display_ysize</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value><use>display_ysize</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>wind_effects</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value><use>wind_effects</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloud_shadow_flag</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value><use>cloud_shadow_flag</use></value>
|
2021-11-06 16:21:58 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<name>rock_strata</name>
|
2021-11-06 16:21:58 +00:00
|
|
|
<type>int</type>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<value><use>rock_strata</use></value>
|
2021-11-06 16:21:58 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<name>raise_vertex</name>
|
|
|
|
<type>bool</type>
|
|
|
|
<value> <use>raise_vertex</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>landclass</name>
|
2021-11-06 16:21:58 +00:00
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">0</value>
|
|
|
|
</uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<uniform>
|
|
|
|
<name>textureArray</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">1</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>perlin</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">6</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>swatch_size</name>
|
|
|
|
<type>int</type>
|
|
|
|
<!--
|
|
|
|
Testing: hardcoded placeholder to allow noise to be calculated while looking up textures
|
|
|
|
<value><use>xsize</use></value>
|
|
|
|
-->
|
|
|
|
<value>2000</value>
|
|
|
|
</uniform>
|
2021-11-06 16:21:58 +00:00
|
|
|
<uniform>
|
|
|
|
<name>colorMode</name>
|
|
|
|
<type>int</type>
|
|
|
|
<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 -->
|
2021-11-06 14:46:39 +00:00
|
|
|
</pass>
|
|
|
|
</technique>
|
2021-10-21 20:31:03 +00:00
|
|
|
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
|
|
|
|
<!-- ALS High and Medium settings technique.
|
|
|
|
Uses quality_level and tquality_level uniforms to change quality in fragment shader.
|
|
|
|
-->
|
|
|
|
|
|
|
|
<technique n="6">
|
2021-10-21 20:31:03 +00:00
|
|
|
<predicate>
|
|
|
|
<and>
|
|
|
|
<property>/sim/rendering/shaders/skydome</property>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<or>
|
2021-10-21 20:31:03 +00:00
|
|
|
<less-equal>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<value type="float">4.0</value>
|
2021-10-21 20:31:03 +00:00
|
|
|
<float-property>/sim/rendering/shaders/landmass</float-property>
|
|
|
|
</less-equal>
|
|
|
|
<less-equal>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<value type="float">3.0</value>
|
2021-10-21 20:31:03 +00:00
|
|
|
<float-property>/sim/rendering/shaders/transition</float-property>
|
|
|
|
</less-equal>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
</or>
|
2021-10-21 20:31:03 +00:00
|
|
|
<or>
|
|
|
|
<less-equal>
|
|
|
|
<value type="float">2.0</value>
|
|
|
|
<glversion/>
|
|
|
|
</less-equal>
|
|
|
|
<and>
|
|
|
|
<extension-supported>GL_ARB_shader_objects</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_shading_language_100</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_vertex_shader</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_fragment_shader</extension-supported>
|
|
|
|
</and>
|
|
|
|
</or>
|
|
|
|
</and>
|
|
|
|
</predicate>
|
|
|
|
|
|
|
|
<pass>
|
|
|
|
<lighting>true</lighting>
|
|
|
|
<material>
|
|
|
|
<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>ambient-and-diffuse</color-mode>
|
|
|
|
</material>
|
|
|
|
<blend><use>transparent</use></blend>
|
|
|
|
<alpha-test><use>transparent</use></alpha-test>
|
|
|
|
<shade-model>smooth</shade-model>
|
|
|
|
<cull-face>back</cull-face>
|
|
|
|
<render-bin>
|
|
|
|
<bin-number><use>render-bin/bin-number</use></bin-number>
|
|
|
|
<bin-name><use>render-bin/bin-name</use></bin-name>
|
|
|
|
</render-bin>
|
|
|
|
|
|
|
|
<!-- texture unit 0 direct from VPBBuilder.cxx -->
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>1</unit>
|
|
|
|
<image><use>texture[1]/image</use></image>
|
|
|
|
<filter>nearest-mipmap-nearest</filter>
|
|
|
|
<mag-filter>nearest-mipmap-nearest</mag-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>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>2</unit>
|
|
|
|
<image><use>texture[2]/image</use></image>
|
|
|
|
<filter><use>texture[2]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[2]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[2]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[2]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>3</unit>
|
|
|
|
<image><use>texture[3]/image</use></image>
|
|
|
|
<filter><use>texture[3]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[3]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[3]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[3]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>4</unit>
|
|
|
|
<image><use>texture[4]/image</use></image>
|
|
|
|
<filter><use>texture[4]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[4]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[4]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[4]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>6</unit>
|
|
|
|
<image><use>texture[6]/image</use></image>
|
|
|
|
<filter><use>texture[6]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[6]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[6]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[6]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<program>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<vertex-shader>Shaders/ws30-ALS-detailed.vert</vertex-shader>
|
2021-10-21 20:31:03 +00:00
|
|
|
<vertex-shader>Shaders/filters-ALS.vert</vertex-shader>
|
|
|
|
<vertex-shader>Shaders/shadows-include.vert</vertex-shader>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<fragment-shader>Shaders/ws30-ALS-detailed.frag</fragment-shader>
|
2021-11-06 08:11:22 +00:00
|
|
|
<fragment-shader>Shaders/ws30-ALS-landclass-search-functions.frag</fragment-shader>
|
2021-10-21 20:31:03 +00:00
|
|
|
<fragment-shader>Shaders/noise.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/hazes.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
|
|
|
|
</program>
|
|
|
|
<uniform>
|
|
|
|
<name>visibility</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>visibility</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>avisibility</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>avisibility</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>hazeLayerAltitude</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>lthickness</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>scattering</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>scattering</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>ground_scattering</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>ground_scattering</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>terminator</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>terminator</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>terrain_alt</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>terrain_alt</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>overcast</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>overcast</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>eye_alt</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>eye_alt</use></value>
|
|
|
|
</uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<uniform>
|
|
|
|
<name>transition_model</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>transition_model</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>hires_overlay_bias</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>hires_overlay_bias</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>snowlevel</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>snow_level</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>snow_thickness_factor</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>snow_thickness_factor</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>dust_cover_factor</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>dust_cover_factor</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>lichen_cover_factor</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value> <use>lichen_cover_factor</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>wetness</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>wetness</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>fogstructure</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>fogstructure</use></value>
|
|
|
|
</uniform>
|
2021-10-21 20:31:03 +00:00
|
|
|
<uniform>
|
|
|
|
<name>cloud_self_shading</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>cloud_self_shading</use></value>
|
|
|
|
</uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<uniform>
|
|
|
|
<name>air_pollution</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>air_pollution</use></value>
|
|
|
|
</uniform>
|
2021-10-21 20:31:03 +00:00
|
|
|
<uniform>
|
|
|
|
<name>moonlight</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>moonlight</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<name>season</name>
|
2021-10-21 20:31:03 +00:00
|
|
|
<type>float</type>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<value><use>season</use></value>
|
2021-10-21 20:31:03 +00:00
|
|
|
</uniform>
|
|
|
|
<!-- filtering -->
|
|
|
|
<uniform>
|
|
|
|
<name>gamma</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>gamma</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>brightness</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>brightness</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_night_vision</name>
|
|
|
|
<type>bool</type>
|
|
|
|
<value><use>use_night_vision</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_IR_vision</name>
|
|
|
|
<type>bool</type>
|
|
|
|
<value><use>use_IR_vision</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_filtering</name>
|
|
|
|
<type>bool</type>
|
|
|
|
<value><use>use_filtering</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>delta_T</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>delta_T</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>fact_grey</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>fact_grey</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>fact_black</name>
|
|
|
|
<type>float</type>
|
|
|
|
<value><use>fact_black</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>display_xsize</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value><use>display_xsize</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>display_ysize</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value><use>display_ysize</use></value>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>quality_level</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value><use>quality_level</use></value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>tquality_level</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value><use>tquality_level</use></value>
|
2021-10-21 20:31:03 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>landclass</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">0</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>textureArray</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">1</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>perlin</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">6</value>
|
|
|
|
</uniform>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<uniform>
|
|
|
|
<name>swatch_size</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value><use>xsize</use></value>
|
|
|
|
</uniform>
|
2021-10-21 20:31:03 +00:00
|
|
|
<!-- 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>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<value>
|
|
|
|
<use>shadows_enabled</use>
|
|
|
|
</value>
|
2021-10-21 20:31:03 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>sun_atlas_size</name>
|
|
|
|
<type>int</type>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<value>
|
|
|
|
<use>sun_atlas_size</use>
|
|
|
|
</value>
|
2021-10-21 20:31:03 +00:00
|
|
|
</uniform>
|
|
|
|
<!-- END shadows include -->
|
|
|
|
</pass>
|
|
|
|
</technique>
|
|
|
|
|
|
|
|
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<!-- ALS low settings technique -->
|
2021-10-21 20:31:03 +00:00
|
|
|
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<technique n="7">
|
2020-11-08 22:44:34 +00:00
|
|
|
<predicate>
|
|
|
|
<and>
|
2021-01-26 20:17:17 +00:00
|
|
|
<property>/sim/rendering/shaders/skydome</property>
|
2020-11-08 22:44:34 +00:00
|
|
|
<or>
|
|
|
|
<less-equal>
|
|
|
|
<value type="float">2.0</value>
|
|
|
|
<glversion/>
|
|
|
|
</less-equal>
|
|
|
|
<and>
|
|
|
|
<extension-supported>GL_ARB_shader_objects</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_shading_language_100</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_vertex_shader</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_fragment_shader</extension-supported>
|
|
|
|
</and>
|
|
|
|
</or>
|
|
|
|
</and>
|
|
|
|
</predicate>
|
2021-01-23 17:15:12 +00:00
|
|
|
|
2020-11-08 22:44:34 +00:00
|
|
|
<pass>
|
|
|
|
<lighting>true</lighting>
|
|
|
|
<material>
|
|
|
|
<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>ambient-and-diffuse</color-mode>
|
|
|
|
</material>
|
2021-01-23 17:15:12 +00:00
|
|
|
<blend><use>transparent</use></blend>
|
2020-11-08 22:44:34 +00:00
|
|
|
<alpha-test><use>transparent</use></alpha-test>
|
|
|
|
<shade-model>smooth</shade-model>
|
|
|
|
<cull-face>back</cull-face>
|
|
|
|
<render-bin>
|
2021-01-23 17:15:12 +00:00
|
|
|
<bin-number><use>render-bin/bin-number</use></bin-number>
|
|
|
|
<bin-name><use>render-bin/bin-name</use></bin-name>
|
2020-11-08 22:44:34 +00:00
|
|
|
</render-bin>
|
2021-01-23 17:15:12 +00:00
|
|
|
|
2021-03-28 18:48:14 +00:00
|
|
|
<!-- texture unit 0 direct from VPBBuilder.cxx -->
|
2020-11-08 22:44:34 +00:00
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>1</unit>
|
2021-01-23 17:15:12 +00:00
|
|
|
<image><use>texture[1]/image</use></image>
|
2020-12-05 13:11:59 +00:00
|
|
|
<filter>nearest-mipmap-nearest</filter>
|
|
|
|
<mag-filter>nearest-mipmap-nearest</mag-filter>
|
2021-01-23 17:15:12 +00:00
|
|
|
<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>
|
2020-11-08 22:44:34 +00:00
|
|
|
</texture-unit>
|
2021-01-23 17:15:12 +00:00
|
|
|
|
2020-11-08 22:44:34 +00:00
|
|
|
<texture-unit>
|
|
|
|
<unit>2</unit>
|
2021-01-23 17:15:12 +00:00
|
|
|
<image><use>texture[2]/image</use></image>
|
|
|
|
<filter><use>texture[2]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[2]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[2]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[2]/internal-format</use></internal-format>
|
2020-11-08 22:44:34 +00:00
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>3</unit>
|
2021-01-23 17:15:12 +00:00
|
|
|
<image><use>texture[3]/image</use></image>
|
|
|
|
<filter><use>texture[3]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[3]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[3]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[3]/internal-format</use></internal-format>
|
2020-11-08 22:44:34 +00:00
|
|
|
</texture-unit>
|
|
|
|
|
2020-11-12 20:47:08 +00:00
|
|
|
<texture-unit>
|
|
|
|
<unit>4</unit>
|
2021-01-23 17:15:12 +00:00
|
|
|
<image><use>texture[4]/image</use></image>
|
|
|
|
<filter><use>texture[4]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[4]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[4]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[4]/internal-format</use></internal-format>
|
2020-11-12 20:47:08 +00:00
|
|
|
</texture-unit>
|
|
|
|
|
2021-01-26 20:17:17 +00:00
|
|
|
<texture-unit>
|
|
|
|
<unit>6</unit>
|
|
|
|
<image><use>texture[6]/image</use></image>
|
|
|
|
<filter><use>texture[6]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[6]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[6]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[6]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
2020-11-08 22:44:34 +00:00
|
|
|
<program>
|
2021-01-23 17:15:12 +00:00
|
|
|
<vertex-shader>Shaders/ws30-ALS.vert</vertex-shader>
|
2020-11-10 00:45:54 +00:00
|
|
|
<vertex-shader>Shaders/shadows-include.vert</vertex-shader>
|
2021-01-23 17:15:12 +00:00
|
|
|
<fragment-shader>Shaders/ws30-ALS.frag</fragment-shader>
|
WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.
Shader selection based on terrain quality setting:
- Ultra - ws30-ALS-ultra frag/vert.
- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.
- Low - ws30-ALS frag/vert.
Changelog:
ws30-ALS vertex shaders:
- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.
ws30-ALS.frag:
- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.
ws30-ALS-ultra.frag and ws30-ALS-detailed.frag
- World pos is assigned a value to allow noise functions to compile.
- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.
- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.
Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-09 14:25:09 +00:00
|
|
|
<fragment-shader>Shaders/ws30-ALS-landclass-search-functions.frag</fragment-shader>
|
2020-11-10 00:45:54 +00:00
|
|
|
<fragment-shader>Shaders/hazes.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/noise.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
2021-08-21 16:15:15 +00:00
|
|
|
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
|
2020-11-08 22:44:34 +00:00
|
|
|
</program>
|
|
|
|
<uniform>
|
|
|
|
<name>visibility</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>visibility</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>avisibility</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>avisibility</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>hazeLayerAltitude</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>lthickness</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>scattering</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>scattering</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>ground_scattering</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>ground_scattering</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>terminator</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>terminator</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>terrain_alt</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>terrain_alt</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>overcast</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>overcast</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>eye_alt</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>eye_alt</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>cloud_self_shading</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>cloud_self_shading</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>moonlight</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>moonlight</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>air_pollution</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>air_pollution</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<!-- filtering -->
|
|
|
|
<uniform>
|
|
|
|
<name>gamma</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>gamma</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>brightness</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>brightness</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_night_vision</name>
|
|
|
|
<type>bool</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>use_night_vision</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_IR_vision</name>
|
|
|
|
<type>bool</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>use_IR_vision</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>use_filtering</name>
|
|
|
|
<type>bool</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>use_filtering</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>delta_T</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>delta_T</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>fact_grey</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>fact_grey</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>fact_black</name>
|
|
|
|
<type>float</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>fact_black</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>display_xsize</name>
|
|
|
|
<type>int</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>display_xsize</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>display_ysize</name>
|
|
|
|
<type>int</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>display_ysize</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>landclass</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">0</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
2021-10-21 20:31:03 +00:00
|
|
|
<name>textureArray</name>
|
2020-11-08 22:44:34 +00:00
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">1</value>
|
|
|
|
</uniform>
|
2021-01-26 20:17:17 +00:00
|
|
|
|
2020-11-08 22:44:34 +00:00
|
|
|
<!-- 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>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>shadows_enabled</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>sun_atlas_size</name>
|
|
|
|
<type>int</type>
|
2021-01-23 17:15:12 +00:00
|
|
|
<value><use>sun_atlas_size</use></value>
|
2020-11-08 22:44:34 +00:00
|
|
|
</uniform>
|
|
|
|
<!-- END shadows include -->
|
|
|
|
</pass>
|
|
|
|
</technique>
|
2021-01-23 17:15:12 +00:00
|
|
|
|
2021-01-26 20:17:17 +00:00
|
|
|
<!-- Non-ALS technique with texture rotation -->
|
|
|
|
<technique n="11">
|
|
|
|
<predicate>
|
|
|
|
<and>
|
|
|
|
<property>/sim/rendering/shaders/quality-level</property>
|
|
|
|
<or>
|
|
|
|
<less-equal>
|
|
|
|
<value type="float">2.0</value>
|
|
|
|
<glversion/>
|
|
|
|
</less-equal>
|
|
|
|
<and>
|
|
|
|
<extension-supported>GL_ARB_shader_objects</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_shading_language_100</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_vertex_shader</extension-supported>
|
|
|
|
<extension-supported>GL_ARB_fragment_shader</extension-supported>
|
|
|
|
</and>
|
|
|
|
</or>
|
|
|
|
</and>
|
|
|
|
</predicate>
|
|
|
|
|
|
|
|
<pass>
|
|
|
|
<lighting>true</lighting>
|
|
|
|
<material>
|
|
|
|
<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>ambient-and-diffuse</color-mode>
|
|
|
|
</material>
|
|
|
|
<blend><use>transparent</use></blend>
|
|
|
|
<alpha-test><use>transparent</use></alpha-test>
|
|
|
|
<shade-model>smooth</shade-model>
|
|
|
|
<cull-face>back</cull-face>
|
|
|
|
<render-bin>
|
|
|
|
<bin-number><use>render-bin/bin-number</use></bin-number>
|
|
|
|
<bin-name><use>render-bin/bin-name</use></bin-name>
|
|
|
|
</render-bin>
|
|
|
|
|
2021-03-28 18:48:14 +00:00
|
|
|
<!-- texture unit 0 direct from VPBBuilder.cxx -->
|
2021-01-26 20:17:17 +00:00
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>1</unit>
|
|
|
|
<image><use>texture[1]/image</use></image>
|
|
|
|
<filter>nearest-mipmap-nearest</filter>
|
|
|
|
<mag-filter>nearest-mipmap-nearest</mag-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>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>2</unit>
|
|
|
|
<image><use>texture[2]/image</use></image>
|
|
|
|
<filter><use>texture[2]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[2]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[2]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[2]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>3</unit>
|
|
|
|
<image><use>texture[3]/image</use></image>
|
|
|
|
<filter><use>texture[3]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[3]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[3]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[3]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>4</unit>
|
|
|
|
<image><use>texture[4]/image</use></image>
|
|
|
|
<filter><use>texture[4]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[4]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[4]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[4]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>6</unit>
|
|
|
|
<image><use>texture[6]/image</use></image>
|
|
|
|
<filter><use>texture[6]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[6]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[6]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[6]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<program>
|
2021-11-10 22:58:44 +00:00
|
|
|
<vertex-shader>Shaders/include_fog.vert</vertex-shader>
|
|
|
|
<vertex-shader>Shaders/shadows-include.vert</vertex-shader>
|
2021-01-26 20:17:17 +00:00
|
|
|
<vertex-shader>Shaders/ws30.vert</vertex-shader>
|
|
|
|
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
|
|
|
|
<fragment-shader n="1">Shaders/ws30-q1.frag</fragment-shader>
|
2021-11-10 22:58:44 +00:00
|
|
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
|
2021-01-26 20:17:17 +00:00
|
|
|
</program>
|
|
|
|
|
|
|
|
<uniform>
|
|
|
|
<name>landclass</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">0</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>atlas</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">1</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
2021-11-10 22:58:44 +00:00
|
|
|
<name>perlin</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">6</value>
|
2021-01-26 20:17:17 +00:00
|
|
|
</uniform>
|
|
|
|
<uniform>
|
2021-11-10 22:58:44 +00:00
|
|
|
<name>colorMode</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value>2</value>
|
|
|
|
<!-- AMBIENT_AND_DIFFUSE -->
|
2021-01-26 20:17:17 +00:00
|
|
|
</uniform>
|
|
|
|
</pass>
|
|
|
|
</technique>
|
|
|
|
|
2021-01-23 17:15:12 +00:00
|
|
|
<!-- Minimal technique -->
|
|
|
|
<technique n="12">
|
|
|
|
<pass>
|
|
|
|
<lighting>true</lighting>
|
|
|
|
<material>
|
|
|
|
<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>ambient-and-diffuse</color-mode>
|
|
|
|
</material>
|
|
|
|
<blend><use>transparent</use></blend>
|
|
|
|
<alpha-test><use>transparent</use></alpha-test>
|
|
|
|
<shade-model>smooth</shade-model>
|
|
|
|
<cull-face>back</cull-face>
|
|
|
|
<render-bin>
|
|
|
|
<bin-number><use>render-bin/bin-number</use></bin-number>
|
|
|
|
<bin-name><use>render-bin/bin-name</use></bin-name>
|
|
|
|
</render-bin>
|
|
|
|
|
2021-03-28 18:48:14 +00:00
|
|
|
<!-- texture unit 0 direct from VPBBuilder.cxx -->
|
2021-01-23 17:15:12 +00:00
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>1</unit>
|
|
|
|
<image><use>texture[1]/image</use></image>
|
|
|
|
<filter>nearest-mipmap-nearest</filter>
|
|
|
|
<mag-filter>nearest-mipmap-nearest</mag-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>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>2</unit>
|
|
|
|
<image><use>texture[2]/image</use></image>
|
|
|
|
<filter><use>texture[2]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[2]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[2]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[2]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>3</unit>
|
|
|
|
<image><use>texture[3]/image</use></image>
|
|
|
|
<filter><use>texture[3]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[3]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[3]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[3]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>4</unit>
|
|
|
|
<image><use>texture[4]/image</use></image>
|
|
|
|
<filter><use>texture[4]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[4]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[4]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[4]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<program>
|
2021-11-10 22:58:44 +00:00
|
|
|
<vertex-shader>Shaders/include_fog.vert</vertex-shader>
|
|
|
|
<vertex-shader>Shaders/shadows-include.vert</vertex-shader>
|
2021-01-23 17:15:12 +00:00
|
|
|
<vertex-shader>Shaders/ws30.vert</vertex-shader>
|
|
|
|
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
|
|
|
|
<fragment-shader n="1">Shaders/ws30.frag</fragment-shader>
|
2021-11-10 22:58:44 +00:00
|
|
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
|
2021-01-23 17:15:12 +00:00
|
|
|
</program>
|
|
|
|
|
|
|
|
<uniform>
|
|
|
|
<name>landclass</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">0</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>atlas</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">1</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
2021-11-10 22:58:44 +00:00
|
|
|
<name>colorMode</name>
|
|
|
|
<type>int</type>
|
|
|
|
<value>2</value>
|
|
|
|
<!-- AMBIENT_AND_DIFFUSE -->
|
2021-01-23 17:15:12 +00:00
|
|
|
</uniform>
|
|
|
|
</pass>
|
|
|
|
</technique>
|
|
|
|
|
2021-07-24 11:35:53 +00:00
|
|
|
<technique n="109">
|
|
|
|
<scheme>hdr-geometry</scheme>
|
|
|
|
<pass>
|
2021-08-17 18:58:30 +00:00
|
|
|
<!-- Reverse floating point depth buffer -->
|
|
|
|
<depth>
|
|
|
|
<function>gequal</function>
|
|
|
|
<near>1.0</near>
|
|
|
|
<far>0.0</far>
|
|
|
|
</depth>
|
2021-08-23 10:44:26 +00:00
|
|
|
<stencil>
|
|
|
|
<function>always</function>
|
|
|
|
<value>9</value>
|
|
|
|
<pass>replace</pass>
|
|
|
|
</stencil>
|
2021-08-17 18:58:30 +00:00
|
|
|
|
2021-07-24 11:35:53 +00:00
|
|
|
<blend><use>transparent</use></blend>
|
|
|
|
<alpha-test><use>transparent</use></alpha-test>
|
|
|
|
<shade-model>smooth</shade-model>
|
|
|
|
<cull-face>back</cull-face>
|
|
|
|
<render-bin>
|
|
|
|
<bin-number><use>render-bin/bin-number</use></bin-number>
|
|
|
|
<bin-name><use>render-bin/bin-name</use></bin-name>
|
|
|
|
</render-bin>
|
|
|
|
|
|
|
|
<!-- texture unit 0 direct from VPBBuilder.cxx -->
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>1</unit>
|
|
|
|
<image><use>texture[1]/image</use></image>
|
|
|
|
<filter>nearest-mipmap-nearest</filter>
|
|
|
|
<mag-filter>nearest-mipmap-nearest</mag-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>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>2</unit>
|
|
|
|
<image><use>texture[2]/image</use></image>
|
|
|
|
<filter><use>texture[2]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[2]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[2]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[2]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>3</unit>
|
|
|
|
<image><use>texture[3]/image</use></image>
|
|
|
|
<filter><use>texture[3]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[3]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[3]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[3]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>4</unit>
|
|
|
|
<image><use>texture[4]/image</use></image>
|
|
|
|
<filter><use>texture[4]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[4]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[4]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[4]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<texture-unit>
|
|
|
|
<unit>6</unit>
|
|
|
|
<image><use>texture[6]/image</use></image>
|
|
|
|
<filter><use>texture[6]/filter</use></filter>
|
|
|
|
<wrap-s><use>texture[6]/wrap-s</use></wrap-s>
|
|
|
|
<wrap-t><use>texture[6]/wrap-t</use></wrap-t>
|
|
|
|
<internal-format><use>texture[6]/internal-format</use></internal-format>
|
|
|
|
</texture-unit>
|
|
|
|
|
|
|
|
<program>
|
|
|
|
<vertex-shader>Shaders/HDR/geometry.vert</vertex-shader>
|
|
|
|
<fragment-shader>Shaders/HDR/ws30.frag</fragment-shader>
|
|
|
|
<fragment-shader>Shaders/HDR/gbuffer-include.frag</fragment-shader>
|
|
|
|
</program>
|
|
|
|
|
|
|
|
<uniform>
|
|
|
|
<name>landclass</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">0</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>atlas</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">1</value>
|
|
|
|
</uniform>
|
|
|
|
<uniform>
|
|
|
|
<name>perlin</name>
|
|
|
|
<type>sampler-2d</type>
|
|
|
|
<value type="int">6</value>
|
|
|
|
</uniform>
|
|
|
|
</pass>
|
|
|
|
</technique>
|
|
|
|
|
2020-11-08 22:44:34 +00:00
|
|
|
</PropertyList>
|