From e6f64d023824c23bb28d5cb371c1f132bbf35538 Mon Sep 17 00:00:00 2001 From: Tuomas Katajisto Date: Fri, 26 Sep 2025 22:08:42 +0300 Subject: [PATCH] imrpove grass --- game/game.jai | 2 + src/editor/console.jai | 4 + src/shaders/jai/shader_plane.jai | 750 ++++++++++++++++++------------- src/shaders/shader_plane.glsl | 41 +- 4 files changed, 486 insertions(+), 311 deletions(-) diff --git a/game/game.jai b/game/game.jai index 38b8c99..437175d 100644 --- a/game/game.jai +++ b/game/game.jai @@ -10,6 +10,8 @@ game_init :: () { } game_tick :: () { + cam.position += Vector3.{0.01, 0.0, 0.0}; + cam.target += Vector3.{0.01, 0.0, 0.0}; } game_draw :: () { diff --git a/src/editor/console.jai b/src/editor/console.jai index ee09175..a581339 100644 --- a/src/editor/console.jai +++ b/src/editor/console.jai @@ -63,6 +63,10 @@ add :: (a: int, b: int) -> int { return a + b; } @Command +add2 :: (a: int) -> int { + return a + 2; +} @Command + console_command_procs : [..]([]string) -> string; console_command_names : [..]string; diff --git a/src/shaders/jai/shader_plane.jai b/src/shaders/jai/shader_plane.jai index 8a731a8..f0cfc83 100644 --- a/src/shaders/jai/shader_plane.jai +++ b/src/shaders/jai/shader_plane.jai @@ -62,7 +62,7 @@ Plane_World_Config :: struct { void main() { vec3 _16 = position.xyz * 1000.0; - gl_Position = mat4(plane_vs_params[0], plane_vs_params[1], plane_vs_params[2], plane_vs_params[3]) * vec4(_16.x, float(gl_InstanceID) * 0.00999999977648258209228515625, _16.z, 1.0); + gl_Position = mat4(plane_vs_params[0], plane_vs_params[1], plane_vs_params[2], plane_vs_params[3]) * vec4(_16.x, float(gl_InstanceID) * 0.00200000009499490261077880859375, _16.z, 1.0); pos = position; idx = gl_InstanceID; } @@ -91,13 +91,13 @@ vs_plane_source_glsl430 := u8.[ 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x33,0x5d,0x29,0x20,0x2a,0x20,0x76,0x65, 0x63,0x34,0x28,0x5f,0x31,0x36,0x2e,0x78,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, 0x67,0x6c,0x5f,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x44,0x29,0x20,0x2a, - 0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34, - 0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35, - 0x2c,0x20,0x5f,0x31,0x36,0x2e,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, - 0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x64,0x78,0x20,0x3d,0x20,0x67,0x6c,0x5f, - 0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x44,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, - + 0x20,0x30,0x2e,0x30,0x30,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x34,0x39, + 0x39,0x34,0x39,0x30,0x32,0x36,0x31,0x30,0x37,0x37,0x38,0x38,0x30,0x38,0x35,0x39, + 0x33,0x37,0x35,0x2c,0x20,0x5f,0x31,0x36,0x2e,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69, + 0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x64,0x78,0x20,0x3d,0x20, + 0x67,0x6c,0x5f,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x44,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x00, ]; /* #version 430 @@ -120,46 +120,55 @@ vs_plane_source_glsl430 := u8.[ float time; }; - uniform plane_world_config _84; + uniform plane_world_config _70; layout(location = 0) out vec4 frag_color; layout(location = 0) in vec4 pos; layout(location = 1) flat in int idx; - uint murmurHash12(inout uvec2 src) + float B(vec2 U) { - src *= uvec2(1540483477u); - src ^= (src >> uvec2(24u)); - src *= uvec2(1540483477u); - uint _49 = ((3744546739u ^ src.x) * 1540483477u) ^ src.y; - uint _56 = (_49 ^ (_49 >> 13u)) * 1540483477u; - return _56 ^ (_56 >> 15u); - } - - float hash12(vec2 src) - { - uvec2 param = floatBitsToUint(src); - uint _69 = murmurHash12(param); - return uintBitsToFloat((_69 & 8388607u) | 1065353216u) - 1.0; + return (fract(sin(dot(U, vec2(11.98980045318603515625, 78.233001708984375))) * 43758.546875) - ((((fract(sin(dot(U + vec2(-1.0, 0.0), vec2(11.98980045318603515625, 78.233001708984375))) * 43758.546875) + fract(sin(dot(U + vec2(1.0, 0.0), vec2(11.98980045318603515625, 78.233001708984375))) * 43758.546875)) + fract(sin(dot(U + vec2(0.0, 1.0), vec2(11.98980045318603515625, 78.233001708984375))) * 43758.546875)) + fract(sin(dot(U + vec2(0.0, -1.0), vec2(11.98980045318603515625, 78.233001708984375))) * 43758.546875)) * 0.25)) + 0.5; } void main() { - if (_84.planeType == 1) + if (_70.planeType == 1) { frag_color = vec4(0.0, 0.0, 1.0, 1.0); } else { - vec2 _109 = pos.xz * 100000.0; - vec2 _110 = round(_109); - vec2 param = _110; - float _122 = hash12(param); - if (((_122 - (0.0625 * float(idx))) * 0.5) < length(_110 - _109)) + vec2 _93 = pos.xz * 80000.0; + float _97 = _93.y; + float _102 = _93.x + sin(_97); + vec2 _177 = vec2(_102, _97 + sin(_102)); + vec2 _113 = round(_177); + vec2 param = _113; + float _129 = B(param) + (sin(pos.x) * 0.4000000059604644775390625); + bool _134 = idx > 0; + if (_134 && (_129 < 0.20000000298023223876953125)) { discard; } - frag_color = vec4(0.0, _122, 0.0, 1.0); + float _146 = 0.015625 * float(idx); + bool _159; + if (_134) + { + _159 = ((_129 - _146) * 0.5) < length(_113 - _177); + } + else + { + _159 = _134; + } + if (_159) + { + discard; + } + else + { + frag_color = vec4(0.0, min(1.0, _146 + 0.100000001490116119384765625), 0.0, 1.0); + } } } @@ -187,69 +196,109 @@ fs_plane_source_glsl430 := u8.[ 0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x69, 0x6d,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, 0x70,0x6c,0x61,0x6e,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66, - 0x69,0x67,0x20,0x5f,0x38,0x34,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, + 0x69,0x67,0x20,0x5f,0x37,0x30,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75, 0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, 0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, 0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20, 0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61, 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x66,0x6c,0x61,0x74,0x20,0x69, - 0x6e,0x20,0x69,0x6e,0x74,0x20,0x69,0x64,0x78,0x3b,0x0a,0x0a,0x75,0x69,0x6e,0x74, - 0x20,0x6d,0x75,0x72,0x6d,0x75,0x72,0x48,0x61,0x73,0x68,0x31,0x32,0x28,0x69,0x6e, - 0x6f,0x75,0x74,0x20,0x75,0x76,0x65,0x63,0x32,0x20,0x73,0x72,0x63,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x73,0x72,0x63,0x20,0x2a,0x3d,0x20,0x75,0x76,0x65,0x63, - 0x32,0x28,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34,0x37,0x37,0x75,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x73,0x72,0x63,0x20,0x5e,0x3d,0x20,0x28,0x73,0x72,0x63,0x20, - 0x3e,0x3e,0x20,0x75,0x76,0x65,0x63,0x32,0x28,0x32,0x34,0x75,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x73,0x72,0x63,0x20,0x2a,0x3d,0x20,0x75,0x76,0x65,0x63,0x32, - 0x28,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34,0x37,0x37,0x75,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x75,0x69,0x6e,0x74,0x20,0x5f,0x34,0x39,0x20,0x3d,0x20,0x28,0x28, - 0x33,0x37,0x34,0x34,0x35,0x34,0x36,0x37,0x33,0x39,0x75,0x20,0x5e,0x20,0x73,0x72, - 0x63,0x2e,0x78,0x29,0x20,0x2a,0x20,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34,0x37, - 0x37,0x75,0x29,0x20,0x5e,0x20,0x73,0x72,0x63,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x75,0x69,0x6e,0x74,0x20,0x5f,0x35,0x36,0x20,0x3d,0x20,0x28,0x5f,0x34,0x39, - 0x20,0x5e,0x20,0x28,0x5f,0x34,0x39,0x20,0x3e,0x3e,0x20,0x31,0x33,0x75,0x29,0x29, - 0x20,0x2a,0x20,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34,0x37,0x37,0x75,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x35,0x36,0x20,0x5e, - 0x20,0x28,0x5f,0x35,0x36,0x20,0x3e,0x3e,0x20,0x31,0x35,0x75,0x29,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x68,0x61,0x73,0x68,0x31,0x32,0x28,0x76, - 0x65,0x63,0x32,0x20,0x73,0x72,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x75, - 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x42,0x69,0x74,0x73,0x54,0x6f,0x55,0x69,0x6e,0x74,0x28,0x73,0x72,0x63, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x69,0x6e,0x74,0x20,0x5f,0x36,0x39,0x20, - 0x3d,0x20,0x6d,0x75,0x72,0x6d,0x75,0x72,0x48,0x61,0x73,0x68,0x31,0x32,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x75,0x69,0x6e,0x74,0x42,0x69,0x74,0x73,0x54,0x6f,0x46,0x6c,0x6f,0x61, - 0x74,0x28,0x28,0x5f,0x36,0x39,0x20,0x26,0x20,0x38,0x33,0x38,0x38,0x36,0x30,0x37, - 0x75,0x29,0x20,0x7c,0x20,0x31,0x30,0x36,0x35,0x33,0x35,0x33,0x32,0x31,0x36,0x75, - 0x29,0x20,0x2d,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64, - 0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x38,0x34,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x54,0x79,0x70,0x65,0x20, - 0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d, - 0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, - 0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x30, - 0x39,0x20,0x3d,0x20,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x31,0x30,0x30, - 0x30,0x30,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x32,0x20,0x5f,0x31,0x31,0x30,0x20,0x3d,0x20,0x72,0x6f,0x75,0x6e,0x64, - 0x28,0x5f,0x31,0x30,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x6e,0x20,0x69,0x6e,0x74,0x20,0x69,0x64,0x78,0x3b,0x0a,0x0a,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x42,0x28,0x76,0x65,0x63,0x32,0x20,0x55,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x72,0x61,0x63,0x74,0x28, + 0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x55,0x2c,0x20,0x76,0x65,0x63,0x32,0x28, + 0x31,0x31,0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30, + 0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30, + 0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a, + 0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x20,0x2d, + 0x20,0x28,0x28,0x28,0x28,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64, + 0x6f,0x74,0x28,0x55,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x2d,0x31,0x2e,0x30, + 0x2c,0x20,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x31,0x2e, + 0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35,0x31, + 0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31,0x37, + 0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34,0x33, + 0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x20,0x2b,0x20,0x66,0x72, + 0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x55,0x20,0x2b,0x20, + 0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x32,0x28,0x31,0x31,0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35, + 0x33,0x31,0x38,0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38, + 0x2e,0x32,0x33,0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35, + 0x29,0x29,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38, + 0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e, + 0x28,0x64,0x6f,0x74,0x28,0x55,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e, + 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x31, + 0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35, + 0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31, + 0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34, + 0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20, + 0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x55,0x20, + 0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30, + 0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x31,0x2e,0x39,0x38,0x39,0x38,0x30, + 0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c, + 0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34, + 0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35, + 0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x35,0x29,0x29, + 0x20,0x2b,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20, + 0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x37,0x30,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x54,0x79,0x70,0x65,0x20,0x3d, + 0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31, + 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x39,0x33,0x20, + 0x3d,0x20,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x38,0x30,0x30,0x30,0x30, + 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x39,0x37,0x20,0x3d,0x20,0x5f,0x39,0x33,0x2e,0x79,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x30, + 0x32,0x20,0x3d,0x20,0x5f,0x39,0x33,0x2e,0x78,0x20,0x2b,0x20,0x73,0x69,0x6e,0x28, + 0x5f,0x39,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x32,0x20,0x5f,0x31,0x37,0x37,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x5f, + 0x31,0x30,0x32,0x2c,0x20,0x5f,0x39,0x37,0x20,0x2b,0x20,0x73,0x69,0x6e,0x28,0x5f, + 0x31,0x30,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x32,0x20,0x5f,0x31,0x31,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x6e,0x64, + 0x28,0x5f,0x31,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x31, - 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x31,0x32,0x32,0x20,0x3d,0x20,0x68,0x61,0x73,0x68,0x31,0x32,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x28,0x28,0x5f,0x31,0x32,0x32,0x20,0x2d,0x20,0x28,0x30,0x2e,0x30, - 0x36,0x32,0x35,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x64,0x78,0x29, - 0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x67, - 0x74,0x68,0x28,0x5f,0x31,0x31,0x30,0x20,0x2d,0x20,0x5f,0x31,0x30,0x39,0x29,0x29, + 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x31,0x32,0x39,0x20,0x3d,0x20,0x42,0x28,0x70,0x61,0x72,0x61,0x6d,0x29, + 0x20,0x2b,0x20,0x28,0x73,0x69,0x6e,0x28,0x70,0x6f,0x73,0x2e,0x78,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34, + 0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x34, + 0x20,0x3d,0x20,0x69,0x64,0x78,0x20,0x3e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x34,0x20,0x26,0x26,0x20, + 0x28,0x5f,0x31,0x32,0x39,0x20,0x3c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35, + 0x33,0x31,0x32,0x35,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73, + 0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, + 0x34,0x36,0x20,0x3d,0x20,0x30,0x2e,0x30,0x31,0x35,0x36,0x32,0x35,0x20,0x2a,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x64,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x35,0x39,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x34,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x35,0x39,0x20,0x3d,0x20,0x28,0x28, + 0x5f,0x31,0x32,0x39,0x20,0x2d,0x20,0x5f,0x31,0x34,0x36,0x29,0x20,0x2a,0x20,0x30, + 0x2e,0x35,0x29,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31,0x31, + 0x33,0x20,0x2d,0x20,0x5f,0x31,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x35,0x39,0x20,0x3d,0x20,0x5f, + 0x31,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x35,0x39,0x29, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76, - 0x65,0x63,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x31,0x32,0x32,0x2c,0x20,0x30, - 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x7d,0x0a,0x0a,0x00, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30, + 0x2e,0x30,0x2c,0x20,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x31,0x34, + 0x36,0x20,0x2b,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34, + 0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32, + 0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d, + 0x0a,0x0a,0x00, ]; /* #version 300 es @@ -262,7 +311,7 @@ fs_plane_source_glsl430 := u8.[ void main() { vec3 _16 = position.xyz * 1000.0; - gl_Position = mat4(plane_vs_params[0], plane_vs_params[1], plane_vs_params[2], plane_vs_params[3]) * vec4(_16.x, float(gl_InstanceID) * 0.00999999977648258209228515625, _16.z, 1.0); + gl_Position = mat4(plane_vs_params[0], plane_vs_params[1], plane_vs_params[2], plane_vs_params[3]) * vec4(_16.x, float(gl_InstanceID) * 0.00200000009499490261077880859375, _16.z, 1.0); pos = position; idx = gl_InstanceID; } @@ -288,13 +337,13 @@ vs_plane_source_glsl300es := u8.[ 0x20,0x70,0x6c,0x61,0x6e,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, 0x5b,0x33,0x5d,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x31,0x36,0x2e, 0x78,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x67,0x6c,0x5f,0x49,0x6e,0x73,0x74, - 0x61,0x6e,0x63,0x65,0x49,0x44,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x39,0x39, - 0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39, - 0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x5f,0x31,0x36,0x2e,0x7a, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20, - 0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x64,0x78,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63, - 0x65,0x49,0x44,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x61,0x6e,0x63,0x65,0x49,0x44,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x32,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x34,0x39,0x39,0x34,0x39,0x30,0x32,0x36,0x31, + 0x30,0x37,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x5f,0x31, + 0x36,0x2e,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70, + 0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x64,0x78,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x49,0x6e,0x73,0x74, + 0x61,0x6e,0x63,0x65,0x49,0x44,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #version 300 es @@ -319,46 +368,55 @@ vs_plane_source_glsl300es := u8.[ highp float time; }; - uniform plane_world_config _84; + uniform plane_world_config _70; layout(location = 0) out highp vec4 frag_color; in highp vec4 pos; flat in int idx; - uint murmurHash12(inout uvec2 src) + highp float B(highp vec2 U) { - src *= uvec2(1540483477u); - src ^= (src >> uvec2(24u)); - src *= uvec2(1540483477u); - uint _49 = ((3744546739u ^ src.x) * 1540483477u) ^ src.y; - uint _56 = (_49 ^ (_49 >> 13u)) * 1540483477u; - return _56 ^ (_56 >> 15u); - } - - highp float hash12(highp vec2 src) - { - uvec2 param = floatBitsToUint(src); - uint _69 = murmurHash12(param); - return uintBitsToFloat((_69 & 8388607u) | 1065353216u) - 1.0; + return (fract(sin(dot(U, vec2(11.98980045318603515625, 78.233001708984375))) * 43758.546875) - ((((fract(sin(dot(U + vec2(-1.0, 0.0), vec2(11.98980045318603515625, 78.233001708984375))) * 43758.546875) + fract(sin(dot(U + vec2(1.0, 0.0), vec2(11.98980045318603515625, 78.233001708984375))) * 43758.546875)) + fract(sin(dot(U + vec2(0.0, 1.0), vec2(11.98980045318603515625, 78.233001708984375))) * 43758.546875)) + fract(sin(dot(U + vec2(0.0, -1.0), vec2(11.98980045318603515625, 78.233001708984375))) * 43758.546875)) * 0.25)) + 0.5; } void main() { - if (_84.planeType == 1) + if (_70.planeType == 1) { frag_color = vec4(0.0, 0.0, 1.0, 1.0); } else { - highp vec2 _109 = pos.xz * 100000.0; - highp vec2 _110 = round(_109); - highp vec2 param = _110; - highp float _122 = hash12(param); - if (((_122 - (0.0625 * float(idx))) * 0.5) < length(_110 - _109)) + highp vec2 _93 = pos.xz * 80000.0; + highp float _97 = _93.y; + highp float _102 = _93.x + sin(_97); + highp vec2 _177 = vec2(_102, _97 + sin(_102)); + highp vec2 _113 = round(_177); + highp vec2 param = _113; + highp float _129 = B(param) + (sin(pos.x) * 0.4000000059604644775390625); + bool _134 = idx > 0; + if (_134 && (_129 < 0.20000000298023223876953125)) { discard; } - frag_color = vec4(0.0, _122, 0.0, 1.0); + highp float _146 = 0.015625 * float(idx); + bool _159; + if (_134) + { + _159 = ((_129 - _146) * 0.5) < length(_113 - _177); + } + else + { + _159 = _134; + } + if (_159) + { + discard; + } + else + { + frag_color = vec4(0.0, min(1.0, _146 + 0.100000001490116119384765625), 0.0, 1.0); + } } } @@ -393,69 +451,111 @@ fs_plane_source_glsl300es := u8.[ 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x74,0x69,0x6d,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f, 0x72,0x6d,0x20,0x70,0x6c,0x61,0x6e,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63, - 0x6f,0x6e,0x66,0x69,0x67,0x20,0x5f,0x38,0x34,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f, + 0x6f,0x6e,0x66,0x69,0x67,0x20,0x5f,0x37,0x30,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f, 0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29, 0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x69,0x6e,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x66, 0x6c,0x61,0x74,0x20,0x69,0x6e,0x20,0x69,0x6e,0x74,0x20,0x69,0x64,0x78,0x3b,0x0a, - 0x0a,0x75,0x69,0x6e,0x74,0x20,0x6d,0x75,0x72,0x6d,0x75,0x72,0x48,0x61,0x73,0x68, - 0x31,0x32,0x28,0x69,0x6e,0x6f,0x75,0x74,0x20,0x75,0x76,0x65,0x63,0x32,0x20,0x73, - 0x72,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x72,0x63,0x20,0x2a,0x3d, - 0x20,0x75,0x76,0x65,0x63,0x32,0x28,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34,0x37, - 0x37,0x75,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x72,0x63,0x20,0x5e,0x3d,0x20, - 0x28,0x73,0x72,0x63,0x20,0x3e,0x3e,0x20,0x75,0x76,0x65,0x63,0x32,0x28,0x32,0x34, - 0x75,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x72,0x63,0x20,0x2a,0x3d,0x20, - 0x75,0x76,0x65,0x63,0x32,0x28,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34,0x37,0x37, - 0x75,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x69,0x6e,0x74,0x20,0x5f,0x34,0x39, - 0x20,0x3d,0x20,0x28,0x28,0x33,0x37,0x34,0x34,0x35,0x34,0x36,0x37,0x33,0x39,0x75, - 0x20,0x5e,0x20,0x73,0x72,0x63,0x2e,0x78,0x29,0x20,0x2a,0x20,0x31,0x35,0x34,0x30, - 0x34,0x38,0x33,0x34,0x37,0x37,0x75,0x29,0x20,0x5e,0x20,0x73,0x72,0x63,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x69,0x6e,0x74,0x20,0x5f,0x35,0x36,0x20,0x3d, - 0x20,0x28,0x5f,0x34,0x39,0x20,0x5e,0x20,0x28,0x5f,0x34,0x39,0x20,0x3e,0x3e,0x20, - 0x31,0x33,0x75,0x29,0x29,0x20,0x2a,0x20,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34, - 0x37,0x37,0x75,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x5f,0x35,0x36,0x20,0x5e,0x20,0x28,0x5f,0x35,0x36,0x20,0x3e,0x3e,0x20,0x31,0x35, - 0x75,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x68,0x61,0x73,0x68,0x31,0x32,0x28,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x73,0x72,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x75,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x42,0x69,0x74,0x73,0x54,0x6f,0x55,0x69,0x6e,0x74,0x28,0x73,0x72, - 0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x69,0x6e,0x74,0x20,0x5f,0x36,0x39, - 0x20,0x3d,0x20,0x6d,0x75,0x72,0x6d,0x75,0x72,0x48,0x61,0x73,0x68,0x31,0x32,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x75,0x69,0x6e,0x74,0x42,0x69,0x74,0x73,0x54,0x6f,0x46,0x6c,0x6f, - 0x61,0x74,0x28,0x28,0x5f,0x36,0x39,0x20,0x26,0x20,0x38,0x33,0x38,0x38,0x36,0x30, - 0x37,0x75,0x29,0x20,0x7c,0x20,0x31,0x30,0x36,0x35,0x33,0x35,0x33,0x32,0x31,0x36, - 0x75,0x29,0x20,0x2d,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69, - 0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x5f,0x38,0x34,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x54,0x79,0x70,0x65, - 0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, - 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, - 0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x5f,0x31,0x30,0x39,0x20,0x3d,0x20,0x70,0x6f,0x73,0x2e,0x78, - 0x7a,0x20,0x2a,0x20,0x31,0x30,0x30,0x30,0x30,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, - 0x20,0x5f,0x31,0x31,0x30,0x20,0x3d,0x20,0x72,0x6f,0x75,0x6e,0x64,0x28,0x5f,0x31, - 0x30,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, - 0x5f,0x31,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x32,0x32,0x20,0x3d, - 0x20,0x68,0x61,0x73,0x68,0x31,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x28,0x5f,0x31, - 0x32,0x32,0x20,0x2d,0x20,0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x20,0x2a,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x28,0x69,0x64,0x78,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e, - 0x35,0x29,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31,0x31,0x30, - 0x20,0x2d,0x20,0x5f,0x31,0x30,0x39,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, - 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x30, - 0x2c,0x20,0x5f,0x31,0x32,0x32,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + 0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x42,0x28,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x55,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x72,0x61,0x63,0x74, + 0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x55,0x2c,0x20,0x76,0x65,0x63,0x32, + 0x28,0x31,0x31,0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36, + 0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33, + 0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20, + 0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x20, + 0x2d,0x20,0x28,0x28,0x28,0x28,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28, + 0x64,0x6f,0x74,0x28,0x55,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x2d,0x31,0x2e, + 0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x31, + 0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35, + 0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31, + 0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34, + 0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x20,0x2b,0x20,0x66, + 0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x55,0x20,0x2b, + 0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2c, + 0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x31,0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34, + 0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37, + 0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37, + 0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36, + 0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69, + 0x6e,0x28,0x64,0x6f,0x74,0x28,0x55,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30, + 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x31, + 0x31,0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33, + 0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30, + 0x31,0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20, + 0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b, + 0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x55, + 0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e, + 0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x31,0x2e,0x39,0x38,0x39,0x38, + 0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35, + 0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38, + 0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e, + 0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x35,0x29, + 0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64, + 0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x37,0x30,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x54,0x79,0x70,0x65,0x20, + 0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d, + 0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x32,0x20,0x5f,0x39,0x33,0x20,0x3d,0x20,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20, + 0x2a,0x20,0x38,0x30,0x30,0x30,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x39,0x37,0x20,0x3d,0x20,0x5f,0x39,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x31,0x30,0x32,0x20,0x3d,0x20,0x5f,0x39,0x33,0x2e,0x78,0x20,0x2b,0x20,0x73, + 0x69,0x6e,0x28,0x5f,0x39,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x37,0x37, + 0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x30,0x32,0x2c,0x20,0x5f,0x39, + 0x37,0x20,0x2b,0x20,0x73,0x69,0x6e,0x28,0x5f,0x31,0x30,0x32,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x32,0x20,0x5f,0x31,0x31,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x6e,0x64,0x28, + 0x5f,0x31,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, + 0x3d,0x20,0x5f,0x31,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x32,0x39, + 0x20,0x3d,0x20,0x42,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x20,0x2b,0x20,0x28,0x73, + 0x69,0x6e,0x28,0x70,0x6f,0x73,0x2e,0x78,0x29,0x20,0x2a,0x20,0x30,0x2e,0x34,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37, + 0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x34,0x20,0x3d,0x20,0x69,0x64, + 0x78,0x20,0x3e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x31,0x33,0x34,0x20,0x26,0x26,0x20,0x28,0x5f,0x31,0x32,0x39, + 0x20,0x3c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38, + 0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x31,0x34,0x36,0x20,0x3d,0x20,0x30,0x2e,0x30,0x31,0x35,0x36,0x32,0x35,0x20,0x2a, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x64,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x35,0x39,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x34, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x35,0x39,0x20,0x3d,0x20,0x28, + 0x28,0x5f,0x31,0x32,0x39,0x20,0x2d,0x20,0x5f,0x31,0x34,0x36,0x29,0x20,0x2a,0x20, + 0x30,0x2e,0x35,0x29,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31, + 0x31,0x33,0x20,0x2d,0x20,0x5f,0x31,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x35,0x39,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x35,0x39, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x31, + 0x34,0x36,0x20,0x2b,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31, + 0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36, + 0x32,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x7d,0x0a,0x0a,0x00, ]; /* #include @@ -484,7 +584,7 @@ fs_plane_source_glsl300es := u8.[ { main0_out out = {}; float3 _16 = in.position.xyz * 1000.0; - out.gl_Position = _28.mvp * float4(_16.x, float(int(gl_InstanceIndex)) * 0.00999999977648258209228515625, _16.z, 1.0); + out.gl_Position = _28.mvp * float4(_16.x, float(int(gl_InstanceIndex)) * 0.00200000009499490261077880859375, _16.z, 1.0); out.pos = in.position; out.idx = int(gl_InstanceIndex); return out; @@ -528,15 +628,15 @@ vs_plane_source_metal_macos := u8.[ 0x6d,0x76,0x70,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x5f,0x31,0x36, 0x2e,0x78,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x6e,0x74,0x28,0x67,0x6c, 0x5f,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x29,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37, - 0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36, - 0x32,0x35,0x2c,0x20,0x5f,0x31,0x36,0x2e,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x6f,0x75,0x74,0x2e,0x69,0x64,0x78,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x67,0x6c, - 0x5f,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x00, + 0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x39, + 0x34,0x39,0x39,0x34,0x39,0x30,0x32,0x36,0x31,0x30,0x37,0x37,0x38,0x38,0x30,0x38, + 0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x5f,0x31,0x36,0x2e,0x7a,0x2c,0x20,0x31,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x70,0x6f,0x73,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x69,0x64,0x78,0x20,0x3d,0x20,0x69,0x6e,0x74, + 0x28,0x67,0x6c,0x5f,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65, + 0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f, + 0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #pragma clang diagnostic ignored "-Wmissing-prototypes" @@ -576,42 +676,50 @@ vs_plane_source_metal_macos := u8.[ }; static inline __attribute__((always_inline)) - uint murmurHash12(thread uint2& src) + float B(thread const float2& U) { - src *= uint2(1540483477u); - src ^= (src >> uint2(24u)); - src *= uint2(1540483477u); - uint _49 = ((3744546739u ^ src.x) * 1540483477u) ^ src.y; - uint _56 = (_49 ^ (_49 >> 13u)) * 1540483477u; - return _56 ^ (_56 >> 15u); + return (fract(sin(dot(U, float2(11.98980045318603515625, 78.233001708984375))) * 43758.546875) - ((((fract(sin(dot(U + float2(-1.0, 0.0), float2(11.98980045318603515625, 78.233001708984375))) * 43758.546875) + fract(sin(dot(U + float2(1.0, 0.0), float2(11.98980045318603515625, 78.233001708984375))) * 43758.546875)) + fract(sin(dot(U + float2(0.0, 1.0), float2(11.98980045318603515625, 78.233001708984375))) * 43758.546875)) + fract(sin(dot(U + float2(0.0, -1.0), float2(11.98980045318603515625, 78.233001708984375))) * 43758.546875)) * 0.25)) + 0.5; } - static inline __attribute__((always_inline)) - float hash12(thread const float2& src) - { - uint2 param = as_type(src); - uint _69 = murmurHash12(param); - return as_type((_69 & 8388607u) | 1065353216u) - 1.0; - } - - fragment main0_out main0(main0_in in [[stage_in]], constant plane_world_config& _84 [[buffer(0)]]) + fragment main0_out main0(main0_in in [[stage_in]], constant plane_world_config& _70 [[buffer(0)]]) { main0_out out = {}; - if (_84.planeType == 1) + if (_70.planeType == 1) { out.frag_color = float4(0.0, 0.0, 1.0, 1.0); } else { - float2 _109 = in.pos.xz * 100000.0; - float2 _110 = round(_109); - float2 param = _110; - float _122 = hash12(param); - if (((_122 - (0.0625 * float(in.idx))) * 0.5) < length(_110 - _109)) + float2 _93 = in.pos.xz * 80000.0; + float _97 = _93.y; + float _102 = _93.x + sin(_97); + float2 _177 = float2(_102, _97 + sin(_102)); + float2 _113 = round(_177); + float2 param = _113; + float _129 = B(param) + (sin(in.pos.x) * 0.4000000059604644775390625); + bool _134 = in.idx > 0; + if (_134 && (_129 < 0.20000000298023223876953125)) { discard_fragment(); } - out.frag_color = float4(0.0, _122, 0.0, 1.0); + float _146 = 0.015625 * float(in.idx); + bool _159; + if (_134) + { + _159 = ((_129 - _146) * 0.5) < length(_113 - _177); + } + else + { + _159 = _134; + } + if (_159) + { + discard_fragment(); + } + else + { + out.frag_color = float4(0.0, fast::min(1.0, _146 + 0.100000001490116119384765625), 0.0, 1.0); + } } return out; } @@ -658,76 +766,116 @@ fs_plane_source_metal_macos := u8.[ 0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74, 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, - 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x75,0x69,0x6e,0x74,0x20, - 0x6d,0x75,0x72,0x6d,0x75,0x72,0x48,0x61,0x73,0x68,0x31,0x32,0x28,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x75,0x69,0x6e,0x74,0x32,0x26,0x20,0x73,0x72,0x63,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x72,0x63,0x20,0x2a,0x3d,0x20,0x75,0x69,0x6e, - 0x74,0x32,0x28,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34,0x37,0x37,0x75,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x73,0x72,0x63,0x20,0x5e,0x3d,0x20,0x28,0x73,0x72,0x63, - 0x20,0x3e,0x3e,0x20,0x75,0x69,0x6e,0x74,0x32,0x28,0x32,0x34,0x75,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x73,0x72,0x63,0x20,0x2a,0x3d,0x20,0x75,0x69,0x6e,0x74, - 0x32,0x28,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34,0x37,0x37,0x75,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x75,0x69,0x6e,0x74,0x20,0x5f,0x34,0x39,0x20,0x3d,0x20,0x28, - 0x28,0x33,0x37,0x34,0x34,0x35,0x34,0x36,0x37,0x33,0x39,0x75,0x20,0x5e,0x20,0x73, - 0x72,0x63,0x2e,0x78,0x29,0x20,0x2a,0x20,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34, - 0x37,0x37,0x75,0x29,0x20,0x5e,0x20,0x73,0x72,0x63,0x2e,0x79,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x75,0x69,0x6e,0x74,0x20,0x5f,0x35,0x36,0x20,0x3d,0x20,0x28,0x5f,0x34, - 0x39,0x20,0x5e,0x20,0x28,0x5f,0x34,0x39,0x20,0x3e,0x3e,0x20,0x31,0x33,0x75,0x29, - 0x29,0x20,0x2a,0x20,0x31,0x35,0x34,0x30,0x34,0x38,0x33,0x34,0x37,0x37,0x75,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x35,0x36,0x20, - 0x5e,0x20,0x28,0x5f,0x35,0x36,0x20,0x3e,0x3e,0x20,0x31,0x35,0x75,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, - 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x68,0x61,0x73,0x68,0x31,0x32,0x28,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x26,0x20,0x73,0x72,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x75,0x69,0x6e, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x61,0x73,0x5f,0x74,0x79, - 0x70,0x65,0x3c,0x75,0x69,0x6e,0x74,0x32,0x3e,0x28,0x73,0x72,0x63,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x75,0x69,0x6e,0x74,0x20,0x5f,0x36,0x39,0x20,0x3d,0x20,0x6d, - 0x75,0x72,0x6d,0x75,0x72,0x48,0x61,0x73,0x68,0x31,0x32,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61, - 0x73,0x5f,0x74,0x79,0x70,0x65,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x28,0x28,0x5f, - 0x36,0x39,0x20,0x26,0x20,0x38,0x33,0x38,0x38,0x36,0x30,0x37,0x75,0x29,0x20,0x7c, - 0x20,0x31,0x30,0x36,0x35,0x33,0x35,0x33,0x32,0x31,0x36,0x75,0x29,0x20,0x2d,0x20, - 0x31,0x2e,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74, - 0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30, - 0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73, - 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x61,0x6e,0x74,0x20,0x70,0x6c,0x61,0x6e,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f, - 0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x38,0x34,0x20,0x5b,0x5b,0x62,0x75, - 0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d, - 0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x34, - 0x2e,0x70,0x6c,0x61,0x6e,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x20,0x31,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f, - 0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, - 0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x42,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x55,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x72,0x61,0x63,0x74,0x28,0x73, + 0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x55,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x28,0x31,0x31,0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36, + 0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33, + 0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20, + 0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x20, + 0x2d,0x20,0x28,0x28,0x28,0x28,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28, + 0x64,0x6f,0x74,0x28,0x55,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d, + 0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x31,0x31,0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38, + 0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33, + 0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29, + 0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29, + 0x20,0x2b,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74, + 0x28,0x55,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x31, + 0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35, + 0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31, + 0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34, + 0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20, + 0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x55,0x20, + 0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, + 0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x31,0x2e,0x39,0x38, + 0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35,0x31,0x35,0x36, + 0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31,0x37,0x30,0x38, + 0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35, + 0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x66,0x72,0x61, + 0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x55,0x20,0x2b,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x31,0x2e,0x39,0x38,0x39,0x38, + 0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35, + 0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38, + 0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e, + 0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x35,0x29, + 0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67, + 0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d, + 0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e, + 0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x70,0x6c,0x61,0x6e,0x65,0x5f,0x77,0x6f, + 0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x37,0x30,0x20, + 0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f, + 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x37,0x30,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x54,0x79,0x70,0x65,0x20,0x3d, + 0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x5f,0x39,0x33,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x70,0x6f,0x73, + 0x2e,0x78,0x7a,0x20,0x2a,0x20,0x38,0x30,0x30,0x30,0x30,0x2e,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,0x37, + 0x20,0x3d,0x20,0x5f,0x39,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x30,0x32,0x20,0x3d,0x20,0x5f, + 0x39,0x33,0x2e,0x78,0x20,0x2b,0x20,0x73,0x69,0x6e,0x28,0x5f,0x39,0x37,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x5f,0x31,0x30,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x7a, - 0x20,0x2a,0x20,0x31,0x30,0x30,0x30,0x30,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x31,0x30, - 0x20,0x3d,0x20,0x72,0x6f,0x75,0x6e,0x64,0x28,0x5f,0x31,0x30,0x39,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x32,0x32,0x20, - 0x3d,0x20,0x68,0x61,0x73,0x68,0x31,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x28,0x5f, - 0x31,0x32,0x32,0x20,0x2d,0x20,0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x20,0x2a,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x6e,0x2e,0x69,0x64,0x78,0x29,0x29,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28, - 0x5f,0x31,0x31,0x30,0x20,0x2d,0x20,0x5f,0x31,0x30,0x39,0x29,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x5f,0x66,0x72,0x61,0x67, - 0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72, - 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x31,0x32,0x32,0x2c,0x20,0x30,0x2e,0x30, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x00, + 0x5f,0x31,0x37,0x37,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x31, + 0x30,0x32,0x2c,0x20,0x5f,0x39,0x37,0x20,0x2b,0x20,0x73,0x69,0x6e,0x28,0x5f,0x31, + 0x30,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x31,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x6e, + 0x64,0x28,0x5f,0x31,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, + 0x5f,0x31,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x31,0x32,0x39,0x20,0x3d,0x20,0x42,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x29,0x20,0x2b,0x20,0x28,0x73,0x69,0x6e,0x28,0x69,0x6e,0x2e,0x70,0x6f, + 0x73,0x2e,0x78,0x29,0x20,0x2a,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, + 0x6c,0x20,0x5f,0x31,0x33,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x64,0x78,0x20, + 0x3e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x31,0x33,0x34,0x20,0x26,0x26,0x20,0x28,0x5f,0x31,0x32,0x39,0x20,0x3c, + 0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32, + 0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x5f,0x66,0x72, + 0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x34,0x36,0x20,0x3d,0x20,0x30,0x2e,0x30,0x31,0x35,0x36,0x32, + 0x35,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x6e,0x2e,0x69,0x64,0x78, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x31,0x35,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x33,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x35,0x39,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x32,0x39,0x20,0x2d,0x20,0x5f,0x31, + 0x34,0x36,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x3c,0x20,0x6c,0x65,0x6e, + 0x67,0x74,0x68,0x28,0x5f,0x31,0x31,0x33,0x20,0x2d,0x20,0x5f,0x31,0x37,0x37,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x31,0x35,0x39,0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x35,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69, + 0x73,0x63,0x61,0x72,0x64,0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f, + 0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x66,0x61,0x73,0x74, + 0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x31,0x34,0x36,0x20, + 0x2b,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30, + 0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29, + 0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x00, ]; plane_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc: sg_shader_desc; @@ -751,46 +899,46 @@ plane_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[1].size = 144; desc.uniform_blocks[1].glsl_uniforms[0].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_84.skyBase"; + desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_70.skyBase"; desc.uniform_blocks[1].glsl_uniforms[1].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_84.skyTop"; + desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_70.skyTop"; desc.uniform_blocks[1].glsl_uniforms[2].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_84.sunDisk"; + desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_70.sunDisk"; desc.uniform_blocks[1].glsl_uniforms[3].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_84.horizonHalo"; + desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_70.horizonHalo"; desc.uniform_blocks[1].glsl_uniforms[4].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_84.sunHalo"; + desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_70.sunHalo"; desc.uniform_blocks[1].glsl_uniforms[5].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_84.sunLightColor"; + desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_70.sunLightColor"; desc.uniform_blocks[1].glsl_uniforms[6].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_84.sunPosition"; + desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_70.sunPosition"; desc.uniform_blocks[1].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_84.sunIntensity"; + desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_70.sunIntensity"; desc.uniform_blocks[1].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_84.skyIntensity"; + desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_70.skyIntensity"; desc.uniform_blocks[1].glsl_uniforms[9].type = .INT; desc.uniform_blocks[1].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_84.hasClouds"; + desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_70.hasClouds"; desc.uniform_blocks[1].glsl_uniforms[10].type = .INT; desc.uniform_blocks[1].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_84.hasPlane"; + desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_70.hasPlane"; desc.uniform_blocks[1].glsl_uniforms[11].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_84.planeHeight"; + desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_70.planeHeight"; desc.uniform_blocks[1].glsl_uniforms[12].type = .INT; desc.uniform_blocks[1].glsl_uniforms[12].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_84.planeType"; + desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_70.planeType"; desc.uniform_blocks[1].glsl_uniforms[13].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[13].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_84.time"; + desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_70.time"; case .GLES3; desc.vertex_func.source = xx *vs_plane_source_glsl300es; desc.vertex_func.entry = "main"; @@ -809,46 +957,46 @@ plane_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[1].size = 144; desc.uniform_blocks[1].glsl_uniforms[0].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_84.skyBase"; + desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_70.skyBase"; desc.uniform_blocks[1].glsl_uniforms[1].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_84.skyTop"; + desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_70.skyTop"; desc.uniform_blocks[1].glsl_uniforms[2].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_84.sunDisk"; + desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_70.sunDisk"; desc.uniform_blocks[1].glsl_uniforms[3].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_84.horizonHalo"; + desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_70.horizonHalo"; desc.uniform_blocks[1].glsl_uniforms[4].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_84.sunHalo"; + desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_70.sunHalo"; desc.uniform_blocks[1].glsl_uniforms[5].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_84.sunLightColor"; + desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_70.sunLightColor"; desc.uniform_blocks[1].glsl_uniforms[6].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_84.sunPosition"; + desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_70.sunPosition"; desc.uniform_blocks[1].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_84.sunIntensity"; + desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_70.sunIntensity"; desc.uniform_blocks[1].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_84.skyIntensity"; + desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_70.skyIntensity"; desc.uniform_blocks[1].glsl_uniforms[9].type = .INT; desc.uniform_blocks[1].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_84.hasClouds"; + desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_70.hasClouds"; desc.uniform_blocks[1].glsl_uniforms[10].type = .INT; desc.uniform_blocks[1].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_84.hasPlane"; + desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_70.hasPlane"; desc.uniform_blocks[1].glsl_uniforms[11].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_84.planeHeight"; + desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_70.planeHeight"; desc.uniform_blocks[1].glsl_uniforms[12].type = .INT; desc.uniform_blocks[1].glsl_uniforms[12].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_84.planeType"; + desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_70.planeType"; desc.uniform_blocks[1].glsl_uniforms[13].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[13].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_84.time"; + desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_70.time"; case .METAL_MACOS; desc.vertex_func.source = xx *vs_plane_source_metal_macos; desc.vertex_func.entry = "main0"; diff --git a/src/shaders/shader_plane.glsl b/src/shaders/shader_plane.glsl index 7cce471..e5cde47 100644 --- a/src/shaders/shader_plane.glsl +++ b/src/shaders/shader_plane.glsl @@ -1,5 +1,6 @@ @vs vs_plane + in vec4 position; layout(binding=0) uniform plane_vs_params { @@ -12,7 +13,7 @@ out flat int idx; void main() { vec3 multisize = vec3(position.xyz * 1000.0); - gl_Position = mvp * (vec4(multisize.x, 0.0 + float(gl_InstanceIndex) * 0.01, multisize.z, 1.0)); + gl_Position = mvp * (vec4(multisize.x, 0.0 + float(gl_InstanceIndex) * 0.002, multisize.z, 1.0)); pos = position; idx = gl_InstanceIndex; } @@ -58,25 +59,45 @@ layout(binding=1) uniform plane_world_config { float time; }; +#define hash(p) fract(sin(dot(p, vec2(11.9898, 78.233))) * 43758.5453) + +float B(vec2 U) { + float v = hash( U + vec2(-1, 0) ) + + hash( U + vec2( 1, 0) ) + + hash( U + vec2( 0, 1) ) + + hash( U + vec2( 0,-1) ); + return hash(U) - v/4. + .5; +} + void main() { if(planeType == 1) { frag_color = vec4(0.0, 0.0, 1.0, 1.0); } else { - float density = 100000.0; - vec2 uv = round(pos.xz * density); - float distanceFromCenter = length(uv - (pos.xz * density)); + float density = 80000.0; + vec2 densifiedCoordinate = pos.xz * density; + densifiedCoordinate.x += sin(densifiedCoordinate.y); + densifiedCoordinate.y += sin(densifiedCoordinate.x); + vec2 ruohokeskus = round(densifiedCoordinate); + float distanceFromCenter = length(ruohokeskus - (densifiedCoordinate)); - float rand = hash12(uv); - float h = (1.0 / 16.0) * idx; - - float thickness = 0.5; - if((rand - h) * thickness < distanceFromCenter) { + float rand = B(ruohokeskus) + sin(pos.x) * 0.4; + if(idx > 0 && rand < 0.2) { discard; } + + float h = (1.0 / 64.0) * idx; + + float thickness = 0.5; + + + if(idx > 0 && (rand - h) * thickness < distanceFromCenter) { + discard; + } else { + frag_color = vec4(0.0, min(1.0, h + 0.1), 0.0, 1.0); + } - frag_color = vec4(0.0, rand, 0.0, 1.0); } } @end