Skip to content

Instantly share code, notes, and snippets.

@igrir
Created May 6, 2023 03:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save igrir/d137530413e81eeeb52cbb65b09dbdd3 to your computer and use it in GitHub Desktop.
Save igrir/d137530413e81eeeb52cbb65b09dbdd3 to your computer and use it in GitHub Desktop.
Godot jigsaw mask
[gd_resource type="VisualShader" load_steps=49 format=3 uid="uid://c7s3j3j3mbys0"]
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_4iq7d"]
load_path = "res://.godot/imported/p1.png-e3443a103059cf2931cbb830de0aa8c1.s3tc.ctex"
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_02v3y"]
output_port_for_preview = 0
expanded_output_ports = [0]
source = 5
texture = SubResource("CompressedTexture2D_4iq7d")
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_bi75n"]
operator = 2
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_p1f6d"]
output_port_for_preview = 0
input_name = "uv"
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_ayd7h"]
default_input_values = [0, Vector2(0, 0), 1, Vector2(0.5, 0.5)]
op_type = 0
operator = 2
[sub_resource type="VisualShaderNodeVec2Parameter" id="VisualShaderNodeVec2Parameter_dgjjv"]
parameter_name = "Scale"
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_oh0uq"]
default_input_values = [0, Vector2(0, 0), 1, Vector2(0, 0)]
op_type = 0
[sub_resource type="VisualShaderNodeVec2Parameter" id="VisualShaderNodeVec2Parameter_bg8xw"]
parameter_name = "Offset"
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_5ho7s"]
default_input_values = [0, 0.0, 1, 0.21]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_7iv3w"]
default_input_values = [0, 0.0, 1, 0.71]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_l3pen"]
default_input_values = [0, 0.0, 1, 0.07]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_10te2"]
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_rrhu5"]
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_v4k6h"]
default_input_values = [0, 1.0, 1, 0.0]
operator = 1
[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_gmfrt"]
output_port_for_preview = 0
function = 18
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_3i111"]
output_port_for_preview = 0
expanded_output_ports = [0]
source = 5
texture = SubResource("CompressedTexture2D_4iq7d")
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_kehsi"]
default_input_values = [0, 0.0, 1, 0.71]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_h7phm"]
default_input_values = [0, 0.0, 1, 0.07]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_evq1r"]
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_xkjrw"]
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_qx552"]
default_input_values = [0, 1.0, 1, 0.0]
operator = 1
[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_8me63"]
output_port_for_preview = 0
function = 18
[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_eaask"]
parameter_name = "MaskTop"
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_4ghmi"]
default_input_values = [0, 0.0, 1, 0.21]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_fnj35"]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_1eopa"]
default_input_values = [0, 0.0, 1, 0.71]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_nl6m5"]
default_input_values = [0, 0.0, 1, 0.07]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_k5lbv"]
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_0cet7"]
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_6x3qk"]
default_input_values = [0, 1.0, 1, 0.0]
operator = 1
[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_rfbs2"]
parameter_name = "Tile"
[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_adqi2"]
output_port_for_preview = 0
function = 18
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_tg8sw"]
default_input_values = [0, 0.0, 1, 0.21]
operator = 2
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_ipcx1"]
output_port_for_preview = 0
expanded_output_ports = [0]
source = 5
texture = SubResource("CompressedTexture2D_4iq7d")
[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_gaq1s"]
parameter_name = "MaskBottom"
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_8o0t0"]
output_port_for_preview = 0
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_7tqfm"]
default_input_values = [0, 0.0, 1, 0.71]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_u0obh"]
default_input_values = [0, 0.0, 1, 0.07]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_0cxox"]
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_0dtdn"]
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_w6rxs"]
default_input_values = [0, 0.0, 1, 0.21]
operator = 2
[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_mpadn"]
parameter_name = "MaskLeft"
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_6mup7"]
output_port_for_preview = 0
expanded_output_ports = [0]
source = 5
texture = SubResource("CompressedTexture2D_4iq7d")
[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_2ms88"]
parameter_name = "MaskRight"
[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_i4urx"]
output_port_for_preview = 0
function = 18
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_c6jr5"]
default_input_values = [0, 1.0, 1, 0.0]
operator = 1
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_3eyfo"]
operator = 2
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_nw2eq"]
output_port_for_preview = 0
expanded_output_ports = [0]
source = 5
[resource]
code = "shader_type canvas_item;
uniform vec2 Scale;
uniform vec2 Offset;
uniform sampler2D Tile;
uniform sampler2D MaskLeft;
uniform sampler2D MaskTop;
uniform sampler2D MaskBottom;
uniform sampler2D MaskRight;
void fragment() {
// Input:12
vec2 n_out12p0 = UV;
// Vector2Parameter:14
vec2 n_out14p0 = Scale;
// VectorOp:13
vec2 n_out13p0 = n_out12p0 * n_out14p0;
// Vector2Parameter:16
vec2 n_out16p0 = Offset;
// VectorOp:15
vec2 n_out15p0 = n_out13p0 + n_out16p0;
vec4 n_out6p0;
// Texture2D:6
n_out6p0 = texture(Tile, n_out15p0);
vec4 n_out10p0;
// Texture2D:10
n_out10p0 = texture(MaskLeft, UV);
float n_out10p1 = n_out10p0.r;
float n_out10p2 = n_out10p0.g;
float n_out10p3 = n_out10p0.b;
// FloatOp:18
float n_in18p1 = 0.21000;
float n_out18p0 = n_out10p1 * n_in18p1;
// FloatOp:19
float n_in19p1 = 0.71000;
float n_out19p0 = n_out10p2 * n_in19p1;
// FloatOp:21
float n_out21p0 = n_out18p0 + n_out19p0;
// FloatOp:20
float n_in20p1 = 0.07000;
float n_out20p0 = n_out10p3 * n_in20p1;
// FloatOp:22
float n_out22p0 = n_out21p0 + n_out20p0;
// FloatOp:23
float n_in23p0 = 1.00000;
float n_out23p0 = n_in23p0 - n_out22p0;
// FloatFunc:24
float n_out24p0 = min(max(n_out23p0, 0.0), 1.0);
vec4 n_out25p0;
// Texture2D:25
n_out25p0 = texture(MaskTop, UV);
float n_out25p1 = n_out25p0.r;
float n_out25p2 = n_out25p0.g;
float n_out25p3 = n_out25p0.b;
// FloatOp:33
float n_in33p1 = 0.21000;
float n_out33p0 = n_out25p1 * n_in33p1;
// FloatOp:26
float n_in26p1 = 0.71000;
float n_out26p0 = n_out25p2 * n_in26p1;
// FloatOp:28
float n_out28p0 = n_out33p0 + n_out26p0;
// FloatOp:27
float n_in27p1 = 0.07000;
float n_out27p0 = n_out25p3 * n_in27p1;
// FloatOp:29
float n_out29p0 = n_out28p0 + n_out27p0;
// FloatOp:30
float n_in30p0 = 1.00000;
float n_out30p0 = n_in30p0 - n_out29p0;
// FloatFunc:31
float n_out31p0 = min(max(n_out30p0, 0.0), 1.0);
// FloatOp:34
float n_out34p0 = n_out24p0 * n_out31p0;
vec4 n_out42p0;
// Texture2D:42
n_out42p0 = texture(MaskBottom, UV);
float n_out42p1 = n_out42p0.r;
float n_out42p2 = n_out42p0.g;
float n_out42p3 = n_out42p0.b;
// FloatOp:41
float n_in41p1 = 0.21000;
float n_out41p0 = n_out42p1 * n_in41p1;
// FloatOp:35
float n_in35p1 = 0.71000;
float n_out35p0 = n_out42p2 * n_in35p1;
// FloatOp:37
float n_out37p0 = n_out41p0 + n_out35p0;
// FloatOp:36
float n_in36p1 = 0.07000;
float n_out36p0 = n_out42p3 * n_in36p1;
// FloatOp:38
float n_out38p0 = n_out37p0 + n_out36p0;
// FloatOp:39
float n_in39p0 = 1.00000;
float n_out39p0 = n_in39p0 - n_out38p0;
// FloatFunc:40
float n_out40p0 = min(max(n_out39p0, 0.0), 1.0);
// FloatOp:44
float n_out44p0 = n_out34p0 * n_out40p0;
vec4 n_out50p0;
// Texture2D:50
n_out50p0 = texture(MaskRight, UV);
float n_out50p1 = n_out50p0.r;
float n_out50p2 = n_out50p0.g;
float n_out50p3 = n_out50p0.b;
// FloatOp:49
float n_in49p1 = 0.21000;
float n_out49p0 = n_out50p1 * n_in49p1;
// FloatOp:45
float n_in45p1 = 0.71000;
float n_out45p0 = n_out50p2 * n_in45p1;
// FloatOp:47
float n_out47p0 = n_out49p0 + n_out45p0;
// FloatOp:46
float n_in46p1 = 0.07000;
float n_out46p0 = n_out50p3 * n_in46p1;
// FloatOp:48
float n_out48p0 = n_out47p0 + n_out46p0;
// FloatOp:53
float n_in53p0 = 1.00000;
float n_out53p0 = n_in53p0 - n_out48p0;
// FloatFunc:52
float n_out52p0 = min(max(n_out53p0, 0.0), 1.0);
// FloatOp:54
float n_out54p0 = n_out44p0 * n_out52p0;
// VectorOp:11
vec3 n_out11p0 = vec3(n_out6p0.xyz) * vec3(n_out54p0);
// Output:0
COLOR.rgb = n_out11p0;
COLOR.a = n_out54p0;
}
"
mode = 1
flags/light_only = false
nodes/fragment/0/position = Vector2(1600, 180)
nodes/fragment/4/node = SubResource("VisualShaderNodeTexture2DParameter_rfbs2")
nodes/fragment/4/position = Vector2(-340, 60)
nodes/fragment/5/node = SubResource("VisualShaderNodeTexture2DParameter_mpadn")
nodes/fragment/5/position = Vector2(-1340, 400)
nodes/fragment/6/node = SubResource("VisualShaderNodeTexture_nw2eq")
nodes/fragment/6/position = Vector2(160, 0)
nodes/fragment/10/node = SubResource("VisualShaderNodeTexture_02v3y")
nodes/fragment/10/position = Vector2(-1000, 400)
nodes/fragment/11/node = SubResource("VisualShaderNodeVectorOp_bi75n")
nodes/fragment/11/position = Vector2(1280, 120)
nodes/fragment/12/node = SubResource("VisualShaderNodeInput_p1f6d")
nodes/fragment/12/position = Vector2(-800, -520)
nodes/fragment/13/node = SubResource("VisualShaderNodeVectorOp_ayd7h")
nodes/fragment/13/position = Vector2(-380, -420)
nodes/fragment/14/node = SubResource("VisualShaderNodeVec2Parameter_dgjjv")
nodes/fragment/14/position = Vector2(-800, -260)
nodes/fragment/15/node = SubResource("VisualShaderNodeVectorOp_oh0uq")
nodes/fragment/15/position = Vector2(-60, -220)
nodes/fragment/16/node = SubResource("VisualShaderNodeVec2Parameter_bg8xw")
nodes/fragment/16/position = Vector2(-420, -160)
nodes/fragment/18/node = SubResource("VisualShaderNodeFloatOp_5ho7s")
nodes/fragment/18/position = Vector2(-640, 620)
nodes/fragment/19/node = SubResource("VisualShaderNodeFloatOp_7iv3w")
nodes/fragment/19/position = Vector2(-640, 740)
nodes/fragment/20/node = SubResource("VisualShaderNodeFloatOp_l3pen")
nodes/fragment/20/position = Vector2(-640, 860)
nodes/fragment/21/node = SubResource("VisualShaderNodeFloatOp_10te2")
nodes/fragment/21/position = Vector2(-460, 680)
nodes/fragment/22/node = SubResource("VisualShaderNodeFloatOp_rrhu5")
nodes/fragment/22/position = Vector2(-280, 740)
nodes/fragment/23/node = SubResource("VisualShaderNodeFloatOp_v4k6h")
nodes/fragment/23/position = Vector2(-100, 760)
nodes/fragment/24/node = SubResource("VisualShaderNodeFloatFunc_gmfrt")
nodes/fragment/24/position = Vector2(80, 760)
nodes/fragment/25/node = SubResource("VisualShaderNodeTexture_3i111")
nodes/fragment/25/position = Vector2(-980, 1000)
nodes/fragment/26/node = SubResource("VisualShaderNodeFloatOp_kehsi")
nodes/fragment/26/position = Vector2(-620, 1340)
nodes/fragment/27/node = SubResource("VisualShaderNodeFloatOp_h7phm")
nodes/fragment/27/position = Vector2(-620, 1460)
nodes/fragment/28/node = SubResource("VisualShaderNodeFloatOp_evq1r")
nodes/fragment/28/position = Vector2(-440, 1280)
nodes/fragment/29/node = SubResource("VisualShaderNodeFloatOp_xkjrw")
nodes/fragment/29/position = Vector2(-260, 1340)
nodes/fragment/30/node = SubResource("VisualShaderNodeFloatOp_qx552")
nodes/fragment/30/position = Vector2(-80, 1360)
nodes/fragment/31/node = SubResource("VisualShaderNodeFloatFunc_8me63")
nodes/fragment/31/position = Vector2(100, 1360)
nodes/fragment/32/node = SubResource("VisualShaderNodeTexture2DParameter_eaask")
nodes/fragment/32/position = Vector2(-1320, 1000)
nodes/fragment/33/node = SubResource("VisualShaderNodeFloatOp_4ghmi")
nodes/fragment/33/position = Vector2(-620, 1220)
nodes/fragment/34/node = SubResource("VisualShaderNodeFloatOp_fnj35")
nodes/fragment/34/position = Vector2(460, 980)
nodes/fragment/35/node = SubResource("VisualShaderNodeFloatOp_1eopa")
nodes/fragment/35/position = Vector2(-720, 1960)
nodes/fragment/36/node = SubResource("VisualShaderNodeFloatOp_nl6m5")
nodes/fragment/36/position = Vector2(-720, 2080)
nodes/fragment/37/node = SubResource("VisualShaderNodeFloatOp_k5lbv")
nodes/fragment/37/position = Vector2(-540, 1900)
nodes/fragment/38/node = SubResource("VisualShaderNodeFloatOp_0cet7")
nodes/fragment/38/position = Vector2(-360, 1960)
nodes/fragment/39/node = SubResource("VisualShaderNodeFloatOp_6x3qk")
nodes/fragment/39/position = Vector2(-180, 1980)
nodes/fragment/40/node = SubResource("VisualShaderNodeFloatFunc_adqi2")
nodes/fragment/40/position = Vector2(0, 1980)
nodes/fragment/41/node = SubResource("VisualShaderNodeFloatOp_tg8sw")
nodes/fragment/41/position = Vector2(-720, 1840)
nodes/fragment/42/node = SubResource("VisualShaderNodeTexture_ipcx1")
nodes/fragment/42/position = Vector2(-1080, 1620)
nodes/fragment/43/node = SubResource("VisualShaderNodeTexture2DParameter_gaq1s")
nodes/fragment/43/position = Vector2(-1420, 1620)
nodes/fragment/44/node = SubResource("VisualShaderNodeFloatOp_8o0t0")
nodes/fragment/44/position = Vector2(760, 1180)
nodes/fragment/45/node = SubResource("VisualShaderNodeFloatOp_7tqfm")
nodes/fragment/45/position = Vector2(-680, 2560)
nodes/fragment/46/node = SubResource("VisualShaderNodeFloatOp_u0obh")
nodes/fragment/46/position = Vector2(-680, 2680)
nodes/fragment/47/node = SubResource("VisualShaderNodeFloatOp_0cxox")
nodes/fragment/47/position = Vector2(-500, 2500)
nodes/fragment/48/node = SubResource("VisualShaderNodeFloatOp_0dtdn")
nodes/fragment/48/position = Vector2(-320, 2560)
nodes/fragment/49/node = SubResource("VisualShaderNodeFloatOp_w6rxs")
nodes/fragment/49/position = Vector2(-680, 2440)
nodes/fragment/50/node = SubResource("VisualShaderNodeTexture_6mup7")
nodes/fragment/50/position = Vector2(-1040, 2220)
nodes/fragment/51/node = SubResource("VisualShaderNodeTexture2DParameter_2ms88")
nodes/fragment/51/position = Vector2(-1380, 2220)
nodes/fragment/52/node = SubResource("VisualShaderNodeFloatFunc_i4urx")
nodes/fragment/52/position = Vector2(40, 2580)
nodes/fragment/53/node = SubResource("VisualShaderNodeFloatOp_c6jr5")
nodes/fragment/53/position = Vector2(-140, 2580)
nodes/fragment/54/node = SubResource("VisualShaderNodeFloatOp_3eyfo")
nodes/fragment/54/position = Vector2(1040, 1340)
nodes/fragment/connections = PackedInt32Array(4, 0, 6, 2, 5, 0, 10, 2, 12, 0, 13, 0, 14, 0, 13, 1, 13, 0, 15, 0, 16, 0, 15, 1, 15, 0, 6, 0, 10, 1, 18, 0, 10, 2, 19, 0, 10, 3, 20, 0, 18, 0, 21, 0, 19, 0, 21, 1, 21, 0, 22, 0, 20, 0, 22, 1, 32, 0, 25, 2, 25, 1, 33, 0, 25, 2, 26, 0, 25, 3, 27, 0, 33, 0, 28, 0, 26, 0, 28, 1, 28, 0, 29, 0, 27, 0, 29, 1, 24, 0, 34, 0, 31, 0, 34, 1, 43, 0, 42, 2, 42, 1, 41, 0, 42, 2, 35, 0, 42, 3, 36, 0, 41, 0, 37, 0, 35, 0, 37, 1, 37, 0, 38, 0, 36, 0, 38, 1, 34, 0, 44, 0, 40, 0, 44, 1, 6, 0, 11, 0, 38, 0, 39, 1, 39, 0, 40, 0, 29, 0, 30, 1, 30, 0, 31, 0, 22, 0, 23, 1, 23, 0, 24, 0, 51, 0, 50, 2, 50, 1, 49, 0, 50, 2, 45, 0, 50, 3, 46, 0, 49, 0, 47, 0, 45, 0, 47, 1, 47, 0, 48, 0, 46, 0, 48, 1, 48, 0, 53, 1, 53, 0, 52, 0, 52, 0, 54, 1, 44, 0, 54, 0, 54, 0, 11, 1, 11, 0, 0, 0, 54, 0, 0, 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment