mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2025-02-11 04:35:24 +01:00
53 lines
1.3 KiB
GLSL
53 lines
1.3 KiB
GLSL
attribute vec3 in_Position; // (x,y,z)
|
|
attribute vec4 in_Colour; // (r,g,b,a)
|
|
|
|
varying vec4 v_vColour;
|
|
varying vec2 v_vPosition;
|
|
|
|
uniform vec2 ballPos;
|
|
uniform float ballRad;
|
|
uniform vec3 ballShift;
|
|
|
|
void main() {
|
|
vec3 ballPosition = in_Position + ballShift;
|
|
vec4 object_space_pos = vec4( ballPosition, 1.0);
|
|
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
|
|
|
|
v_vColour = in_Colour;
|
|
v_vPosition = (in_Position.xy - ballPos) / ballRad;
|
|
}
|
|
|
|
//######################_==_YOYO_SHADER_MARKER_==_######################@~
|
|
varying vec4 v_vColour;
|
|
varying vec2 v_vPosition;
|
|
|
|
uniform sampler2D texture;
|
|
uniform vec2 dimension;
|
|
uniform vec2 samplePos;
|
|
uniform vec3 lightPos;
|
|
uniform float lightInt;
|
|
|
|
void main() {
|
|
vec4 col = texture2D( texture, samplePos );
|
|
|
|
vec2 tx = 1. / dimension;
|
|
float x = v_vPosition.x - tx.x;
|
|
float y = v_vPosition.y - tx.y;
|
|
float mag = sqrt(x * x + y * y);
|
|
if(mag >= 1.) {
|
|
x /= (mag + tx.x);
|
|
y /= (mag + tx.y);
|
|
}
|
|
|
|
float z = sqrt(1.0 - (pow(x, 2.0) + pow(y, 2.0)));
|
|
|
|
vec3 position = vec3(x, y, z);
|
|
vec3 normal = normalize(position);
|
|
vec3 light = normalize(lightPos);
|
|
|
|
float lightInf = 1. - dot(normal, light);
|
|
col.rgb -= col.rgb * lightInf * lightInt;
|
|
|
|
gl_FragColor = col;
|
|
}
|
|
|