[gd_resource type="VisualShader" load_steps=22 format=3 uid="uid://ddeew8xbtykrq"] [sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_ncvl6"] constant = Color(0.665604, 1.96133e-06, 4.33177e-07, 1) [sub_resource type="VisualShaderNodeFloatConstant" id="VisualShaderNodeFloatConstant_ce6tx"] constant = 0.5 [sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_2du5f"] output_port_for_preview = 0 function = 31 [sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_3of4b"] input_name = "color" [sub_resource type="VisualShaderNodeVectorDecompose" id="VisualShaderNodeVectorDecompose_50gpj"] [sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_u51ta"] default_input_values = [0, 0.0, 1, 0.1] operator = 2 [sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_d33ia"] [sub_resource type="VisualShaderNodeFloatConstant" id="VisualShaderNodeFloatConstant_jsho4"] constant = 1.0 [sub_resource type="FastNoiseLite" id="FastNoiseLite_anxeu"] noise_type = 3 [sub_resource type="NoiseTexture2D" id="NoiseTexture2D_q7o3u"] noise = SubResource("FastNoiseLite_anxeu") [sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_fa4vl"] texture = SubResource("NoiseTexture2D_q7o3u") [sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_pkecw"] output_port_for_preview = 0 default_input_values = [0, 0.0, 1, 5.0] operator = 5 [sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_66yqg"] input_name = "uv" [sub_resource type="VisualShaderNodeUVPolarCoord" id="VisualShaderNodeUVPolarCoord_662y1"] output_port_for_preview = 0 default_input_values = [1, Vector2(0.5, 0.5), 2, 1.0, 3, 0.0] [sub_resource type="VisualShaderNodeColorFunc" id="VisualShaderNodeColorFunc_tlel1"] output_port_for_preview = 0 [sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_cmbe8"] output_port_for_preview = 0 function = 31 [sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_a83e8"] operator = 2 [sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_w0l32"] operator = 2 [sub_resource type="VisualShaderNodeBillboard" id="VisualShaderNodeBillboard_drqma"] keep_scale = true [sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_0eixc"] input_name = "instance_id" [sub_resource type="VisualShaderNodeVectorCompose" id="VisualShaderNodeVectorCompose_mv5vw"] [resource] code = "shader_type spatial; render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx; uniform sampler2D tex_frg_2; void vertex() { // Input:3 int n_out3p0 = INSTANCE_ID; // VectorCompose:4 float n_in4p1 = 0.00000; float n_in4p2 = 0.00000; vec3 n_out4p0 = vec3(float(n_out3p0), n_in4p1, n_in4p2); mat4 n_out2p0; // GetBillboardMatrix:2 { mat4 __mvm = VIEW_MATRIX * mat4(INV_VIEW_MATRIX[0], INV_VIEW_MATRIX[1], INV_VIEW_MATRIX[2], MODEL_MATRIX[3]); __mvm = __mvm * mat4(vec4(length(MODEL_MATRIX[0].xyz), 0.0, 0.0, 0.0), vec4(0.0, length(MODEL_MATRIX[1].xyz), 0.0, 0.0), vec4(0.0, 0.0, length(MODEL_MATRIX[2].xyz), 0.0), vec4(0.0, 0.0, 0.0, 1.0)); n_out2p0 = __mvm; } // Output:0 COLOR.rgb = n_out4p0; MODELVIEW_MATRIX = n_out2p0; } void fragment() { // ColorConstant:10 vec4 n_out10p0 = vec4(0.665604, 0.000002, 0.000000, 1.000000); // Input:4 vec2 n_out4p0 = UV; vec2 n_out5p0; // UVPolarCoord:5 vec2 n_in5p1 = vec2(0.50000, 0.50000); float n_in5p2 = 1.00000; float n_in5p3 = 0.00000; { vec2 __dir = n_out4p0 - n_in5p1; float __radius = length(__dir) * 2.0; float __angle = atan(__dir.y, __dir.x) * 1.0 / (PI * 2.0); n_out5p0 = vec2(__radius * n_in5p2, __angle * n_in5p3); } vec3 n_out6p0; // ColorFunc:6 { vec3 c = vec3(n_out5p0, 0.0); float max1 = max(c.r, c.g); float max2 = max(max1, c.b); n_out6p0 = vec3(max2, max2, max2); } // FloatFunc:7 float n_out7p0 = 1.0 - n_out6p0.x; // Input:13 vec4 n_out13p0 = COLOR; // VectorDecompose:14 float n_out14p0 = vec3(n_out13p0.xyz).x; float n_out14p1 = vec3(n_out13p0.xyz).y; float n_out14p2 = vec3(n_out13p0.xyz).z; // FloatOp:15 float n_in15p1 = 0.10000; float n_out15p0 = n_out14p0 * n_in15p1; // UVFunc:16 vec2 n_in16p1 = vec2(1.00000, 1.00000); vec2 n_out16p0 = vec2(n_out15p0) * n_in16p1 + n_out4p0; // Texture2D:2 vec4 n_out2p0 = texture(tex_frg_2, n_out16p0); // FloatOp:3 float n_in3p1 = 5.00000; float n_out3p0 = pow(n_out2p0.x, n_in3p1); // VectorOp:8 vec3 n_out8p0 = vec3(n_out7p0) * vec3(n_out3p0); // VectorOp:9 vec3 n_out9p0 = vec3(n_out10p0.xyz) * n_out8p0; // FloatConstant:11 float n_out11p0 = 0.500000; // FloatConstant:17 float n_out17p0 = 1.000000; // FloatFunc:12 float n_out12p0 = 1.0 - n_out3p0; // Output:0 ALBEDO = n_out9p0; ALPHA = n_out11p0; SSS_STRENGTH = n_out17p0; ALPHA_SCISSOR_THRESHOLD = n_out12p0; } " nodes/vertex/2/node = SubResource("VisualShaderNodeBillboard_drqma") nodes/vertex/2/position = Vector2(-120, 280) nodes/vertex/3/node = SubResource("VisualShaderNodeInput_0eixc") nodes/vertex/3/position = Vector2(-300, 160) nodes/vertex/4/node = SubResource("VisualShaderNodeVectorCompose_mv5vw") nodes/vertex/4/position = Vector2(99.8642, 172.257) nodes/vertex/connections = PackedInt32Array(2, 0, 0, 10, 3, 0, 4, 0, 4, 0, 0, 6) nodes/fragment/0/position = Vector2(960, 160) nodes/fragment/2/node = SubResource("VisualShaderNodeTexture_fa4vl") nodes/fragment/2/position = Vector2(-440, 520) nodes/fragment/3/node = SubResource("VisualShaderNodeFloatOp_pkecw") nodes/fragment/3/position = Vector2(-100, 500) nodes/fragment/4/node = SubResource("VisualShaderNodeInput_66yqg") nodes/fragment/4/position = Vector2(-960, 40) nodes/fragment/5/node = SubResource("VisualShaderNodeUVPolarCoord_662y1") nodes/fragment/5/position = Vector2(-280, 80) nodes/fragment/6/node = SubResource("VisualShaderNodeColorFunc_tlel1") nodes/fragment/6/position = Vector2(-100, 80) nodes/fragment/7/node = SubResource("VisualShaderNodeFloatFunc_cmbe8") nodes/fragment/7/position = Vector2(120, 80) nodes/fragment/8/node = SubResource("VisualShaderNodeVectorOp_a83e8") nodes/fragment/8/position = Vector2(343.557, 123.867) nodes/fragment/9/node = SubResource("VisualShaderNodeVectorOp_w0l32") nodes/fragment/9/position = Vector2(622.371, 141.076) nodes/fragment/10/node = SubResource("VisualShaderNodeColorConstant_ncvl6") nodes/fragment/10/position = Vector2(480, -20) nodes/fragment/11/node = SubResource("VisualShaderNodeFloatConstant_ce6tx") nodes/fragment/11/position = Vector2(540, 340) nodes/fragment/12/node = SubResource("VisualShaderNodeFloatFunc_2du5f") nodes/fragment/12/position = Vector2(293.253, 533.22) nodes/fragment/13/node = SubResource("VisualShaderNodeInput_3of4b") nodes/fragment/13/position = Vector2(-1340, 260) nodes/fragment/14/node = SubResource("VisualShaderNodeVectorDecompose_50gpj") nodes/fragment/14/position = Vector2(-980, 260) nodes/fragment/15/node = SubResource("VisualShaderNodeFloatOp_u51ta") nodes/fragment/15/position = Vector2(-780, 300) nodes/fragment/16/node = SubResource("VisualShaderNodeUVFunc_d33ia") nodes/fragment/16/position = Vector2(-593.247, 245.06) nodes/fragment/17/node = SubResource("VisualShaderNodeFloatConstant_jsho4") nodes/fragment/17/position = Vector2(660, 460) nodes/fragment/connections = PackedInt32Array(2, 0, 3, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 7, 0, 7, 0, 8, 0, 3, 0, 8, 1, 8, 0, 9, 1, 10, 0, 9, 0, 9, 0, 0, 0, 11, 0, 0, 1, 3, 0, 12, 0, 12, 0, 0, 19, 13, 0, 14, 0, 14, 0, 15, 0, 4, 0, 16, 0, 15, 0, 16, 2, 16, 0, 2, 0, 17, 0, 0, 17)