Photoscenery: Initial commit
Author: Nathaniel Warner
This commit is contained in:
parent
580e1d4859
commit
76f7f1b698
20 changed files with 368 additions and 159 deletions
|
@ -153,6 +153,10 @@
|
|||
<predicate>
|
||||
<and>
|
||||
<property>/sim/rendering/shaders/skydome</property>
|
||||
<equal>
|
||||
<value type="float">0.0</value>
|
||||
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||
</equal>
|
||||
<and>
|
||||
<less-equal>
|
||||
<value type="float">6.0</value>
|
||||
|
@ -162,7 +166,7 @@
|
|||
<value type="float">6.0</value>
|
||||
<float-property>/sim/rendering/shaders/transition</float-property>
|
||||
</less-equal>
|
||||
<less-equal>
|
||||
<less-equal>
|
||||
<value type="float">1.0</value>
|
||||
<float-property>/sim/rendering/shaders/crop</float-property>
|
||||
</less-equal>
|
||||
|
|
|
@ -147,6 +147,10 @@
|
|||
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||
<attribute>
|
||||
<name>orthophotoTexCoord</name>
|
||||
<index>14</index>
|
||||
</attribute>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -621,6 +625,11 @@
|
|||
<type>int</type>
|
||||
<value>2</value> <!-- AMBIENT_AND_DIFFUSE -->
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>orthophotoTexture</name>
|
||||
<type>sampler-2d</type>
|
||||
<value type="int">15</value>
|
||||
</uniform>
|
||||
<!-- BEGIN shadows include -->
|
||||
<uniform>
|
||||
<name>shadow_tex</name>
|
||||
|
|
|
@ -23,8 +23,12 @@
|
|||
<technique n="9">
|
||||
<predicate>
|
||||
<and>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<property>/sim/rendering/shaders/crop</property>
|
||||
<equal>
|
||||
<value type="float">0.0</value>
|
||||
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||
</equal>
|
||||
<or>
|
||||
<less-equal>
|
||||
<value type="float">2.0</value>
|
||||
|
|
|
@ -73,8 +73,12 @@
|
|||
<technique n="9">
|
||||
<predicate>
|
||||
<and>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<property>/sim/rendering/shaders/transition</property>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<property>/sim/rendering/shaders/transition</property>
|
||||
<equal>
|
||||
<value type="float">0.0</value>
|
||||
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||
</equal>
|
||||
<or>
|
||||
<less-equal>
|
||||
<value type="float">2.0</value>
|
||||
|
|
|
@ -140,6 +140,10 @@
|
|||
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||
<attribute>
|
||||
<name>orthophotoTexCoord</name>
|
||||
<index>14</index>
|
||||
</attribute>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -614,6 +618,11 @@
|
|||
<type>int</type>
|
||||
<value>2</value> <!-- AMBIENT_AND_DIFFUSE -->
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>orthophotoTexture</name>
|
||||
<type>sampler-2d</type>
|
||||
<value type="int">15</value>
|
||||
</uniform>
|
||||
<!-- BEGIN shadows include -->
|
||||
<uniform>
|
||||
<name>shadow_tex</name>
|
||||
|
|
|
@ -50,6 +50,10 @@
|
|||
<and>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<property>/sim/rendering/shaders/landmass</property>
|
||||
<equal>
|
||||
<value type="float">0.0</value>
|
||||
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||
</equal>
|
||||
<less-equal>
|
||||
<value type="float">4.0</value>
|
||||
<float-property>/sim/rendering/shaders/landmass</float-property>
|
||||
|
@ -384,6 +388,10 @@
|
|||
<and>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<property>/sim/rendering/shaders/landmass</property>
|
||||
<equal>
|
||||
<value type="float">0.0</value>
|
||||
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||
</equal>
|
||||
<or>
|
||||
<less-equal>
|
||||
<value type="float">2.0</value>
|
||||
|
|
|
@ -330,6 +330,10 @@
|
|||
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||
<attribute>
|
||||
<name>orthophotoTexCoord</name>
|
||||
<index>14</index>
|
||||
</attribute>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>grain_strength</name>
|
||||
|
@ -835,6 +839,11 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>orthophotoTexture</name>
|
||||
<type>sampler-2d</type>
|
||||
<value type="int">15</value>
|
||||
</uniform>
|
||||
<!-- BEGIN shadows include -->
|
||||
<uniform>
|
||||
<name>shadow_tex</name>
|
||||
|
@ -973,6 +982,10 @@
|
|||
<fragment-shader>Shaders/hazes.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||
<attribute>
|
||||
<name>orthophotoTexCoord</name>
|
||||
<index>14</index>
|
||||
</attribute>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -1161,6 +1174,11 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>orthophotoTexture</name>
|
||||
<type>sampler-2d</type>
|
||||
<value type="int">15</value>
|
||||
</uniform>
|
||||
<!-- BEGIN shadows include -->
|
||||
<uniform>
|
||||
<name>shadow_tex</name>
|
||||
|
@ -1279,9 +1297,13 @@
|
|||
<vertex-shader>Shaders/shadows-include.vert</vertex-shader>
|
||||
<fragment-shader>Shaders/terrain-ALS-base.frag</fragment-shader>
|
||||
<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>
|
||||
<fragment-shader>Shaders/noise.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||
<attribute>
|
||||
<name>orthophotoTexCoord</name>
|
||||
<index>14</index>
|
||||
</attribute>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -1405,6 +1427,11 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>orthophotoTexture</name>
|
||||
<type>sampler-2d</type>
|
||||
<value type="int">15</value>
|
||||
</uniform>
|
||||
<!-- BEGIN shadows include -->
|
||||
<uniform>
|
||||
<name>shadow_tex</name>
|
||||
|
@ -1436,8 +1463,13 @@
|
|||
<technique n="11">
|
||||
<predicate>
|
||||
<and>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<property>/sim/rendering/shaders/generic</property>
|
||||
<or>
|
||||
<property>/sim/rendering/photoscenery/enabled</property>
|
||||
<and>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<property>/sim/rendering/shaders/generic</property>
|
||||
</and>
|
||||
</or>
|
||||
<or>
|
||||
<less-equal>
|
||||
<value type="float">2.0</value>
|
||||
|
@ -1529,6 +1561,10 @@
|
|||
<fragment-shader>Shaders/default.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/include_fog.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||
<attribute>
|
||||
<name>orthophotoTexCoord</name>
|
||||
<index>14</index>
|
||||
</attribute>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>visibility</name>
|
||||
|
@ -1571,6 +1607,11 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>orthophotoTexture</name>
|
||||
<type>sampler-2d</type>
|
||||
<value type="int">15</value>
|
||||
</uniform>
|
||||
<!-- BEGIN shadows include -->
|
||||
<uniform>
|
||||
<name>shadow_tex</name>
|
||||
|
|
|
@ -160,6 +160,10 @@
|
|||
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||
<attribute>
|
||||
<name>orthophotoTexCoord</name>
|
||||
<index>14</index>
|
||||
</attribute>
|
||||
</program>
|
||||
<uniform>
|
||||
<name>grain_strength</name>
|
||||
|
@ -665,6 +669,11 @@
|
|||
<value>2</value>
|
||||
<!-- AMBIENT_AND_DIFFUSE -->
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>orthophotoTexture</name>
|
||||
<type>sampler-2d</type>
|
||||
<value type="int">15</value>
|
||||
</uniform>
|
||||
<!-- BEGIN shadows include -->
|
||||
<uniform>
|
||||
<name>shadow_tex</name>
|
||||
|
|
|
@ -54,6 +54,10 @@
|
|||
<and>
|
||||
<property>/sim/rendering/shaders/skydome</property>
|
||||
<property>/sim/rendering/shaders/urban</property>
|
||||
<equal>
|
||||
<value type="float">0.0</value>
|
||||
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||
</equal>
|
||||
<less-equal>
|
||||
<value type="float">4.0</value>
|
||||
<float-property>/sim/rendering/shaders/urban</float-property>
|
||||
|
@ -780,6 +784,10 @@
|
|||
<and>
|
||||
<property>/sim/rendering/shaders/skydome</property>
|
||||
<property>/sim/rendering/shaders/urban</property>
|
||||
<equal>
|
||||
<value type="float">0.0</value>
|
||||
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||
</equal>
|
||||
<less-equal>
|
||||
<value type="float">1.0</value>
|
||||
<float-property>/sim/rendering/shaders/urban</float-property>
|
||||
|
@ -1460,6 +1468,10 @@
|
|||
<and>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<property>/sim/rendering/shaders/urban</property>
|
||||
<equal>
|
||||
<value type="float">0.0</value>
|
||||
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||
</equal>
|
||||
<less-equal>
|
||||
<value type="float">4.0</value>
|
||||
<float-property>/sim/rendering/shaders/urban</float-property>
|
||||
|
@ -1748,6 +1760,10 @@
|
|||
<and>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<property>/sim/rendering/shaders/urban</property>
|
||||
<equal>
|
||||
<value type="float">0.0</value>
|
||||
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||
</equal>
|
||||
<less-equal>
|
||||
<value type="float">1.0</value>
|
||||
<float-property>/sim/rendering/shaders/urban</float-property>
|
||||
|
|
|
@ -9,11 +9,13 @@ varying vec3 relPos;
|
|||
varying vec3 worldPos;
|
||||
varying vec2 rawPos;
|
||||
varying vec3 ecViewdir;
|
||||
varying vec2 orthoTexCoord;
|
||||
|
||||
|
||||
uniform sampler2D texture;
|
||||
uniform sampler2D overlay_texture;
|
||||
uniform sampler2D grain_texture;
|
||||
uniform sampler2D orthophotoTexture;
|
||||
|
||||
varying float steepness;
|
||||
|
||||
|
@ -54,6 +56,8 @@ uniform int use_searchlight;
|
|||
uniform int use_landing_light;
|
||||
uniform int use_alt_landing_light;
|
||||
|
||||
uniform bool orthophotoAvailable;
|
||||
|
||||
const float EarthRadius = 5800000.0;
|
||||
const float terminator_width = 200000.0;
|
||||
|
||||
|
@ -163,6 +167,13 @@ float noise_2000m = Noise3D(worldPos.xyz, 2000.0);
|
|||
texel = texture2D(texture, gl_TexCoord[0].st * base_layer_magnification);
|
||||
float local_autumn_factor = texel.a;
|
||||
|
||||
if (orthophotoAvailable) {
|
||||
vec4 sat_texel = texture2D(orthophotoTexture, orthoTexCoord);
|
||||
if (sat_texel.a > 0) {
|
||||
texel.rgb = sat_texel.rgb;
|
||||
}
|
||||
}
|
||||
|
||||
float distortion_factor = 1.0;
|
||||
float noise_term;
|
||||
float snow_alpha;
|
||||
|
|
|
@ -5,12 +5,16 @@
|
|||
|
||||
varying vec4 diffuse_term;
|
||||
varying vec3 normal;
|
||||
varying vec2 orthoTexCoord;
|
||||
|
||||
uniform sampler2D texture;
|
||||
uniform sampler2D orthophotoTexture;
|
||||
|
||||
////fog "include" /////
|
||||
uniform int fogType;
|
||||
|
||||
uniform bool orthophotoAvailable;
|
||||
|
||||
vec3 fog_Func(vec3 color, int type);
|
||||
//////////////////////
|
||||
|
||||
|
@ -54,6 +58,14 @@ void main()
|
|||
// is closer to what the OpenGL fixed function pipeline does.
|
||||
color = clamp(color, 0.0, 1.0);
|
||||
texel = texture2D(texture, gl_TexCoord[0].st);
|
||||
|
||||
if (orthophotoAvailable) {
|
||||
vec4 sat_texel = texture2D(orthophotoTexture, orthoTexCoord);
|
||||
if (sat_texel.a > 0) {
|
||||
texel.rgb = sat_texel.rgb;
|
||||
}
|
||||
}
|
||||
|
||||
fragColor = color * texel + specular;
|
||||
|
||||
fragColor.rgb = fog_Func(fragColor.rgb, fogType);
|
||||
|
|
|
@ -12,12 +12,15 @@
|
|||
#define MODE_DIFFUSE 1
|
||||
#define MODE_AMBIENT_AND_DIFFUSE 2
|
||||
|
||||
attribute vec2 orthophotoTexCoord;
|
||||
|
||||
// The constant term of the lighting equation that doesn't depend on
|
||||
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
||||
// component is set to 1 for front, 0 for back in order to work around
|
||||
// bugs with gl_FrontFacing in the fragment shader.
|
||||
varying vec4 diffuse_term;
|
||||
varying vec3 normal;
|
||||
varying vec2 orthoTexCoord;
|
||||
|
||||
uniform int colorMode;
|
||||
|
||||
|
@ -33,6 +36,7 @@ void main()
|
|||
{
|
||||
gl_Position = ftransform();
|
||||
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
||||
orthoTexCoord = orthophotoTexCoord;
|
||||
normal = gl_NormalMatrix * gl_Normal;
|
||||
vec4 ambient_color, diffuse_color;
|
||||
if (colorMode == MODE_DIFFUSE) {
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
#define MODE_DIFFUSE 1
|
||||
#define MODE_AMBIENT_AND_DIFFUSE 2
|
||||
|
||||
attribute vec2 orthophotoTexCoord;
|
||||
|
||||
// The constant term of the lighting equation that doesn't depend on
|
||||
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
||||
// component is set to 1 for front, 0 for back in order to work around
|
||||
|
@ -22,6 +24,7 @@
|
|||
varying vec4 diffuse_term;
|
||||
varying vec3 normal;
|
||||
varying vec3 relPos;
|
||||
varying vec2 orthoTexCoord;
|
||||
|
||||
varying float yprime_alt;
|
||||
varying float mie_angle;
|
||||
|
|
|
@ -9,10 +9,12 @@ varying vec3 relPos;
|
|||
|
||||
|
||||
uniform sampler2D texture;
|
||||
uniform sampler2D orthophotoTexture;
|
||||
|
||||
|
||||
varying float yprime_alt;
|
||||
varying float mie_angle;
|
||||
varying vec2 orthoTexCoord;
|
||||
|
||||
|
||||
uniform float visibility;
|
||||
|
@ -25,6 +27,8 @@ uniform float overcast;
|
|||
uniform float eye_alt;
|
||||
uniform float cloud_self_shading;
|
||||
|
||||
uniform bool orthophotoAvailable;
|
||||
|
||||
const float EarthRadius = 5800000.0;
|
||||
const float terminator_width = 200000.0;
|
||||
|
||||
|
@ -86,6 +90,14 @@ void main()
|
|||
// is closer to what the OpenGL fixed function pipeline does.
|
||||
color = clamp(color, 0.0, 1.0);
|
||||
texel = texture2D(texture, gl_TexCoord[0].st);
|
||||
|
||||
if (orthophotoAvailable) {
|
||||
vec4 sat_texel = texture2D(orthophotoTexture, orthoTexCoord);
|
||||
if (sat_texel.a > 0) {
|
||||
texel.rgb = sat_texel.rgb;
|
||||
}
|
||||
}
|
||||
|
||||
fragColor = color * texel + specular;
|
||||
|
||||
|
||||
|
|
|
@ -8,12 +8,14 @@ varying vec3 normal;
|
|||
varying vec3 relPos;
|
||||
varying vec2 rawPos;
|
||||
varying vec3 worldPos;
|
||||
varying vec2 orthoTexCoord;
|
||||
|
||||
|
||||
|
||||
uniform sampler2D texture;
|
||||
uniform sampler2D detail_texture;
|
||||
uniform sampler2D mix_texture;
|
||||
uniform sampler2D orthophotoTexture;
|
||||
|
||||
//varying float yprime_alt;
|
||||
//varying float mie_angle;
|
||||
|
@ -41,6 +43,8 @@ uniform float hires_overlay_bias;
|
|||
uniform int quality_level;
|
||||
uniform int tquality_level;
|
||||
|
||||
uniform bool orthophotoAvailable;
|
||||
|
||||
const float EarthRadius = 5800000.0;
|
||||
const float terminator_width = 200000.0;
|
||||
|
||||
|
@ -123,14 +127,24 @@ float noise_2000m = Noise3D(worldPos.xyz, 2000.0);
|
|||
|
||||
|
||||
// get the texels
|
||||
int flag = 1;
|
||||
int mix_flag = 1;
|
||||
|
||||
texel = texture2D(texture, gl_TexCoord[0].st);
|
||||
float local_autumn_factor = texel.a;
|
||||
|
||||
if (orthophotoAvailable) {
|
||||
vec4 sat_texel = texture2D(orthophotoTexture, orthoTexCoord);
|
||||
if (sat_texel.a > 0) {
|
||||
texel.rgb = sat_texel.rgb;
|
||||
flag = 0;
|
||||
mix_flag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
float distortion_factor = 1.0;
|
||||
vec2 stprime;
|
||||
int flag = 1;
|
||||
int mix_flag = 1;
|
||||
|
||||
float noise_term;
|
||||
float snow_alpha;
|
||||
|
||||
|
@ -155,14 +169,14 @@ float noise_2000m = Noise3D(worldPos.xyz, 2000.0);
|
|||
|
||||
}
|
||||
|
||||
if (tquality_level > 2)
|
||||
if ((tquality_level > 2) && (mix_flag == 1))
|
||||
{
|
||||
mix_texel = texture2D(mix_texture, gl_TexCoord[0].st * 1.3);
|
||||
if (mix_texel.a <0.1) {mix_flag = 0;}
|
||||
}
|
||||
|
||||
|
||||
if (tquality_level > 3)
|
||||
if (tquality_level > 3 && (flag == 1))
|
||||
{
|
||||
stprime = vec2 (0.86*gl_TexCoord[0].s + 0.5*gl_TexCoord[0].t, 0.5*gl_TexCoord[0].s - 0.86*gl_TexCoord[0].t);
|
||||
//distortion_factor = 0.9375 + (1.0 * nvL[2]);
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
#define MODE_DIFFUSE 1
|
||||
#define MODE_AMBIENT_AND_DIFFUSE 2
|
||||
|
||||
attribute vec2 orthophotoTexCoord;
|
||||
|
||||
// The constant term of the lighting equation that doesn't depend on
|
||||
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
||||
// component is set to 1 for front, 0 for back in order to work around
|
||||
|
@ -24,6 +26,7 @@ varying vec3 normal;
|
|||
varying vec3 relPos;
|
||||
varying vec2 rawPos;
|
||||
varying vec3 worldPos;
|
||||
varying vec2 orthoTexCoord;
|
||||
|
||||
|
||||
varying float mie_angle;
|
||||
|
@ -95,6 +98,7 @@ void main()
|
|||
//vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex;
|
||||
gl_Position = ftransform();
|
||||
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
||||
orthoTexCoord = orthophotoTexCoord;
|
||||
normal = gl_NormalMatrix * gl_Normal;
|
||||
//nvec = (gl_NormalMatrix * gl_Normal).xy;
|
||||
vec4 ambient_color, diffuse_color;
|
||||
|
|
|
@ -10,6 +10,7 @@ varying vec2 rawPos;
|
|||
varying vec3 worldPos;
|
||||
varying vec3 ecViewdir;
|
||||
varying vec2 grad_dir;
|
||||
varying vec2 orthoTexCoord;
|
||||
|
||||
|
||||
uniform sampler2D texture;
|
||||
|
@ -18,6 +19,7 @@ uniform sampler2D mix_texture;
|
|||
uniform sampler2D grain_texture;
|
||||
uniform sampler2D dot_texture;
|
||||
uniform sampler2D gradient_texture;
|
||||
uniform sampler2D orthophotoTexture;
|
||||
|
||||
|
||||
varying float steepness;
|
||||
|
@ -62,6 +64,8 @@ uniform int use_searchlight;
|
|||
uniform int use_landing_light;
|
||||
uniform int use_alt_landing_light;
|
||||
|
||||
uniform bool orthophotoAvailable;
|
||||
|
||||
const float EarthRadius = 5800000.0;
|
||||
const float terminator_width = 200000.0;
|
||||
|
||||
|
@ -233,6 +237,16 @@ float snownoise_50m = mix(noise_50m, slopenoise_100m, clamp(3.0*(1.0-steepness),
|
|||
|
||||
texel = texture2D(texture, gl_TexCoord[0].st);
|
||||
float local_autumn_factor = texel.a;
|
||||
|
||||
if (orthophotoAvailable) {
|
||||
vec4 sat_texel = texture2D(orthophotoTexture, orthoTexCoord);
|
||||
if (sat_texel.a > 0) {
|
||||
texel.rgb = sat_texel.rgb;
|
||||
flag = 0;
|
||||
mix_flag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
grain_texel = texture2D(grain_texture, gl_TexCoord[0].st * 25.0);
|
||||
gradient_texel = texture2D(gradient_texture, gl_TexCoord[0].st * 4.0);
|
||||
|
||||
|
@ -264,18 +278,23 @@ float snownoise_50m = mix(noise_50m, slopenoise_100m, clamp(3.0*(1.0-steepness),
|
|||
}
|
||||
|
||||
// the mixture/gradient texture
|
||||
mix_texel = texture2D(mix_texture, gl_TexCoord[0].st * 1.3);
|
||||
if (mix_texel.a <0.1) {mix_flag = 0;}
|
||||
if (mix_flag == 1) {
|
||||
mix_texel = texture2D(mix_texture, gl_TexCoord[0].st * 1.3);
|
||||
if (mix_texel.a <0.1) {mix_flag = 0;}
|
||||
}
|
||||
|
||||
// the hires overlay texture is loaded with parallax mapping
|
||||
|
||||
stprime = vec2 (0.86*gl_TexCoord[0].s + 0.5*gl_TexCoord[0].t, 0.5*gl_TexCoord[0].s - 0.86*gl_TexCoord[0].t);
|
||||
distortion_factor = 0.97 + 0.06 * noise_500m;
|
||||
stprime = stprime * distortion_factor * 15.0;
|
||||
stprime = stprime + normalize(relPos).xy * 0.022 * (noise_10m + 0.5 * noise_5m +0.25 * noise_2m - 0.875 );
|
||||
if (flag == 1) {
|
||||
stprime = vec2 (0.86*gl_TexCoord[0].s + 0.5*gl_TexCoord[0].t, 0.5*gl_TexCoord[0].s - 0.86*gl_TexCoord[0].t);
|
||||
distortion_factor = 0.97 + 0.06 * noise_500m;
|
||||
stprime = stprime * distortion_factor * 15.0;
|
||||
stprime = stprime + normalize(relPos).xy * 0.022 * (noise_10m + 0.5 * noise_5m +0.25 * noise_2m - 0.875 );
|
||||
|
||||
detail_texel = texture2D(detail_texture, stprime);
|
||||
if (detail_texel.a <0.1) {flag = 0;}
|
||||
}
|
||||
|
||||
detail_texel = texture2D(detail_texture, stprime);
|
||||
if (detail_texel.a <0.1) {flag = 0;}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
#define MODE_DIFFUSE 1
|
||||
#define MODE_AMBIENT_AND_DIFFUSE 2
|
||||
|
||||
attribute vec2 orthophotoTexCoord;
|
||||
|
||||
// The constant term of the lighting equation that doesn't depend on
|
||||
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
||||
// component is set to 1 for front, 0 for back in order to work around
|
||||
|
@ -26,6 +28,7 @@ varying vec2 rawPos;
|
|||
varying vec3 worldPos;
|
||||
varying vec3 ecViewdir;
|
||||
varying vec2 grad_dir;
|
||||
varying vec2 orthoTexCoord;
|
||||
|
||||
varying float mie_angle;
|
||||
varying float steepness;
|
||||
|
@ -110,6 +113,7 @@ void main()
|
|||
//vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex;
|
||||
//gl_Position = ftransform();
|
||||
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
||||
orthoTexCoord = orthophotoTexCoord;
|
||||
normal = gl_NormalMatrix * gl_Normal;
|
||||
//nvec = (gl_NormalMatrix * gl_Normal).xy;
|
||||
vec4 ambient_color, diffuse_color;
|
||||
|
|
|
@ -58,6 +58,11 @@ Started September 2000 by David Megginson, david@megginson.com
|
|||
<enabled type="bool" userarchive="y">false</enabled>
|
||||
<sun-atlas-size type="int" userarchive="y">2048</sun-atlas-size>
|
||||
</shadows>
|
||||
<photoscenery>
|
||||
<enabled type="bool" userarchive="y">true</enabled>
|
||||
<pixels-per-meter type="float" userarchive="y">0.25</pixels-per-meter>
|
||||
<auto-download type="bool" userarchive="y">true</auto-download>
|
||||
</photoscenery>
|
||||
<debug type="bool">false</debug>
|
||||
<realism type="int">5</realism>
|
||||
<filtering type="int">8</filtering>
|
||||
|
|
|
@ -34,33 +34,33 @@
|
|||
|
||||
<hrule/>
|
||||
|
||||
<text>
|
||||
<visible>
|
||||
<equals>
|
||||
<property>/sim/gui/dialogs/rendering/shader-warning</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</visible>
|
||||
<color>
|
||||
<red>1.0</red>
|
||||
<green>0.6</green>
|
||||
<blue>0.6</blue>
|
||||
</color>
|
||||
<label>Warning: Intel integrated graphics detected. Your graphics card may not support shaders or complex graphics.</label>
|
||||
</text>
|
||||
<text>
|
||||
<visible>
|
||||
<equals>
|
||||
<property>/sim/gui/dialogs/rendering/shader-warning</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</visible>
|
||||
<color>
|
||||
<red>1.0</red>
|
||||
<green>0.6</green>
|
||||
<blue>0.6</blue>
|
||||
</color>
|
||||
<label>Warning: Intel integrated graphics detected. Your graphics card may not support shaders or complex graphics.</label>
|
||||
</text>
|
||||
|
||||
<group>
|
||||
<halign>center</halign>
|
||||
<layout>hbox</layout>
|
||||
|
||||
<!-- only for a gap -->
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<default-padding>1</default-padding>
|
||||
<text>
|
||||
<label> </label>
|
||||
</text>
|
||||
</group>
|
||||
<!-- only for a gap -->
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<default-padding>1</default-padding>
|
||||
<text>
|
||||
<label> </label>
|
||||
</text>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
|
@ -172,15 +172,15 @@
|
|||
</checkbox>
|
||||
|
||||
<checkbox>
|
||||
<halign>left</halign>
|
||||
<label>Use disk space for faster loading (DDS Texture Cache)</label>
|
||||
<name>texture-cache-enabled</name>
|
||||
<property>/sim/rendering/texture-cache/cache-enabled</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>texture-cache-enabled</object-name>
|
||||
</binding>
|
||||
</checkbox>
|
||||
<halign>left</halign>
|
||||
<label>Use disk space for faster loading (DDS Texture Cache)</label>
|
||||
<name>texture-cache-enabled</name>
|
||||
<property>/sim/rendering/texture-cache/cache-enabled</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>texture-cache-enabled</object-name>
|
||||
</binding>
|
||||
</checkbox>
|
||||
|
||||
<checkbox>
|
||||
<halign>left</halign>
|
||||
|
@ -234,9 +234,9 @@
|
|||
</visible>
|
||||
</text>
|
||||
|
||||
<empty>
|
||||
<stretch>1</stretch>
|
||||
</empty>
|
||||
<empty>
|
||||
<stretch>1</stretch>
|
||||
</empty>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
|
@ -486,23 +486,23 @@
|
|||
<layout>table</layout>
|
||||
|
||||
<button>
|
||||
<row>0</row>
|
||||
<col>0</col>
|
||||
<enable>
|
||||
<property>/sim/rendering/shaders/skydome</property>
|
||||
</enable>
|
||||
<legend>Filter effects</legend>
|
||||
<halign>center</halign>
|
||||
<binding>
|
||||
<command>dialog-show</command>
|
||||
<dialog-name>als-filters</dialog-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
<dialog-name>rendering</dialog-name>
|
||||
</binding>
|
||||
<pref-width>200</pref-width>
|
||||
</button>
|
||||
<row>0</row>
|
||||
<col>0</col>
|
||||
<enable>
|
||||
<property>/sim/rendering/shaders/skydome</property>
|
||||
</enable>
|
||||
<legend>Filter effects</legend>
|
||||
<halign>center</halign>
|
||||
<binding>
|
||||
<command>dialog-show</command>
|
||||
<dialog-name>als-filters</dialog-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
<dialog-name>rendering</dialog-name>
|
||||
</binding>
|
||||
<pref-width>200</pref-width>
|
||||
</button>
|
||||
|
||||
<button>
|
||||
<row>0</row>
|
||||
|
@ -533,25 +533,25 @@
|
|||
|
||||
</group>
|
||||
|
||||
<!-- only for a gap -->
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<default-padding>1</default-padding>
|
||||
<text>
|
||||
<label> </label>
|
||||
</text>
|
||||
</group>
|
||||
<!-- only for a gap -->
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<default-padding>1</default-padding>
|
||||
<text>
|
||||
<label> </label>
|
||||
</text>
|
||||
</group>
|
||||
|
||||
<vrule/>
|
||||
|
||||
<!-- only for a gap -->
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<default-padding>1</default-padding>
|
||||
<text>
|
||||
<label> </label>
|
||||
</text>
|
||||
</group>
|
||||
<!-- only for a gap -->
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<default-padding>1</default-padding>
|
||||
<text>
|
||||
<label> </label>
|
||||
</text>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
|
@ -846,45 +846,49 @@
|
|||
<col>0</col>
|
||||
<halign>left</halign>
|
||||
<label>Terrain Textures</label>
|
||||
</text>
|
||||
</text>
|
||||
|
||||
<combo>
|
||||
<row>7</row>
|
||||
<col>1</col>
|
||||
<name>texture-set</name>
|
||||
<combo>
|
||||
<row>7</row>
|
||||
<col>1</col>
|
||||
<name>texture-set</name>
|
||||
<pref-width>200</pref-width>
|
||||
<property>sim/gui/dialogs/rendering/texture-set</property>
|
||||
<value>Region-specific</value>
|
||||
<value>Global</value>
|
||||
<value>Global alternative (DDS format)</value>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>texture-set</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
<property>sim/gui/dialogs/rendering/texture-set</property>
|
||||
<value>Region-specific</value>
|
||||
<value>Global</value>
|
||||
<value>Global alternative (DDS format)</value>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>texture-set</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
var file = materials[getprop("/sim/gui/dialogs/rendering/texture-set")];
|
||||
setprop("/sim/rendering/materials-file", file);
|
||||
</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>reload-materials</command>
|
||||
</binding>
|
||||
</combo>
|
||||
</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>reload-materials</command>
|
||||
</binding>
|
||||
</combo>
|
||||
|
||||
<text>
|
||||
<checkbox>
|
||||
<row>8</row>
|
||||
<col>0</col>
|
||||
<colspan>2</colspan>
|
||||
<halign>left</halign>
|
||||
<color>
|
||||
<red>1.0</red>
|
||||
<green>0.6</green>
|
||||
<blue>0.6</blue>
|
||||
</color>
|
||||
<label>Warning: Pylons, Detailed Roads, Buildings use a lot of memory</label>
|
||||
</text>
|
||||
<label>Satellite Photoscenery</label>
|
||||
<name>satellite-photoscenery</name>
|
||||
<enable>
|
||||
<not>
|
||||
<property>/sim/rendering/rembrandt/enabled</property>
|
||||
</not>
|
||||
</enable>
|
||||
<property>/sim/rendering/photoscenery/enabled</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>satellite-photoscenery</object-name>
|
||||
</binding>
|
||||
</checkbox>
|
||||
|
||||
<text>
|
||||
<row>9</row>
|
||||
|
@ -892,13 +896,25 @@
|
|||
<colspan>2</colspan>
|
||||
<halign>left</halign>
|
||||
<color>
|
||||
<red>1.0</red>
|
||||
<green>0.6</green>
|
||||
<blue>0.6</blue>
|
||||
</color>
|
||||
<label>and disk space, and are only available in limited areas.</label>
|
||||
</text>
|
||||
<red>1.0</red>
|
||||
<green>0.6</green>
|
||||
<blue>0.6</blue>
|
||||
</color>
|
||||
<label>Warning: Pylons, Detailed Roads, Buildings use a lot of memory</label>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<row>10</row>
|
||||
<col>0</col>
|
||||
<colspan>2</colspan>
|
||||
<halign>left</halign>
|
||||
<color>
|
||||
<red>1.0</red>
|
||||
<green>0.6</green>
|
||||
<blue>0.6</blue>
|
||||
</color>
|
||||
<label>and disk space, and are only available in limited areas.</label>
|
||||
</text>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
|
@ -933,16 +949,16 @@
|
|||
</enable>
|
||||
</checkbox>
|
||||
|
||||
<checkbox>
|
||||
<halign>left</halign>
|
||||
<label>Animated jetways</label>
|
||||
<name>jetways</name>
|
||||
<property>/nasal/jetways/enabled</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>jetways</object-name>
|
||||
</binding>
|
||||
</checkbox>
|
||||
<checkbox>
|
||||
<halign>left</halign>
|
||||
<label>Animated jetways</label>
|
||||
<name>jetways</name>
|
||||
<property>/nasal/jetways/enabled</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>jetways</object-name>
|
||||
</binding>
|
||||
</checkbox>
|
||||
|
||||
<empty>
|
||||
<stretch>1</stretch>
|
||||
|
@ -950,14 +966,14 @@
|
|||
|
||||
</group>
|
||||
|
||||
<!-- only for a gap -->
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<default-padding>1</default-padding>
|
||||
<text>
|
||||
<label> </label>
|
||||
</text>
|
||||
</group>
|
||||
<!-- only for a gap -->
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<default-padding>1</default-padding>
|
||||
<text>
|
||||
<label> </label>
|
||||
</text>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
|
||||
|
@ -965,10 +981,10 @@
|
|||
|
||||
<button>
|
||||
<legend> OK </legend>
|
||||
<default>true</default>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
<default>true</default>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
var reinit = 0;
|
||||
foreach (var p; reload_props) {
|
||||
if (reload_vals[p] != getprop(p)) {
|
||||
|
@ -979,8 +995,8 @@
|
|||
if (reinit) {
|
||||
fgcommand("reinit", props.Node.new({"subsystem": "scenery"}));
|
||||
}
|
||||
</script>
|
||||
</binding>
|
||||
</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
</binding>
|
||||
|
@ -1113,15 +1129,16 @@
|
|||
|
||||
|
||||
var reload_props = [
|
||||
"/sim/rendering/materials-file",
|
||||
"/sim/rendering/osm-buildings",
|
||||
"/sim/rendering/random-buildings",
|
||||
"/sim/rendering/random-objects",
|
||||
"/sim/rendering/random-vegetation",
|
||||
"/sim/rendering/random-vegetation-shadows",
|
||||
"/sim/rendering/vegetation-density",
|
||||
"/sim/rendering/clouds3d-enable",
|
||||
"/sim/rendering/clouds3d-density",
|
||||
"/sim/rendering/photoscenery/enabled",
|
||||
"/sim/rendering/materials-file",
|
||||
"/sim/rendering/osm-buildings",
|
||||
"/sim/rendering/random-buildings",
|
||||
"/sim/rendering/random-objects",
|
||||
"/sim/rendering/random-vegetation",
|
||||
"/sim/rendering/random-vegetation-shadows",
|
||||
"/sim/rendering/vegetation-density",
|
||||
"/sim/rendering/clouds3d-enable",
|
||||
"/sim/rendering/clouds3d-density",
|
||||
"/sim/rendering/scenery-path-suffix[0]/enabled",
|
||||
"/sim/rendering/scenery-path-suffix[1]/enabled",
|
||||
"/sim/rendering/scenery-path-suffix[2]/enabled",
|
||||
|
|
Loading…
Add table
Reference in a new issue