A basic shader for the bubble gum shield effect

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@13445 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
samuncle 2013-08-08 03:59:15 +00:00
parent df9d90b342
commit d58e16c338
2 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,20 @@
// Jean-manuel clemencon (c) supertuxkart 2013
// bubble gum shield
// TODO: Add a nice texture and soft edges when intersect with geometry
uniform sampler2D tex;
uniform float transparency;
varying vec2 uv;
varying vec3 eyeVec;
varying vec3 normal;
void main()
{
float inter = dot(normal, eyeVec);
float m = texture2D(tex, vec2(0.5, uv.y)).r;
inter = 1 - inter;
float alpha = inter + 1;// * m;
gl_FragColor = vec4(0.8, 0.16, 0.48, alpha);
}

View File

@ -0,0 +1,23 @@
// Jean-manuel clemencon (c) supertuxkart 2013
// Creates a bubble gum shield effect
// ---
// TODO: The texture should reflect the strength of the shield,
// such that the user gets to know whether the shield has several
// "layers" or whether the shield is about to break.
varying vec2 uv;
varying vec3 eyeVec;
varying vec3 normal;
void main()
{
gl_TexCoord[0] = gl_MultiTexCoord0;
vec4 viewp = gl_ModelViewMatrix * gl_Vertex;
eyeVec = normalize(-viewp).xyz;
normal = gl_NormalMatrix * gl_Normal;
gl_Position = ftransform();
uv = gl_TexCoord[0].st;
}