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:
parent
df9d90b342
commit
d58e16c338
20
data/shaders/gum_shield.frag
Normal file
20
data/shaders/gum_shield.frag
Normal 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);
|
||||
}
|
23
data/shaders/gum_shield.vert
Normal file
23
data/shaders/gum_shield.vert
Normal 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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user