CVS: data/Shaders landmass.frag, 1.7, 1.8 urban.frag, 1.7, 1.8
Frederic Bouvier <[email protected]> Sat, 10 Apr 2010 10:14:23 -0500
| Newsgroups | gmane.games.flightgear.cvc |
|---|---|
| Message-ID | <[email protected]> |
Update of /var/cvs/FlightGear-0.9/data/Shaders
In directory baron.flightgear.org:/tmp/cvs-serv19193/Shaders
Modified Files:
landmass.frag urban.frag
Log Message:
Use quality level inside landmass fragment shader
Index: landmass.frag
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Shaders/landmass.frag,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- landmass.frag 2 Apr 2010 07:06:40 -0000 1.7
+++ landmass.frag 10 Apr 2010 15:09:18 -0000 1.8
@@ -13,13 +13,14 @@
uniform sampler2D BaseTex;
uniform sampler2D NormalTex;
uniform float depth_factor;
+uniform float quality_level; // From /sim/rendering/quality-level
uniform float snowlevel; // From /sim/rendering/snow-level-m
const float scale = 1.0;
+int linear_search_steps = 10;
float ray_intersect(sampler2D reliefMap, vec2 dp, vec2 ds)
{
- const int linear_search_steps = 10;
float size = 1.0 / float(linear_search_steps);
float depth = 0.0;
@@ -54,17 +55,21 @@
void main (void)
{
- vec2 uv;
+ if ( quality_level >= 3.5 ) {
+ linear_search_steps = 20;
+ }
+ vec2 uv, dp, ds;
vec3 N;
- if ( bump > 0.9 )
+ float d;
+ if ( bump > 0.9 && quality_level >= 2.0 )
{
vec3 V = normalize(ecPosition.xyz);
float a = dot(VNormal, -V);
vec2 s = vec2(dot(V, VTangent), dot(V, VBinormal));
s *= depth_factor / a;
- vec2 ds = s;
- vec2 dp = gl_TexCoord[0].st;
- float d = ray_intersect(NormalTex, dp, ds);
+ ds = s;
+ dp = gl_TexCoord[0].st;
+ d = ray_intersect(NormalTex, dp, ds);
uv = dp + ds * d;
N = texture2D(NormalTex, uv).xyz * 2.0 - 1.0;
@@ -75,7 +80,6 @@
N = vec3(0.0, 0.0, 1.0);
}
-
vec4 noisevec = texture3D(NoiseTex, (rawpos.xyz)*0.01*scale);
vec4 nvL = texture3D(NoiseTex, (rawpos.xyz)*0.00066*scale);
@@ -109,17 +113,19 @@
vec3 l = gl_LightSource[0].position.xyz;
vec3 diffuse = gl_Color.rgb * max(0.0, dot(N, l));
float shadow_factor = 1.0;
-/*
-// Shadow
- dp += ds * d;
- vec3 sl = normalize( vec3( dot( l, VTangent ), dot( l, VBinormal ), dot( -l, VNormal ) ) );
- ds = sl.xy * depth_factor / sl.z;
- dp -= ds * d;
- float dl = ray_intersect(NormalTex, dp, ds);
- if ( dl < d - 0.05 )
- shadow_factor = dot( constantColor.xyz, vec3( 1.0, 1.0, 1.0 ) ) * 0.25;
-// end shadow
-*/
+
+ // Shadow
+ if ( quality_level >= 3.0 ) {
+ dp += ds * d;
+ vec3 sl = normalize( vec3( dot( l, VTangent ), dot( l, VBinormal ), dot( -l, VNormal ) ) );
+ ds = sl.xy * depth_factor / sl.z;
+ dp -= ds * d;
+ float dl = ray_intersect(NormalTex, dp, ds);
+ if ( dl < d - 0.05 )
+ shadow_factor = dot( constantColor.xyz, vec3( 1.0, 1.0, 1.0 ) ) * 0.25;
+ }
+ // end shadow
+
vec4 ambient_light = constantColor + gl_LightSource[0].diffuse * shadow_factor * vec4(diffuse, 1.0);
c1 *= ambient_light;
Index: urban.frag
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Shaders/urban.frag,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- urban.frag 10 Apr 2010 14:36:37 -0000 1.7
+++ urban.frag 10 Apr 2010 15:11:05 -0000 1.8
@@ -17,7 +17,7 @@
uniform sampler2D NormalTex;
uniform float depth_factor;
uniform float tile_size;
-uniform float quality_level;
+uniform float quality_level; // From /sim/rendering/quality-level
uniform vec3 night_color;
int linear_search_steps = 10;
@@ -79,7 +79,7 @@
vec3 diffuse = gl_Color.rgb * max(0.0, dot(N, l));
float shadow_factor = 1.0;
-// Shadow
+ // Shadow
if ( quality_level >= 3.0 ) {
dp += ds * d;
vec3 sl = normalize( vec3( dot( l, VTangent ), dot( l, VBinormal ), dot( -l, VNormal ) ) );
@@ -89,7 +89,7 @@
if ( dl < d - 0.05 )
shadow_factor = dot( constantColor.xyz, vec3( 1.0, 1.0, 1.0 ) ) * 0.25;
}
-// end shadow
+ // end shadow
vec4 ambient_light = constantColor + gl_LightSource[0].diffuse * vec4(diffuse, 1.0);
float reflectance = ambient_light.r * 0.3 + ambient_light.g * 0.59 + ambient_light.b * 0.11;
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev