// Vertex shader
#if defined(WEBGL2) || defines(WEBGPU)
precision highp sampler2DArray;
#endif
precision highp float;
attribute vec3 position;
attribute vec2 uv;
uniform mat4 u_World;
uniform mat4 u_ViewProjection;
uniform vec3 u_yAxisColor;
uniform vec2 u_Vector;
uniform float u_Float;
uniform float u_Float1;
uniform vec2 u_panOffset;
uniform float u_Float2;
uniform float u_Float3;
uniform vec2 u_aspectRatio;
uniform float u_xScaling;
uniform float u_gridThickness;
uniform vec3 u_Cameraposition;
uniform float u_gridSmoothness;
uniform float u_yAxisTransparency;
uniform vec3 u_xAxisColor;
uniform float u_yScaling;
uniform float u_xAxisTransparency;
uniform vec3 u_gridColor;
uniform float u_gridTransparency;
uniform vec3 u_subGridColor;
uniform float u_gridSubdivition;
uniform float u_subGridTransparency;
uniform float u_alpha;
varying vec2 v_uv;
varying vec3 v_xyz1;
float u_Tau = 6.28318530718;
float u_Float4 = 2.0;
float u_Float5 = 2.0;
float u_Float6 = 2.0;
float u_Float7 = 2.0;
float u_Float8 = 2.0;
float u_Float9 = 2.0;
float u_Float10 = 2.0;
void main(void) {
vec4 output1 = u_World * vec4(position, 1.0);
vec3 xyz1 = output1.xyz;
vec4 output0 = u_ViewProjection * output1;
gl_Position = output0;
v_uv = uv;
v_xyz1 = xyz1;
}
// Fragment shader
#if defined(PREPASS)
#extension GL_EXT_draw_buffers : require
layout(location = 0) out highp vec4 glFragData[SCENE_MRT_COUNT];
highp vec4 gl_FragColor;
#endif
#if defined(WEBGL2) || defines(WEBGPU)
precision highp sampler2DArray;
#endif
precision highp float;
uniform mat4 u_World;
uniform mat4 u_ViewProjection;
uniform vec3 u_yAxisColor;
uniform vec2 u_Vector;
uniform float u_Float;
uniform float u_Float1;
uniform vec2 u_panOffset;
uniform float u_Float2;
uniform float u_Float3;
uniform vec2 u_aspectRatio;
uniform float u_xScaling;
uniform float u_gridThickness;
uniform vec3 u_Cameraposition;
uniform float u_gridSmoothness;
uniform float u_yAxisTransparency;
uniform vec3 u_xAxisColor;
uniform float u_yScaling;
uniform float u_xAxisTransparency;
uniform vec3 u_gridColor;
uniform float u_gridTransparency;
uniform vec3 u_subGridColor;
uniform float u_gridSubdivition;
uniform float u_subGridTransparency;
uniform float u_alpha;
varying vec2 v_uv;
varying vec3 v_xyz1;
#include<helperFunctions>
float u_Tau = 6.28318530718;
float u_Float4 = 2.0;
float u_Float5 = 2.0;
float u_Float6 = 2.0;
float u_Float7 = 2.0;
float u_Float8 = 2.0;
float u_Float9 = 2.0;
float u_Float10 = 2.0;
void main(void) {
vec2 output13 = v_uv - u_Vector;
float x1 = u_panOffset.x;
float y1 = u_panOffset.y;
float output15 = max(u_Float1, x1);
float output14 = min(u_Float, output15);
float output17 = max(u_Float3, y1);
float output16 = min(u_Float2, output17);
vec2 xy1 = vec2(output14, output16).xy;
vec2 output12 = output13 - xy1;
vec2 output11 = output12 * u_aspectRatio;
float x = output11.x;
float y = output11.y;
float output10 = x * u_xScaling;
float output9 = clamp(output10, -0.5, 0.5);
float output8 = output9 * u_Tau;
float output7 = cos(output8);
float output20 = pow(u_xScaling, u_Float4);
float output24 = length(v_xyz1 - u_Cameraposition);
float output23 = pow(output24, u_Float5);
float output22 = u_gridThickness * output23;
float output21 = 0.0 + (output22 - 0.0) * (0.001 - 0.0) / (1.0 - 0.0);
float output19 = output20 * output21;
float output18 = 1. - output19;
float output25 = output18 + (u_gridSmoothness - 0.0) * (1.0 - output18) / (1.0 -
0.0);
float output6 = smoothstep(output18, output25, output7);
float output5 = output6 * u_yAxisTransparency;
vec3 output4 = u_yAxisColor * output5;
float output32 = y * u_yScaling;
float output31 = clamp(output32, -0.5, 0.5);
float output30 = output31 * u_Tau;
float output29 = cos(output30);
float output35 = pow(u_yScaling, u_Float6);
float output36 = 0.0 + (output22 - 0.0) * (0.001 - 0.0) / (1.0 - 0.0);
float output34 = output35 * output36;
float output33 = 1. - output34;
float output37 = output33 + (u_gridSmoothness - 0.0) * (1.0 - output33) / (1.0 -
0.0);
float output28 = smoothstep(output33, output37, output29);
float output27 = output28 * u_xAxisTransparency;
vec3 output26 = u_xAxisColor * output27;
vec3 output3 = max(output4, output26);
vec2 output48 = output13 - u_panOffset;
vec2 output47 = output48 * u_aspectRatio;
float x2 = output47.x;
float y2 = output47.y;
float output46 = x2 * u_xScaling;
float output45 = output46 * u_Tau;
float output44 = cos(output45);
float output51 = 0.0 + (output22 - 0.0) * (0.001 - 0.0) / (1.0 - 0.0);
float output52 = pow(u_xScaling, u_Float7);
float output50 = output51 * output52;
float output49 = 1. - output50;
float output53 = output49 + (u_gridSmoothness - 0.0) * (1.0 - output49) / (1.0 -
0.0);
float output43 = smoothstep(output49, output53, output44);
float output57 = y2 * u_yScaling;
float output56 = output57 * u_Tau;
float output55 = cos(output56);
float output60 = 0.0 + (output22 - 0.0) * (0.001 - 0.0) / (1.0 - 0.0);
float output61 = pow(u_yScaling, u_Float8);
float output59 = output60 * output61;
float output58 = 1. - output59;
float output62 = output58 + (u_gridSmoothness - 0.0) * (1.0 - output58) / (1.0 -
0.0);
float output54 = smoothstep(output58, output62, output55);
float output42 = max(output43, output54);
float output41 = output42 * u_gridTransparency;
vec3 output40 = u_gridColor * output41;
float x3 = output47.x;
float y3 = output47.y;
float output73 = u_xScaling * u_gridSubdivition;
float output72 = x3 * output73;
float output71 = output72 + u_gridSubdivition;
float output70 = u_Tau * output71;
float output69 = cos(output70);
float output76 = pow(u_gridSubdivition, u_Float9);
float output75 = output50 * output76;
float output74 = 1. - output75;
float output77 = output74 + (u_gridSmoothness - 0.0) * (1.0 - output74) / (1.0 -
0.0);
float output68 = smoothstep(output74, output77, output69);
float output83 = u_gridSubdivition * u_yScaling;
float output82 = y3 * output83;
float output81 = output82 + u_gridSubdivition;
float output80 = u_Tau * output81;
float output79 = cos(output80);
float output86 = pow(u_gridSubdivition, u_Float10);
float output85 = output59 * output86;
float output84 = 1. - output85;
float output87 = output84 + (u_gridSmoothness - 0.0) * (1.0 - output84) / (1.0 -
0.0);
float output78 = smoothstep(output84, output87, output79);
float output67 = max(output68, output78);
float output66 = output67 * u_subGridTransparency;
vec3 output65 = u_subGridColor * output66;
vec3 output64 = output65 - output41;
vec3 output63 = clamp(output64, 0.0, 1.0);
vec3 output39 = max(output40, output63);
float output88 = max(output5, output27);
vec3 output38 = output39 - output88;
vec3 output2 = max(output3, output38);
float output91 = max(output41, output66);
float output90 = max(output88, output91);
float output89 = output90 * u_alpha;
gl_FragColor = vec4(output2, output89);
#ifdef CONVERTTOLINEAR0
gl_FragColor = toLinearSpace(gl_FragColor);
#endif
#ifdef CONVERTTOGAMMA0
gl_FragColor = toGammaSpace(gl_FragColor);
#endif
#if defined(PREPASS)
gl_FragData[0] = gl_FragColor;
#endif