mirror of
https://github.com/SFML/SFML.git
synced 2025-02-19 06:39:59 +08:00
27 lines
735 B
GLSL
27 lines
735 B
GLSL
uniform vec2 storm_position;
|
|
uniform float storm_total_radius;
|
|
uniform float storm_inner_radius;
|
|
|
|
attribute vec2 positionAttribute;
|
|
attribute vec4 colorAttribute;
|
|
|
|
uniform mat4 modelViewMatrix;
|
|
uniform mat4 projectionMatrix;
|
|
|
|
varying vec4 frontColor;
|
|
|
|
void main()
|
|
{
|
|
vec4 vertex = modelViewMatrix * vec4(positionAttribute, 0.0, 1.0);
|
|
vec2 offset = vertex.xy - storm_position;
|
|
float len = length(offset);
|
|
if (len < storm_total_radius)
|
|
{
|
|
float push_distance = storm_inner_radius + len / storm_total_radius * (storm_total_radius - storm_inner_radius);
|
|
vertex.xy = storm_position + normalize(offset) * push_distance;
|
|
}
|
|
|
|
gl_Position = projectionMatrix * vertex;
|
|
frontColor = colorAttribute;
|
|
}
|