add sh_PositionAndColour and update sh_Flashlight

master
jorolf 7 years ago
parent 74407d8c06
commit a1fb917e15

@ -5,18 +5,30 @@
varying vec2 v_Position; varying vec2 v_Position;
varying vec4 v_Colour; varying vec4 v_Colour;
uniform vec2 mousePos; uniform bool rectangular;
uniform float flashlightSize; uniform vec2 flashlightPos;
uniform float circularFlashlightSize;
uniform vec2 rectangularFlashlightSize;
const float smoothness = 0.1; const float smoothness = 1.1;
void main(void) void main(void)
{ {
vec2 diff = mousePos - v_Position; if(rectangular)
{
vec2 diff = abs(v_Position - flashlightPos);
float dist = sqrt(diff.x * diff.x + diff.y * diff.y); 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 smoothnessRange = flashlightSize * smoothness; float dist = sqrt(diff.x * diff.x + diff.y * diff.y);
gl_FragColor = v_Colour * vec4(1.0, 1.0, 1.0, smoothstep(flashlightSize, flashlightSize + smoothnessRange, dist)); 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…
Cancel
Save