commit
651e598b01
@ -0,0 +1,34 @@
|
||||
#ifdef GL_ES
|
||||
precision mediump float;
|
||||
#endif
|
||||
|
||||
varying vec2 v_Position;
|
||||
varying vec4 v_Colour;
|
||||
|
||||
uniform bool rectangular;
|
||||
uniform vec2 flashlightPos;
|
||||
uniform float circularFlashlightSize;
|
||||
uniform vec2 rectangularFlashlightSize;
|
||||
|
||||
const float smoothness = 1.1;
|
||||
|
||||
void main(void)
|
||||
{
|
||||
if(rectangular)
|
||||
{
|
||||
vec2 diff = abs(v_Position - flashlightPos);
|
||||
|
||||
float alpha = 1.0 - smoothstep(rectangularFlashlightSize.x, rectangularFlashlightSize.x * smoothness, diff.x);
|
||||
alpha *= 1.0 - smoothstep(rectangularFlashlightSize.y, rectangularFlashlightSize.y * smoothness, diff.y);
|
||||
|
||||
gl_FragColor = v_Colour * vec4(1.0, 1.0, 1.0, 1.0 - alpha);
|
||||
}
|
||||
else
|
||||
{
|
||||
vec2 diff = flashlightPos - v_Position;
|
||||
|
||||
float dist = sqrt(diff.x * diff.x + diff.y * diff.y);
|
||||
|
||||
gl_FragColor = v_Colour * vec4(1.0, 1.0, 1.0, smoothstep(circularFlashlightSize, circularFlashlightSize * smoothness, dist));
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
attribute vec2 m_Position;
|
||||
attribute vec4 m_Colour;
|
||||
|
||||
varying vec2 v_Position;
|
||||
varying vec4 v_Colour;
|
||||
|
||||
uniform mat4 g_ProjMatrix;
|
||||
|
||||
void main(void)
|
||||
{
|
||||
gl_Position = g_ProjMatrix * vec4(m_Position.xy, 1.0, 1.0);
|
||||
v_Position = m_Position;
|
||||
v_Colour = m_Colour;
|
||||
}
|
Loading…
Reference in New Issue