Initial commit
This commit is contained in:
90
binaries/assets/shaders/multiQuad.fragment
Normal file
90
binaries/assets/shaders/multiQuad.fragment
Normal file
@@ -0,0 +1,90 @@
|
||||
#version 460
|
||||
|
||||
out vec4 frag_colour;
|
||||
|
||||
uniform vec3 diffuse;
|
||||
|
||||
uniform vec2 position;
|
||||
|
||||
uniform sampler2DArray samplerArray;
|
||||
|
||||
|
||||
in vec2 vertex_textureCoordinates;
|
||||
|
||||
in float vertex_meshIndex;
|
||||
|
||||
in vec3 quad_color;
|
||||
|
||||
in vec2 quad_position;
|
||||
|
||||
in vec2 quad_size;
|
||||
|
||||
flat in float quad_opacity;
|
||||
|
||||
flat in int quad_useTexture;
|
||||
|
||||
flat in int quad_textureIndex;
|
||||
|
||||
|
||||
|
||||
layout ( packed, binding = 0 ) uniform events
|
||||
{
|
||||
|
||||
vec2 mouse;
|
||||
|
||||
vec2 window;
|
||||
|
||||
};
|
||||
|
||||
|
||||
void main() {
|
||||
|
||||
|
||||
vec2 grid = vec2( floor( vertex_textureCoordinates.x * 10.0 ), floor( vertex_textureCoordinates.y * 10.0 ) );
|
||||
|
||||
int index = int( grid.x + ( grid.y * 10.0 ) );
|
||||
|
||||
|
||||
vec2 newCoordinates = vertex_textureCoordinates;
|
||||
|
||||
newCoordinates = vec2( mod( newCoordinates.x, 1) , mod( newCoordinates.y, 1) );
|
||||
|
||||
|
||||
vec4 diffuseColor = vec4( 1.0 );
|
||||
|
||||
if( quad_useTexture == 1 ) {
|
||||
|
||||
diffuseColor = texture( samplerArray, vec3( newCoordinates, quad_textureIndex ) );
|
||||
|
||||
} else {
|
||||
|
||||
vec2 size = quad_size;
|
||||
|
||||
vec2 halfSize = size / 2.0;
|
||||
|
||||
vec2 fragCoord = vertex_textureCoordinates * size;
|
||||
|
||||
float radius = 100.;
|
||||
|
||||
float borderSmoothing = 2.0;
|
||||
|
||||
vec2 centerPosition = fragCoord - halfSize;
|
||||
|
||||
float a = length( abs( centerPosition ) + size + radius ) - radius;
|
||||
|
||||
//float b = max( a, length( halfSize / 2. ) );
|
||||
|
||||
//float c = length( a );
|
||||
|
||||
|
||||
|
||||
|
||||
diffuseColor.rgb = quad_color * (1.0 - a);//( 1.0 - smoothstep( radius, radius + borderSmoothing, b ) );
|
||||
|
||||
}
|
||||
|
||||
diffuseColor.w *= quad_opacity;
|
||||
|
||||
frag_colour = diffuseColor;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user