Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/drape
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2016-11-17 16:47:35 +0300
committerr.kuznetsov <r.kuznetsov@corp.mail.ru>2016-11-17 16:47:35 +0300
commit3ad5d15058c450fcbba3f77c2b5ecc4138931f1a (patch)
treea82f7d1dcaf7d1e0b7f440543306b292da6c715a /drape
parent915d8130a778955455e899b973a1b93479c8ba36 (diff)
Tuned traffic vizualization
Diffstat (limited to 'drape')
-rw-r--r--drape/shaders/traffic_fragment_shader.fsh20
-rw-r--r--drape/shaders/traffic_vertex_shader.vsh2
2 files changed, 17 insertions, 5 deletions
diff --git a/drape/shaders/traffic_fragment_shader.fsh b/drape/shaders/traffic_fragment_shader.fsh
index 287ea0b076..46fb3fa247 100644
--- a/drape/shaders/traffic_fragment_shader.fsh
+++ b/drape/shaders/traffic_fragment_shader.fsh
@@ -8,12 +8,22 @@ uniform float u_opacity;
const float kAntialiasingThreshold = 0.92;
+const vec3 kLightArrow = vec3(1.0, 1.0, 1.0);
+const vec3 kDarkArrow = vec3(160.0 / 255.0, 120.0 / 255.0, 30.0 / 255.0);
+
void main(void)
{
vec4 color = texture2D(u_colorTex, v_colorTexCoord);
- vec4 mask = texture2D(u_maskTex, v_maskTexCoord);
- color.a = color.a * u_opacity * (1.0 - smoothstep(kAntialiasingThreshold, 1.0, abs(v_halfLength)));
- color.rgb = mix(color.rgb, mask.rgb, mask.a);
-
- gl_FragColor = color;
+ float alphaCode = color.a;
+ if (alphaCode > 0.1)
+ {
+ vec4 mask = texture2D(u_maskTex, v_maskTexCoord);
+ color.a = u_opacity * (1.0 - smoothstep(kAntialiasingThreshold, 1.0, abs(v_halfLength)));
+ color.rgb = mix(color.rgb, mask.rgb * mix(kLightArrow, kDarkArrow, step(alphaCode, 0.6)), mask.a);
+ gl_FragColor = color;
+ }
+ else
+ {
+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
+ }
}
diff --git a/drape/shaders/traffic_vertex_shader.vsh b/drape/shaders/traffic_vertex_shader.vsh
index d66d811df9..7625f7cc79 100644
--- a/drape/shaders/traffic_vertex_shader.vsh
+++ b/drape/shaders/traffic_vertex_shader.vsh
@@ -13,6 +13,7 @@ varying vec2 v_maskTexCoord;
varying float v_halfLength;
const float kShapeCoordScalar = 1000.0;
+const float kMinVisibleArrowPart = 0.9;
void main(void)
{
@@ -34,6 +35,7 @@ void main(void)
float uOffset = length(vec4(kShapeCoordScalar, 0, 0, 0) * modelView) * a_normal.w;
v_colorTexCoord = a_colorTexCoord;
v_maskTexCoord = vec2(uOffset * u_trafficParams.z, 0.5 * a_normal.z + 0.5) * u_trafficParams.w;
+ v_maskTexCoord.x *= step(kMinVisibleArrowPart, v_maskTexCoord.x);
v_halfLength = a_normal.z;
vec4 pos = vec4(transformedAxisPos, a_position.z, 1.0) * projection;
float w = pos.w;