This repository has been archived on 2022-01-09. You can view files and clone it, but cannot push or open issues/pull-requests.
liblast/Game/Assets/Maps/DM1/Level_DM1.tscn

1750 lines
69 KiB
Plaintext

[gd_scene load_steps=27 format=2]
[ext_resource path="res://Assets/Maps/DM1/DM1_dev_materials.glb" type="PackedScene" id=1]
[ext_resource path="res://Assets/Audio/SFX/Ambient_BuzzAndHum.wav" type="AudioStream" id=2]
[ext_resource path="res://Classes/LevelComponents/SpawnPoint.tscn" type="PackedScene" id=9]
[ext_resource path="res://Assets/Maps/DM1/OmniFlicker.gd" type="Script" id=10]
[ext_resource path="res://Assets/Maps/DM1/SpotFlicker.gd" type="Script" id=11]
[ext_resource path="res://Assets/Audio/SFX/Ambient_Pipes.wav" type="AudioStream" id=12]
[ext_resource path="res://Classes/LevelComponents/SpawnPointsManager.gd" type="Script" id=13]
[ext_resource path="res://Classes/LevelComponents/Killfloor.tscn" type="PackedScene" id=14]
[sub_resource type="ProceduralSky" id=1]
[sub_resource type="Environment" id=2]
background_mode = 2
background_sky = SubResource( 1 )
tonemap_mode = 3
tonemap_white = 1.5
ss_reflections_max_steps = 256
ss_reflections_fade_in = 0.14489
ss_reflections_fade_out = 1.10957
ssao_intensity = 8.0
glow_enabled = true
glow_levels/1 = true
glow_levels/2 = true
glow_levels/4 = true
glow_intensity = 0.1
glow_strength = 0.93
glow_blend_mode = 1
glow_hdr_threshold = 0.3
glow_bicubic_upscale = true
adjustment_brightness = 1.06
adjustment_contrast = 1.13
adjustment_saturation = 1.03
[sub_resource type="Shader" id=3]
code = "shader_type spatial;
varying float elapsed_time;
uniform float density = 1.0;
uniform float speed = 1.0;
uniform float offset = 0.0;
uniform vec4 color : hint_color = vec4(1,1,1,1);
void vertex() {
elapsed_time = TIME * speed + offset;
}
//---
float rand(vec2 x) {
return fract(cos(mod(dot(x, vec2(13.9898, 8.141)), 3.14)) * 43758.5453);
}
vec2 rand2(vec2 x) {
return fract(cos(mod(vec2(dot(x, vec2(13.9898, 8.141)),
dot(x, vec2(3.4562, 17.398))), vec2(3.14))) * 43758.5453);
}
vec3 rand3(vec2 x) {
return fract(cos(mod(vec3(dot(x, vec2(13.9898, 8.141)),
dot(x, vec2(3.4562, 17.398)),
dot(x, vec2(13.254, 5.867))), vec3(3.14))) * 43758.5453);
}
vec3 rgb2hsv(vec3 c) {
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}
vec3 hsv2rgb(vec3 c) {
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
float shape_circle(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float distance = length(uv);
return clamp((1.0-distance/size)/edge, 0.0, 1.0);
}
float shape_polygon(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = atan(uv.x, uv.y)+3.14159265359;
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(0.5+angle/slice)*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_star(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = atan(uv.x, uv.y);
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(angle/slice-0.5+2.0*step(mod(angle, slice), 0.5*slice))*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_curved_star(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = 2.0*(atan(uv.x, uv.y)+3.14159265359);
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(0.5+0.5*angle/slice)*2.0*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_rays(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = 0.5*max(edge, 1.0e-8)*size;
float slice = 6.28318530718/sides;
float angle = mod(atan(uv.x, uv.y)+3.14159265359, slice)/slice;
return clamp(min((size-angle)/edge, angle/edge), 0.0, 1.0);
}
float rand31(vec3 p) {
return fract(sin(dot(p,vec3(127.1,311.7, 74.7)))*43758.5453123);
}
vec3 rand33(vec3 p){
p = vec3( dot(p,vec3(127.1,311.7, 74.7)),
dot(p,vec3(269.5,183.3,246.1)),
dot(p,vec3(113.5,271.9,124.6)));
return -1.0 + 2.0*fract(sin(p)*43758.5453123);
}
float tex3d_fbm_value(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
float p000 = rand31(mod(o, size));
float p001 = rand31(mod(o + vec3(0.0, 0.0, 1.0), size));
float p010 = rand31(mod(o + vec3(0.0, 1.0, 0.0), size));
float p011 = rand31(mod(o + vec3(0.0, 1.0, 1.0), size));
float p100 = rand31(mod(o + vec3(1.0, 0.0, 0.0), size));
float p101 = rand31(mod(o + vec3(1.0, 0.0, 1.0), size));
float p110 = rand31(mod(o + vec3(1.0, 1.0, 0.0), size));
float p111 = rand31(mod(o + vec3(1.0, 1.0, 1.0), size));
vec3 t = f * f * (3.0 - 2.0 * f);
return mix(mix(mix(p000, p100, t.x), mix(p010, p110, t.x), t.y), mix(mix(p001, p101, t.x), mix(p011, p111, t.x), t.y), t.z);
}
float tex3d_fbm_perlin(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
vec3 v000 = normalize(rand33(mod(o, size))-vec3(0.5));
vec3 v001 = normalize(rand33(mod(o + vec3(0.0, 0.0, 1.0), size))-vec3(0.5));
vec3 v010 = normalize(rand33(mod(o + vec3(0.0, 1.0, 0.0), size))-vec3(0.5));
vec3 v011 = normalize(rand33(mod(o + vec3(0.0, 1.0, 1.0), size))-vec3(0.5));
vec3 v100 = normalize(rand33(mod(o + vec3(1.0, 0.0, 0.0), size))-vec3(0.5));
vec3 v101 = normalize(rand33(mod(o + vec3(1.0, 0.0, 1.0), size))-vec3(0.5));
vec3 v110 = normalize(rand33(mod(o + vec3(1.0, 1.0, 0.0), size))-vec3(0.5));
vec3 v111 = normalize(rand33(mod(o + vec3(1.0, 1.0, 1.0), size))-vec3(0.5));
float p000 = dot(v000, f);
float p001 = dot(v001, f - vec3(0.0, 0.0, 1.0));
float p010 = dot(v010, f - vec3(0.0, 1.0, 0.0));
float p011 = dot(v011, f - vec3(0.0, 1.0, 1.0));
float p100 = dot(v100, f - vec3(1.0, 0.0, 0.0));
float p101 = dot(v101, f - vec3(1.0, 0.0, 1.0));
float p110 = dot(v110, f - vec3(1.0, 1.0, 0.0));
float p111 = dot(v111, f - vec3(1.0, 1.0, 1.0));
vec3 t = f * f * (3.0 - 2.0 * f);
return 0.5 + mix(mix(mix(p000, p100, t.x), mix(p010, p110, t.x), t.y), mix(mix(p001, p101, t.x), mix(p011, p111, t.x), t.y), t.z);
}
float tex3d_fbm_cellular(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
float min_dist = 3.0;
for (float x = -1.0; x <= 1.0; x++) {
for (float y = -1.0; y <= 1.0; y++) {
for (float z = -1.0; z <= 1.0; z++) {
vec3 node = 0.4*rand33(mod(o + vec3(x, y, z), size)) + vec3(x, y, z);
float dist = sqrt((f - node).x * (f - node).x + (f - node).y * (f - node).y + (f - node).z * (f - node).z);
min_dist = min(min_dist, dist);
}
}
}
return min_dist;
}
const float p_o349717_curve_0_x = 0.000000000;
const float p_o349717_curve_0_y = 0.000000000;
const float p_o349717_curve_0_ls = 0.000000000;
const float p_o349717_curve_0_rs = -0.029626113;
const float p_o349717_curve_1_x = 1.000000000;
const float p_o349717_curve_1_y = 1.000000000;
const float p_o349717_curve_1_ls = 0.000000000;
const float p_o349717_curve_1_rs = -0.000000000;
float o349717_curve_curve_fct(float x) {
if (x <= p_o349717_curve_1_x) {
float dx = x - p_o349717_curve_0_x;
float d = p_o349717_curve_1_x - p_o349717_curve_0_x;
float t = dx/d;
float omt = (1.0 - t);
float omt2 = omt * omt;
float omt3 = omt2 * omt;
float t2 = t * t;
float t3 = t2 * t;
d /= 3.0;
float y1 = p_o349717_curve_0_y;
float yac = p_o349717_curve_0_y + d*p_o349717_curve_0_rs;
float ybc = p_o349717_curve_1_y - d*p_o349717_curve_1_ls;
float y2 = p_o349717_curve_1_y;
return y1*omt3 + yac*omt2*t*3.0 + ybc*omt*t2*3.0 + y2*t3;
}
}
const float p_o298492_default_in1 = 0.000000000;
const float p_o298492_default_in2 = 1.460000000;
const float p_o398828_default_in1 = 0.000000000;
const float p_o398828_default_in2 = 0.000000000;
const float p_o260446_default_in1 = 0.000000000;
const float p_o260446_default_in2 = 1.350000000;
const float p_o253351_default_in1 = 0.000000000;
const float p_o253351_default_in2 = 0.000000000;
const float p_o321142_default_in1 = 0.000000000;
const float p_o321142_default_in2 = 1.500000000;
const float p_o277526_sides = 1.000000000;
const float p_o277526_radius = 1.000000000;
const float p_o277526_edge = 0.760000000;
const float p_o135529_default_in1 = 0.000000000;
const float p_o60565_default_in1 = 0.000000000;
const float p_o60565_default_in2 = 0.160000000;
const float p_o86476_default_in1 = 0.000000000;
const float p_o86476_default_in2 = 0.360000000;
const float p_o9697_sides = 2.000000000;
const float p_o9697_radius = 1.010000000;
const float p_o9697_edge = 2.700000000;
const float p_o535536_default_in1 = 0.000000000;
const int seed_o530985 = -46342;
const float p_o530985_scale_x = 4.000000000;
const float p_o530985_scale_y = 4.000000000;
const float p_o530985_scale_z = 4.000000000;
const float p_o530985_iterations = 8.000000000;
const float p_o530985_persistence = 0.500000000;
float o530985_fbm(vec3 coord, vec3 size, int octaves, float persistence, float seed) {
float normalize_factor = 0.0;
float value = 0.0;
float scale = 1.0;
for (int i = 0; i < octaves; i++) {
value += tex3d_fbm_value(coord*size, size, seed) * scale;
normalize_factor += scale;
size *= 2.0;
scale *= persistence;
}
return value / normalize_factor;
}
const float p_o574483_Distort = 0.280000000;
const int seed_o15805 = -41176;
const float p_o15805_scale_x = 8.000000000;
const float p_o15805_scale_y = 8.000000000;
const float p_o15805_scale_z = 8.000000000;
const float p_o15805_iterations = 8.000000000;
const float p_o15805_persistence = 0.500000000;
float o15805_fbm(vec3 coord, vec3 size, int octaves, float persistence, float seed) {
float normalize_factor = 0.0;
float value = 0.0;
float scale = 1.0;
for (int i = 0; i < octaves; i++) {
value += tex3d_fbm_value(coord*size, size, seed) * scale;
normalize_factor += scale;
size *= 2.0;
scale *= persistence;
}
return value / normalize_factor;
}
const float p_o395471_color = 1.000000000;
void fragment() {
float o277526_0_1_f = shape_circle((UV), p_o277526_sides, p_o277526_radius*1.0, p_o277526_edge*1.0);
float o321142_0_clamp_false = pow(o277526_0_1_f,p_o321142_default_in2);
float o321142_0_clamp_true = clamp(o321142_0_clamp_false, 0.0, 1.0);
float o321142_0_2_f = o321142_0_clamp_false;
float o535536_0_clamp_false = p_o535536_default_in1+(elapsed_time*0.1);
float o535536_0_clamp_true = clamp(o535536_0_clamp_false, 0.0, 1.0);
float o535536_0_2_f = o535536_0_clamp_false;
vec3 o530985_0_1_tex3d = vec3(o530985_fbm((vec4((UV), o535536_0_2_f, 0.0)).xyz, vec3(p_o530985_scale_x, p_o530985_scale_y, p_o530985_scale_z), int(p_o530985_iterations), p_o530985_persistence, float(seed_o530985)));
vec3 o535539_0_1_rgb = o530985_0_1_tex3d;
float o9697_0_1_f = shape_circle((UV), p_o9697_sides, p_o9697_radius*1.0, p_o9697_edge*(dot(o535539_0_1_rgb, vec3(1.0))/3.0));
float o86476_0_clamp_false = pow(o9697_0_1_f,p_o86476_default_in2);
float o86476_0_clamp_true = clamp(o86476_0_clamp_false, 0.0, 1.0);
float o86476_0_2_f = o86476_0_clamp_false;
float o60565_0_clamp_false = o86476_0_2_f*p_o60565_default_in2;
float o60565_0_clamp_true = clamp(o60565_0_clamp_false, 0.0, 1.0);
float o60565_0_2_f = o60565_0_clamp_false;
float o135529_0_clamp_false = o60565_0_2_f+(elapsed_time*0.1);
float o135529_0_clamp_true = clamp(o135529_0_clamp_false, 0.0, 1.0);
float o135529_0_2_f = o135529_0_clamp_false;
float o620684_0_1_f = (elapsed_time);
vec4 o614555_0_1_rgba = vec4(0.0, o620684_0_1_f, 0.0, 1.0);
vec3 o584725_0_1_tex3d = ((o614555_0_1_rgba).rgb);
vec3 o15805_0_1_tex3d = vec3(o15805_fbm((vec4((vec4((UV), o135529_0_2_f, 0.0)).xyz+(o584725_0_1_tex3d*p_o574483_Distort*0.5-0.5), 0.0)).xyz, vec3(p_o15805_scale_x, p_o15805_scale_y, p_o15805_scale_z), int(p_o15805_iterations), p_o15805_persistence, float(seed_o15805)));
vec3 o574483_0_1_tex3d = o15805_0_1_tex3d;
vec3 o39870_0_1_rgb = o574483_0_1_tex3d;
float o253351_0_clamp_false = o321142_0_2_f*(dot(o39870_0_1_rgb, vec3(1.0))/3.0);
float o253351_0_clamp_true = clamp(o253351_0_clamp_false, 0.0, 1.0);
float o253351_0_1_f = o253351_0_clamp_false;
float o260446_0_clamp_false = pow(o253351_0_1_f,p_o260446_default_in2);
float o260446_0_clamp_true = clamp(o260446_0_clamp_false, 0.0, 1.0);
float o260446_0_2_f = o260446_0_clamp_false;
float o395471_0_1_f = p_o395471_color;
float o398828_0_clamp_false = o260446_0_2_f*o395471_0_1_f;
float o398828_0_clamp_true = clamp(o398828_0_clamp_false, 0.0, 1.0);
float o398828_0_1_f = o398828_0_clamp_false;
float o298492_0_clamp_false = o398828_0_1_f*p_o298492_default_in2;
float o298492_0_clamp_true = clamp(o298492_0_clamp_false, 0.0, 1.0);
float o298492_0_2_f = o298492_0_clamp_true;
float o349717_0_1_f = o349717_curve_curve_fct(o298492_0_2_f);
ALBEDO = color.rgb;
ALPHA = vec3(o349717_0_1_f).r * color.a * density;
}"
[sub_resource type="ShaderMaterial" id=4]
shader = SubResource( 3 )
shader_param/density = 0.379
shader_param/speed = 1.0
shader_param/offset = 0.0
shader_param/color = Color( 1, 1, 1, 1 )
[sub_resource type="QuadMesh" id=5]
material = SubResource( 4 )
size = Vector2( 16, 16 )
[sub_resource type="Shader" id=6]
code = "shader_type spatial;
varying float elapsed_time;
uniform float density = 1.0;
uniform float speed = 1.0;
uniform float offset = 0.0;
uniform vec4 color : hint_color = vec4(1,1,1,1);
void vertex() {
elapsed_time = TIME * speed + offset;
}
//---
float rand(vec2 x) {
return fract(cos(mod(dot(x, vec2(13.9898, 8.141)), 3.14)) * 43758.5453);
}
vec2 rand2(vec2 x) {
return fract(cos(mod(vec2(dot(x, vec2(13.9898, 8.141)),
dot(x, vec2(3.4562, 17.398))), vec2(3.14))) * 43758.5453);
}
vec3 rand3(vec2 x) {
return fract(cos(mod(vec3(dot(x, vec2(13.9898, 8.141)),
dot(x, vec2(3.4562, 17.398)),
dot(x, vec2(13.254, 5.867))), vec3(3.14))) * 43758.5453);
}
vec3 rgb2hsv(vec3 c) {
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}
vec3 hsv2rgb(vec3 c) {
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
float shape_circle(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float distance = length(uv);
return clamp((1.0-distance/size)/edge, 0.0, 1.0);
}
float shape_polygon(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = atan(uv.x, uv.y)+3.14159265359;
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(0.5+angle/slice)*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_star(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = atan(uv.x, uv.y);
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(angle/slice-0.5+2.0*step(mod(angle, slice), 0.5*slice))*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_curved_star(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = 2.0*(atan(uv.x, uv.y)+3.14159265359);
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(0.5+0.5*angle/slice)*2.0*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_rays(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = 0.5*max(edge, 1.0e-8)*size;
float slice = 6.28318530718/sides;
float angle = mod(atan(uv.x, uv.y)+3.14159265359, slice)/slice;
return clamp(min((size-angle)/edge, angle/edge), 0.0, 1.0);
}
float rand31(vec3 p) {
return fract(sin(dot(p,vec3(127.1,311.7, 74.7)))*43758.5453123);
}
vec3 rand33(vec3 p){
p = vec3( dot(p,vec3(127.1,311.7, 74.7)),
dot(p,vec3(269.5,183.3,246.1)),
dot(p,vec3(113.5,271.9,124.6)));
return -1.0 + 2.0*fract(sin(p)*43758.5453123);
}
float tex3d_fbm_value(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
float p000 = rand31(mod(o, size));
float p001 = rand31(mod(o + vec3(0.0, 0.0, 1.0), size));
float p010 = rand31(mod(o + vec3(0.0, 1.0, 0.0), size));
float p011 = rand31(mod(o + vec3(0.0, 1.0, 1.0), size));
float p100 = rand31(mod(o + vec3(1.0, 0.0, 0.0), size));
float p101 = rand31(mod(o + vec3(1.0, 0.0, 1.0), size));
float p110 = rand31(mod(o + vec3(1.0, 1.0, 0.0), size));
float p111 = rand31(mod(o + vec3(1.0, 1.0, 1.0), size));
vec3 t = f * f * (3.0 - 2.0 * f);
return mix(mix(mix(p000, p100, t.x), mix(p010, p110, t.x), t.y), mix(mix(p001, p101, t.x), mix(p011, p111, t.x), t.y), t.z);
}
float tex3d_fbm_perlin(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
vec3 v000 = normalize(rand33(mod(o, size))-vec3(0.5));
vec3 v001 = normalize(rand33(mod(o + vec3(0.0, 0.0, 1.0), size))-vec3(0.5));
vec3 v010 = normalize(rand33(mod(o + vec3(0.0, 1.0, 0.0), size))-vec3(0.5));
vec3 v011 = normalize(rand33(mod(o + vec3(0.0, 1.0, 1.0), size))-vec3(0.5));
vec3 v100 = normalize(rand33(mod(o + vec3(1.0, 0.0, 0.0), size))-vec3(0.5));
vec3 v101 = normalize(rand33(mod(o + vec3(1.0, 0.0, 1.0), size))-vec3(0.5));
vec3 v110 = normalize(rand33(mod(o + vec3(1.0, 1.0, 0.0), size))-vec3(0.5));
vec3 v111 = normalize(rand33(mod(o + vec3(1.0, 1.0, 1.0), size))-vec3(0.5));
float p000 = dot(v000, f);
float p001 = dot(v001, f - vec3(0.0, 0.0, 1.0));
float p010 = dot(v010, f - vec3(0.0, 1.0, 0.0));
float p011 = dot(v011, f - vec3(0.0, 1.0, 1.0));
float p100 = dot(v100, f - vec3(1.0, 0.0, 0.0));
float p101 = dot(v101, f - vec3(1.0, 0.0, 1.0));
float p110 = dot(v110, f - vec3(1.0, 1.0, 0.0));
float p111 = dot(v111, f - vec3(1.0, 1.0, 1.0));
vec3 t = f * f * (3.0 - 2.0 * f);
return 0.5 + mix(mix(mix(p000, p100, t.x), mix(p010, p110, t.x), t.y), mix(mix(p001, p101, t.x), mix(p011, p111, t.x), t.y), t.z);
}
float tex3d_fbm_cellular(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
float min_dist = 3.0;
for (float x = -1.0; x <= 1.0; x++) {
for (float y = -1.0; y <= 1.0; y++) {
for (float z = -1.0; z <= 1.0; z++) {
vec3 node = 0.4*rand33(mod(o + vec3(x, y, z), size)) + vec3(x, y, z);
float dist = sqrt((f - node).x * (f - node).x + (f - node).y * (f - node).y + (f - node).z * (f - node).z);
min_dist = min(min_dist, dist);
}
}
}
return min_dist;
}
const float p_o349717_curve_0_x = 0.000000000;
const float p_o349717_curve_0_y = 0.000000000;
const float p_o349717_curve_0_ls = 0.000000000;
const float p_o349717_curve_0_rs = -0.029626113;
const float p_o349717_curve_1_x = 1.000000000;
const float p_o349717_curve_1_y = 1.000000000;
const float p_o349717_curve_1_ls = 0.000000000;
const float p_o349717_curve_1_rs = -0.000000000;
float o349717_curve_curve_fct(float x) {
if (x <= p_o349717_curve_1_x) {
float dx = x - p_o349717_curve_0_x;
float d = p_o349717_curve_1_x - p_o349717_curve_0_x;
float t = dx/d;
float omt = (1.0 - t);
float omt2 = omt * omt;
float omt3 = omt2 * omt;
float t2 = t * t;
float t3 = t2 * t;
d /= 3.0;
float y1 = p_o349717_curve_0_y;
float yac = p_o349717_curve_0_y + d*p_o349717_curve_0_rs;
float ybc = p_o349717_curve_1_y - d*p_o349717_curve_1_ls;
float y2 = p_o349717_curve_1_y;
return y1*omt3 + yac*omt2*t*3.0 + ybc*omt*t2*3.0 + y2*t3;
}
}
const float p_o298492_default_in1 = 0.000000000;
const float p_o298492_default_in2 = 1.460000000;
const float p_o398828_default_in1 = 0.000000000;
const float p_o398828_default_in2 = 0.000000000;
const float p_o260446_default_in1 = 0.000000000;
const float p_o260446_default_in2 = 1.350000000;
const float p_o253351_default_in1 = 0.000000000;
const float p_o253351_default_in2 = 0.000000000;
const float p_o321142_default_in1 = 0.000000000;
const float p_o321142_default_in2 = 1.500000000;
const float p_o277526_sides = 1.000000000;
const float p_o277526_radius = 1.000000000;
const float p_o277526_edge = 0.760000000;
const float p_o135529_default_in1 = 0.000000000;
const float p_o60565_default_in1 = 0.000000000;
const float p_o60565_default_in2 = 0.160000000;
const float p_o86476_default_in1 = 0.000000000;
const float p_o86476_default_in2 = 0.360000000;
const float p_o9697_sides = 2.000000000;
const float p_o9697_radius = 1.010000000;
const float p_o9697_edge = 2.700000000;
const float p_o535536_default_in1 = 0.000000000;
const int seed_o530985 = -46342;
const float p_o530985_scale_x = 4.000000000;
const float p_o530985_scale_y = 4.000000000;
const float p_o530985_scale_z = 4.000000000;
const float p_o530985_iterations = 8.000000000;
const float p_o530985_persistence = 0.500000000;
float o530985_fbm(vec3 coord, vec3 size, int octaves, float persistence, float seed) {
float normalize_factor = 0.0;
float value = 0.0;
float scale = 1.0;
for (int i = 0; i < octaves; i++) {
value += tex3d_fbm_value(coord*size, size, seed) * scale;
normalize_factor += scale;
size *= 2.0;
scale *= persistence;
}
return value / normalize_factor;
}
const float p_o574483_Distort = 0.280000000;
const int seed_o15805 = -41176;
const float p_o15805_scale_x = 8.000000000;
const float p_o15805_scale_y = 8.000000000;
const float p_o15805_scale_z = 8.000000000;
const float p_o15805_iterations = 8.000000000;
const float p_o15805_persistence = 0.500000000;
float o15805_fbm(vec3 coord, vec3 size, int octaves, float persistence, float seed) {
float normalize_factor = 0.0;
float value = 0.0;
float scale = 1.0;
for (int i = 0; i < octaves; i++) {
value += tex3d_fbm_value(coord*size, size, seed) * scale;
normalize_factor += scale;
size *= 2.0;
scale *= persistence;
}
return value / normalize_factor;
}
const float p_o395471_color = 1.000000000;
void fragment() {
float o277526_0_1_f = shape_circle((UV), p_o277526_sides, p_o277526_radius*1.0, p_o277526_edge*1.0);
float o321142_0_clamp_false = pow(o277526_0_1_f,p_o321142_default_in2);
float o321142_0_clamp_true = clamp(o321142_0_clamp_false, 0.0, 1.0);
float o321142_0_2_f = o321142_0_clamp_false;
float o535536_0_clamp_false = p_o535536_default_in1+(elapsed_time*0.1);
float o535536_0_clamp_true = clamp(o535536_0_clamp_false, 0.0, 1.0);
float o535536_0_2_f = o535536_0_clamp_false;
vec3 o530985_0_1_tex3d = vec3(o530985_fbm((vec4((UV), o535536_0_2_f, 0.0)).xyz, vec3(p_o530985_scale_x, p_o530985_scale_y, p_o530985_scale_z), int(p_o530985_iterations), p_o530985_persistence, float(seed_o530985)));
vec3 o535539_0_1_rgb = o530985_0_1_tex3d;
float o9697_0_1_f = shape_circle((UV), p_o9697_sides, p_o9697_radius*1.0, p_o9697_edge*(dot(o535539_0_1_rgb, vec3(1.0))/3.0));
float o86476_0_clamp_false = pow(o9697_0_1_f,p_o86476_default_in2);
float o86476_0_clamp_true = clamp(o86476_0_clamp_false, 0.0, 1.0);
float o86476_0_2_f = o86476_0_clamp_false;
float o60565_0_clamp_false = o86476_0_2_f*p_o60565_default_in2;
float o60565_0_clamp_true = clamp(o60565_0_clamp_false, 0.0, 1.0);
float o60565_0_2_f = o60565_0_clamp_false;
float o135529_0_clamp_false = o60565_0_2_f+(elapsed_time*0.1);
float o135529_0_clamp_true = clamp(o135529_0_clamp_false, 0.0, 1.0);
float o135529_0_2_f = o135529_0_clamp_false;
float o620684_0_1_f = (elapsed_time);
vec4 o614555_0_1_rgba = vec4(0.0, o620684_0_1_f, 0.0, 1.0);
vec3 o584725_0_1_tex3d = ((o614555_0_1_rgba).rgb);
vec3 o15805_0_1_tex3d = vec3(o15805_fbm((vec4((vec4((UV), o135529_0_2_f, 0.0)).xyz+(o584725_0_1_tex3d*p_o574483_Distort*0.5-0.5), 0.0)).xyz, vec3(p_o15805_scale_x, p_o15805_scale_y, p_o15805_scale_z), int(p_o15805_iterations), p_o15805_persistence, float(seed_o15805)));
vec3 o574483_0_1_tex3d = o15805_0_1_tex3d;
vec3 o39870_0_1_rgb = o574483_0_1_tex3d;
float o253351_0_clamp_false = o321142_0_2_f*(dot(o39870_0_1_rgb, vec3(1.0))/3.0);
float o253351_0_clamp_true = clamp(o253351_0_clamp_false, 0.0, 1.0);
float o253351_0_1_f = o253351_0_clamp_false;
float o260446_0_clamp_false = pow(o253351_0_1_f,p_o260446_default_in2);
float o260446_0_clamp_true = clamp(o260446_0_clamp_false, 0.0, 1.0);
float o260446_0_2_f = o260446_0_clamp_false;
float o395471_0_1_f = p_o395471_color;
float o398828_0_clamp_false = o260446_0_2_f*o395471_0_1_f;
float o398828_0_clamp_true = clamp(o398828_0_clamp_false, 0.0, 1.0);
float o398828_0_1_f = o398828_0_clamp_false;
float o298492_0_clamp_false = o398828_0_1_f*p_o298492_default_in2;
float o298492_0_clamp_true = clamp(o298492_0_clamp_false, 0.0, 1.0);
float o298492_0_2_f = o298492_0_clamp_true;
float o349717_0_1_f = o349717_curve_curve_fct(o298492_0_2_f);
ALBEDO = color.rgb;
ALPHA = vec3(o349717_0_1_f).r * color.a * density;
}"
[sub_resource type="ShaderMaterial" id=7]
render_priority = -1
shader = SubResource( 6 )
shader_param/density = 1.0
shader_param/speed = 0.5
shader_param/offset = 0.0
shader_param/color = Color( 16.19, 8.72, 4, 0.08 )
[sub_resource type="QuadMesh" id=8]
material = SubResource( 7 )
size = Vector2( 16, 16 )
[sub_resource type="Shader" id=9]
code = "shader_type spatial;
varying float elapsed_time;
uniform float density = 1.0;
uniform float speed = 1.0;
uniform float offset = 0.0;
uniform vec4 color : hint_color = vec4(1,1,1,1);
void vertex() {
elapsed_time = TIME * speed + offset;
}
//---
float rand(vec2 x) {
return fract(cos(mod(dot(x, vec2(13.9898, 8.141)), 3.14)) * 43758.5453);
}
vec2 rand2(vec2 x) {
return fract(cos(mod(vec2(dot(x, vec2(13.9898, 8.141)),
dot(x, vec2(3.4562, 17.398))), vec2(3.14))) * 43758.5453);
}
vec3 rand3(vec2 x) {
return fract(cos(mod(vec3(dot(x, vec2(13.9898, 8.141)),
dot(x, vec2(3.4562, 17.398)),
dot(x, vec2(13.254, 5.867))), vec3(3.14))) * 43758.5453);
}
vec3 rgb2hsv(vec3 c) {
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}
vec3 hsv2rgb(vec3 c) {
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
float shape_circle(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float distance = length(uv);
return clamp((1.0-distance/size)/edge, 0.0, 1.0);
}
float shape_polygon(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = atan(uv.x, uv.y)+3.14159265359;
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(0.5+angle/slice)*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_star(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = atan(uv.x, uv.y);
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(angle/slice-0.5+2.0*step(mod(angle, slice), 0.5*slice))*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_curved_star(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = 2.0*(atan(uv.x, uv.y)+3.14159265359);
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(0.5+0.5*angle/slice)*2.0*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_rays(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = 0.5*max(edge, 1.0e-8)*size;
float slice = 6.28318530718/sides;
float angle = mod(atan(uv.x, uv.y)+3.14159265359, slice)/slice;
return clamp(min((size-angle)/edge, angle/edge), 0.0, 1.0);
}
float rand31(vec3 p) {
return fract(sin(dot(p,vec3(127.1,311.7, 74.7)))*43758.5453123);
}
vec3 rand33(vec3 p){
p = vec3( dot(p,vec3(127.1,311.7, 74.7)),
dot(p,vec3(269.5,183.3,246.1)),
dot(p,vec3(113.5,271.9,124.6)));
return -1.0 + 2.0*fract(sin(p)*43758.5453123);
}
float tex3d_fbm_value(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
float p000 = rand31(mod(o, size));
float p001 = rand31(mod(o + vec3(0.0, 0.0, 1.0), size));
float p010 = rand31(mod(o + vec3(0.0, 1.0, 0.0), size));
float p011 = rand31(mod(o + vec3(0.0, 1.0, 1.0), size));
float p100 = rand31(mod(o + vec3(1.0, 0.0, 0.0), size));
float p101 = rand31(mod(o + vec3(1.0, 0.0, 1.0), size));
float p110 = rand31(mod(o + vec3(1.0, 1.0, 0.0), size));
float p111 = rand31(mod(o + vec3(1.0, 1.0, 1.0), size));
vec3 t = f * f * (3.0 - 2.0 * f);
return mix(mix(mix(p000, p100, t.x), mix(p010, p110, t.x), t.y), mix(mix(p001, p101, t.x), mix(p011, p111, t.x), t.y), t.z);
}
float tex3d_fbm_perlin(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
vec3 v000 = normalize(rand33(mod(o, size))-vec3(0.5));
vec3 v001 = normalize(rand33(mod(o + vec3(0.0, 0.0, 1.0), size))-vec3(0.5));
vec3 v010 = normalize(rand33(mod(o + vec3(0.0, 1.0, 0.0), size))-vec3(0.5));
vec3 v011 = normalize(rand33(mod(o + vec3(0.0, 1.0, 1.0), size))-vec3(0.5));
vec3 v100 = normalize(rand33(mod(o + vec3(1.0, 0.0, 0.0), size))-vec3(0.5));
vec3 v101 = normalize(rand33(mod(o + vec3(1.0, 0.0, 1.0), size))-vec3(0.5));
vec3 v110 = normalize(rand33(mod(o + vec3(1.0, 1.0, 0.0), size))-vec3(0.5));
vec3 v111 = normalize(rand33(mod(o + vec3(1.0, 1.0, 1.0), size))-vec3(0.5));
float p000 = dot(v000, f);
float p001 = dot(v001, f - vec3(0.0, 0.0, 1.0));
float p010 = dot(v010, f - vec3(0.0, 1.0, 0.0));
float p011 = dot(v011, f - vec3(0.0, 1.0, 1.0));
float p100 = dot(v100, f - vec3(1.0, 0.0, 0.0));
float p101 = dot(v101, f - vec3(1.0, 0.0, 1.0));
float p110 = dot(v110, f - vec3(1.0, 1.0, 0.0));
float p111 = dot(v111, f - vec3(1.0, 1.0, 1.0));
vec3 t = f * f * (3.0 - 2.0 * f);
return 0.5 + mix(mix(mix(p000, p100, t.x), mix(p010, p110, t.x), t.y), mix(mix(p001, p101, t.x), mix(p011, p111, t.x), t.y), t.z);
}
float tex3d_fbm_cellular(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
float min_dist = 3.0;
for (float x = -1.0; x <= 1.0; x++) {
for (float y = -1.0; y <= 1.0; y++) {
for (float z = -1.0; z <= 1.0; z++) {
vec3 node = 0.4*rand33(mod(o + vec3(x, y, z), size)) + vec3(x, y, z);
float dist = sqrt((f - node).x * (f - node).x + (f - node).y * (f - node).y + (f - node).z * (f - node).z);
min_dist = min(min_dist, dist);
}
}
}
return min_dist;
}
const float p_o349717_curve_0_x = 0.000000000;
const float p_o349717_curve_0_y = 0.000000000;
const float p_o349717_curve_0_ls = 0.000000000;
const float p_o349717_curve_0_rs = -0.029626113;
const float p_o349717_curve_1_x = 1.000000000;
const float p_o349717_curve_1_y = 1.000000000;
const float p_o349717_curve_1_ls = 0.000000000;
const float p_o349717_curve_1_rs = -0.000000000;
float o349717_curve_curve_fct(float x) {
if (x <= p_o349717_curve_1_x) {
float dx = x - p_o349717_curve_0_x;
float d = p_o349717_curve_1_x - p_o349717_curve_0_x;
float t = dx/d;
float omt = (1.0 - t);
float omt2 = omt * omt;
float omt3 = omt2 * omt;
float t2 = t * t;
float t3 = t2 * t;
d /= 3.0;
float y1 = p_o349717_curve_0_y;
float yac = p_o349717_curve_0_y + d*p_o349717_curve_0_rs;
float ybc = p_o349717_curve_1_y - d*p_o349717_curve_1_ls;
float y2 = p_o349717_curve_1_y;
return y1*omt3 + yac*omt2*t*3.0 + ybc*omt*t2*3.0 + y2*t3;
}
}
const float p_o298492_default_in1 = 0.000000000;
const float p_o298492_default_in2 = 1.460000000;
const float p_o398828_default_in1 = 0.000000000;
const float p_o398828_default_in2 = 0.000000000;
const float p_o260446_default_in1 = 0.000000000;
const float p_o260446_default_in2 = 1.350000000;
const float p_o253351_default_in1 = 0.000000000;
const float p_o253351_default_in2 = 0.000000000;
const float p_o321142_default_in1 = 0.000000000;
const float p_o321142_default_in2 = 1.500000000;
const float p_o277526_sides = 1.000000000;
const float p_o277526_radius = 1.000000000;
const float p_o277526_edge = 0.760000000;
const float p_o135529_default_in1 = 0.000000000;
const float p_o60565_default_in1 = 0.000000000;
const float p_o60565_default_in2 = 0.160000000;
const float p_o86476_default_in1 = 0.000000000;
const float p_o86476_default_in2 = 0.360000000;
const float p_o9697_sides = 2.000000000;
const float p_o9697_radius = 1.010000000;
const float p_o9697_edge = 2.700000000;
const float p_o535536_default_in1 = 0.000000000;
const int seed_o530985 = -46342;
const float p_o530985_scale_x = 4.000000000;
const float p_o530985_scale_y = 4.000000000;
const float p_o530985_scale_z = 4.000000000;
const float p_o530985_iterations = 8.000000000;
const float p_o530985_persistence = 0.500000000;
float o530985_fbm(vec3 coord, vec3 size, int octaves, float persistence, float seed) {
float normalize_factor = 0.0;
float value = 0.0;
float scale = 1.0;
for (int i = 0; i < octaves; i++) {
value += tex3d_fbm_value(coord*size, size, seed) * scale;
normalize_factor += scale;
size *= 2.0;
scale *= persistence;
}
return value / normalize_factor;
}
const float p_o574483_Distort = 0.280000000;
const int seed_o15805 = -41176;
const float p_o15805_scale_x = 8.000000000;
const float p_o15805_scale_y = 8.000000000;
const float p_o15805_scale_z = 8.000000000;
const float p_o15805_iterations = 8.000000000;
const float p_o15805_persistence = 0.500000000;
float o15805_fbm(vec3 coord, vec3 size, int octaves, float persistence, float seed) {
float normalize_factor = 0.0;
float value = 0.0;
float scale = 1.0;
for (int i = 0; i < octaves; i++) {
value += tex3d_fbm_value(coord*size, size, seed) * scale;
normalize_factor += scale;
size *= 2.0;
scale *= persistence;
}
return value / normalize_factor;
}
const float p_o395471_color = 1.000000000;
void fragment() {
float o277526_0_1_f = shape_circle((UV), p_o277526_sides, p_o277526_radius*1.0, p_o277526_edge*1.0);
float o321142_0_clamp_false = pow(o277526_0_1_f,p_o321142_default_in2);
float o321142_0_clamp_true = clamp(o321142_0_clamp_false, 0.0, 1.0);
float o321142_0_2_f = o321142_0_clamp_false;
float o535536_0_clamp_false = p_o535536_default_in1+(elapsed_time*0.1);
float o535536_0_clamp_true = clamp(o535536_0_clamp_false, 0.0, 1.0);
float o535536_0_2_f = o535536_0_clamp_false;
vec3 o530985_0_1_tex3d = vec3(o530985_fbm((vec4((UV), o535536_0_2_f, 0.0)).xyz, vec3(p_o530985_scale_x, p_o530985_scale_y, p_o530985_scale_z), int(p_o530985_iterations), p_o530985_persistence, float(seed_o530985)));
vec3 o535539_0_1_rgb = o530985_0_1_tex3d;
float o9697_0_1_f = shape_circle((UV), p_o9697_sides, p_o9697_radius*1.0, p_o9697_edge*(dot(o535539_0_1_rgb, vec3(1.0))/3.0));
float o86476_0_clamp_false = pow(o9697_0_1_f,p_o86476_default_in2);
float o86476_0_clamp_true = clamp(o86476_0_clamp_false, 0.0, 1.0);
float o86476_0_2_f = o86476_0_clamp_false;
float o60565_0_clamp_false = o86476_0_2_f*p_o60565_default_in2;
float o60565_0_clamp_true = clamp(o60565_0_clamp_false, 0.0, 1.0);
float o60565_0_2_f = o60565_0_clamp_false;
float o135529_0_clamp_false = o60565_0_2_f+(elapsed_time*0.1);
float o135529_0_clamp_true = clamp(o135529_0_clamp_false, 0.0, 1.0);
float o135529_0_2_f = o135529_0_clamp_false;
float o620684_0_1_f = (elapsed_time);
vec4 o614555_0_1_rgba = vec4(0.0, o620684_0_1_f, 0.0, 1.0);
vec3 o584725_0_1_tex3d = ((o614555_0_1_rgba).rgb);
vec3 o15805_0_1_tex3d = vec3(o15805_fbm((vec4((vec4((UV), o135529_0_2_f, 0.0)).xyz+(o584725_0_1_tex3d*p_o574483_Distort*0.5-0.5), 0.0)).xyz, vec3(p_o15805_scale_x, p_o15805_scale_y, p_o15805_scale_z), int(p_o15805_iterations), p_o15805_persistence, float(seed_o15805)));
vec3 o574483_0_1_tex3d = o15805_0_1_tex3d;
vec3 o39870_0_1_rgb = o574483_0_1_tex3d;
float o253351_0_clamp_false = o321142_0_2_f*(dot(o39870_0_1_rgb, vec3(1.0))/3.0);
float o253351_0_clamp_true = clamp(o253351_0_clamp_false, 0.0, 1.0);
float o253351_0_1_f = o253351_0_clamp_false;
float o260446_0_clamp_false = pow(o253351_0_1_f,p_o260446_default_in2);
float o260446_0_clamp_true = clamp(o260446_0_clamp_false, 0.0, 1.0);
float o260446_0_2_f = o260446_0_clamp_false;
float o395471_0_1_f = p_o395471_color;
float o398828_0_clamp_false = o260446_0_2_f*o395471_0_1_f;
float o398828_0_clamp_true = clamp(o398828_0_clamp_false, 0.0, 1.0);
float o398828_0_1_f = o398828_0_clamp_false;
float o298492_0_clamp_false = o398828_0_1_f*p_o298492_default_in2;
float o298492_0_clamp_true = clamp(o298492_0_clamp_false, 0.0, 1.0);
float o298492_0_2_f = o298492_0_clamp_true;
float o349717_0_1_f = o349717_curve_curve_fct(o298492_0_2_f);
ALBEDO = color.rgb;
ALPHA = vec3(o349717_0_1_f).r * color.a * density;
}"
[sub_resource type="ShaderMaterial" id=10]
render_priority = -2
shader = SubResource( 9 )
shader_param/density = 0.279
shader_param/speed = 0.5
shader_param/offset = 2.0
shader_param/color = Color( 32.1216, 8.21569, 3.31765, 0.0156863 )
[sub_resource type="QuadMesh" id=11]
material = SubResource( 10 )
size = Vector2( 16, 16 )
[sub_resource type="Shader" id=12]
code = "shader_type spatial;
varying float elapsed_time;
uniform float density = 1.0;
uniform float speed = 1.0;
uniform float offset = 0.0;
uniform vec4 color : hint_color = vec4(1,1,1,1);
void vertex() {
elapsed_time = TIME * speed + offset;
}
//---
float rand(vec2 x) {
return fract(cos(mod(dot(x, vec2(13.9898, 8.141)), 3.14)) * 43758.5453);
}
vec2 rand2(vec2 x) {
return fract(cos(mod(vec2(dot(x, vec2(13.9898, 8.141)),
dot(x, vec2(3.4562, 17.398))), vec2(3.14))) * 43758.5453);
}
vec3 rand3(vec2 x) {
return fract(cos(mod(vec3(dot(x, vec2(13.9898, 8.141)),
dot(x, vec2(3.4562, 17.398)),
dot(x, vec2(13.254, 5.867))), vec3(3.14))) * 43758.5453);
}
vec3 rgb2hsv(vec3 c) {
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}
vec3 hsv2rgb(vec3 c) {
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
float shape_circle(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float distance = length(uv);
return clamp((1.0-distance/size)/edge, 0.0, 1.0);
}
float shape_polygon(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = atan(uv.x, uv.y)+3.14159265359;
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(0.5+angle/slice)*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_star(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = atan(uv.x, uv.y);
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(angle/slice-0.5+2.0*step(mod(angle, slice), 0.5*slice))*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_curved_star(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = 2.0*(atan(uv.x, uv.y)+3.14159265359);
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(0.5+0.5*angle/slice)*2.0*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_rays(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = 0.5*max(edge, 1.0e-8)*size;
float slice = 6.28318530718/sides;
float angle = mod(atan(uv.x, uv.y)+3.14159265359, slice)/slice;
return clamp(min((size-angle)/edge, angle/edge), 0.0, 1.0);
}
float rand31(vec3 p) {
return fract(sin(dot(p,vec3(127.1,311.7, 74.7)))*43758.5453123);
}
vec3 rand33(vec3 p){
p = vec3( dot(p,vec3(127.1,311.7, 74.7)),
dot(p,vec3(269.5,183.3,246.1)),
dot(p,vec3(113.5,271.9,124.6)));
return -1.0 + 2.0*fract(sin(p)*43758.5453123);
}
float tex3d_fbm_value(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
float p000 = rand31(mod(o, size));
float p001 = rand31(mod(o + vec3(0.0, 0.0, 1.0), size));
float p010 = rand31(mod(o + vec3(0.0, 1.0, 0.0), size));
float p011 = rand31(mod(o + vec3(0.0, 1.0, 1.0), size));
float p100 = rand31(mod(o + vec3(1.0, 0.0, 0.0), size));
float p101 = rand31(mod(o + vec3(1.0, 0.0, 1.0), size));
float p110 = rand31(mod(o + vec3(1.0, 1.0, 0.0), size));
float p111 = rand31(mod(o + vec3(1.0, 1.0, 1.0), size));
vec3 t = f * f * (3.0 - 2.0 * f);
return mix(mix(mix(p000, p100, t.x), mix(p010, p110, t.x), t.y), mix(mix(p001, p101, t.x), mix(p011, p111, t.x), t.y), t.z);
}
float tex3d_fbm_perlin(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
vec3 v000 = normalize(rand33(mod(o, size))-vec3(0.5));
vec3 v001 = normalize(rand33(mod(o + vec3(0.0, 0.0, 1.0), size))-vec3(0.5));
vec3 v010 = normalize(rand33(mod(o + vec3(0.0, 1.0, 0.0), size))-vec3(0.5));
vec3 v011 = normalize(rand33(mod(o + vec3(0.0, 1.0, 1.0), size))-vec3(0.5));
vec3 v100 = normalize(rand33(mod(o + vec3(1.0, 0.0, 0.0), size))-vec3(0.5));
vec3 v101 = normalize(rand33(mod(o + vec3(1.0, 0.0, 1.0), size))-vec3(0.5));
vec3 v110 = normalize(rand33(mod(o + vec3(1.0, 1.0, 0.0), size))-vec3(0.5));
vec3 v111 = normalize(rand33(mod(o + vec3(1.0, 1.0, 1.0), size))-vec3(0.5));
float p000 = dot(v000, f);
float p001 = dot(v001, f - vec3(0.0, 0.0, 1.0));
float p010 = dot(v010, f - vec3(0.0, 1.0, 0.0));
float p011 = dot(v011, f - vec3(0.0, 1.0, 1.0));
float p100 = dot(v100, f - vec3(1.0, 0.0, 0.0));
float p101 = dot(v101, f - vec3(1.0, 0.0, 1.0));
float p110 = dot(v110, f - vec3(1.0, 1.0, 0.0));
float p111 = dot(v111, f - vec3(1.0, 1.0, 1.0));
vec3 t = f * f * (3.0 - 2.0 * f);
return 0.5 + mix(mix(mix(p000, p100, t.x), mix(p010, p110, t.x), t.y), mix(mix(p001, p101, t.x), mix(p011, p111, t.x), t.y), t.z);
}
float tex3d_fbm_cellular(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
float min_dist = 3.0;
for (float x = -1.0; x <= 1.0; x++) {
for (float y = -1.0; y <= 1.0; y++) {
for (float z = -1.0; z <= 1.0; z++) {
vec3 node = 0.4*rand33(mod(o + vec3(x, y, z), size)) + vec3(x, y, z);
float dist = sqrt((f - node).x * (f - node).x + (f - node).y * (f - node).y + (f - node).z * (f - node).z);
min_dist = min(min_dist, dist);
}
}
}
return min_dist;
}
const float p_o349717_curve_0_x = 0.000000000;
const float p_o349717_curve_0_y = 0.000000000;
const float p_o349717_curve_0_ls = 0.000000000;
const float p_o349717_curve_0_rs = -0.029626113;
const float p_o349717_curve_1_x = 1.000000000;
const float p_o349717_curve_1_y = 1.000000000;
const float p_o349717_curve_1_ls = 0.000000000;
const float p_o349717_curve_1_rs = -0.000000000;
float o349717_curve_curve_fct(float x) {
if (x <= p_o349717_curve_1_x) {
float dx = x - p_o349717_curve_0_x;
float d = p_o349717_curve_1_x - p_o349717_curve_0_x;
float t = dx/d;
float omt = (1.0 - t);
float omt2 = omt * omt;
float omt3 = omt2 * omt;
float t2 = t * t;
float t3 = t2 * t;
d /= 3.0;
float y1 = p_o349717_curve_0_y;
float yac = p_o349717_curve_0_y + d*p_o349717_curve_0_rs;
float ybc = p_o349717_curve_1_y - d*p_o349717_curve_1_ls;
float y2 = p_o349717_curve_1_y;
return y1*omt3 + yac*omt2*t*3.0 + ybc*omt*t2*3.0 + y2*t3;
}
}
const float p_o298492_default_in1 = 0.000000000;
const float p_o298492_default_in2 = 1.460000000;
const float p_o398828_default_in1 = 0.000000000;
const float p_o398828_default_in2 = 0.000000000;
const float p_o260446_default_in1 = 0.000000000;
const float p_o260446_default_in2 = 1.350000000;
const float p_o253351_default_in1 = 0.000000000;
const float p_o253351_default_in2 = 0.000000000;
const float p_o321142_default_in1 = 0.000000000;
const float p_o321142_default_in2 = 1.500000000;
const float p_o277526_sides = 1.000000000;
const float p_o277526_radius = 1.000000000;
const float p_o277526_edge = 0.760000000;
const float p_o135529_default_in1 = 0.000000000;
const float p_o60565_default_in1 = 0.000000000;
const float p_o60565_default_in2 = 0.160000000;
const float p_o86476_default_in1 = 0.000000000;
const float p_o86476_default_in2 = 0.360000000;
const float p_o9697_sides = 2.000000000;
const float p_o9697_radius = 1.010000000;
const float p_o9697_edge = 2.700000000;
const float p_o535536_default_in1 = 0.000000000;
const int seed_o530985 = -46342;
const float p_o530985_scale_x = 4.000000000;
const float p_o530985_scale_y = 4.000000000;
const float p_o530985_scale_z = 4.000000000;
const float p_o530985_iterations = 8.000000000;
const float p_o530985_persistence = 0.500000000;
float o530985_fbm(vec3 coord, vec3 size, int octaves, float persistence, float seed) {
float normalize_factor = 0.0;
float value = 0.0;
float scale = 1.0;
for (int i = 0; i < octaves; i++) {
value += tex3d_fbm_value(coord*size, size, seed) * scale;
normalize_factor += scale;
size *= 2.0;
scale *= persistence;
}
return value / normalize_factor;
}
const float p_o574483_Distort = 0.280000000;
const int seed_o15805 = -41176;
const float p_o15805_scale_x = 8.000000000;
const float p_o15805_scale_y = 8.000000000;
const float p_o15805_scale_z = 8.000000000;
const float p_o15805_iterations = 8.000000000;
const float p_o15805_persistence = 0.500000000;
float o15805_fbm(vec3 coord, vec3 size, int octaves, float persistence, float seed) {
float normalize_factor = 0.0;
float value = 0.0;
float scale = 1.0;
for (int i = 0; i < octaves; i++) {
value += tex3d_fbm_value(coord*size, size, seed) * scale;
normalize_factor += scale;
size *= 2.0;
scale *= persistence;
}
return value / normalize_factor;
}
const float p_o395471_color = 1.000000000;
void fragment() {
float o277526_0_1_f = shape_circle((UV), p_o277526_sides, p_o277526_radius*1.0, p_o277526_edge*1.0);
float o321142_0_clamp_false = pow(o277526_0_1_f,p_o321142_default_in2);
float o321142_0_clamp_true = clamp(o321142_0_clamp_false, 0.0, 1.0);
float o321142_0_2_f = o321142_0_clamp_false;
float o535536_0_clamp_false = p_o535536_default_in1+(elapsed_time*0.1);
float o535536_0_clamp_true = clamp(o535536_0_clamp_false, 0.0, 1.0);
float o535536_0_2_f = o535536_0_clamp_false;
vec3 o530985_0_1_tex3d = vec3(o530985_fbm((vec4((UV), o535536_0_2_f, 0.0)).xyz, vec3(p_o530985_scale_x, p_o530985_scale_y, p_o530985_scale_z), int(p_o530985_iterations), p_o530985_persistence, float(seed_o530985)));
vec3 o535539_0_1_rgb = o530985_0_1_tex3d;
float o9697_0_1_f = shape_circle((UV), p_o9697_sides, p_o9697_radius*1.0, p_o9697_edge*(dot(o535539_0_1_rgb, vec3(1.0))/3.0));
float o86476_0_clamp_false = pow(o9697_0_1_f,p_o86476_default_in2);
float o86476_0_clamp_true = clamp(o86476_0_clamp_false, 0.0, 1.0);
float o86476_0_2_f = o86476_0_clamp_false;
float o60565_0_clamp_false = o86476_0_2_f*p_o60565_default_in2;
float o60565_0_clamp_true = clamp(o60565_0_clamp_false, 0.0, 1.0);
float o60565_0_2_f = o60565_0_clamp_false;
float o135529_0_clamp_false = o60565_0_2_f+(elapsed_time*0.1);
float o135529_0_clamp_true = clamp(o135529_0_clamp_false, 0.0, 1.0);
float o135529_0_2_f = o135529_0_clamp_false;
float o620684_0_1_f = (elapsed_time);
vec4 o614555_0_1_rgba = vec4(0.0, o620684_0_1_f, 0.0, 1.0);
vec3 o584725_0_1_tex3d = ((o614555_0_1_rgba).rgb);
vec3 o15805_0_1_tex3d = vec3(o15805_fbm((vec4((vec4((UV), o135529_0_2_f, 0.0)).xyz+(o584725_0_1_tex3d*p_o574483_Distort*0.5-0.5), 0.0)).xyz, vec3(p_o15805_scale_x, p_o15805_scale_y, p_o15805_scale_z), int(p_o15805_iterations), p_o15805_persistence, float(seed_o15805)));
vec3 o574483_0_1_tex3d = o15805_0_1_tex3d;
vec3 o39870_0_1_rgb = o574483_0_1_tex3d;
float o253351_0_clamp_false = o321142_0_2_f*(dot(o39870_0_1_rgb, vec3(1.0))/3.0);
float o253351_0_clamp_true = clamp(o253351_0_clamp_false, 0.0, 1.0);
float o253351_0_1_f = o253351_0_clamp_false;
float o260446_0_clamp_false = pow(o253351_0_1_f,p_o260446_default_in2);
float o260446_0_clamp_true = clamp(o260446_0_clamp_false, 0.0, 1.0);
float o260446_0_2_f = o260446_0_clamp_false;
float o395471_0_1_f = p_o395471_color;
float o398828_0_clamp_false = o260446_0_2_f*o395471_0_1_f;
float o398828_0_clamp_true = clamp(o398828_0_clamp_false, 0.0, 1.0);
float o398828_0_1_f = o398828_0_clamp_false;
float o298492_0_clamp_false = o398828_0_1_f*p_o298492_default_in2;
float o298492_0_clamp_true = clamp(o298492_0_clamp_false, 0.0, 1.0);
float o298492_0_2_f = o298492_0_clamp_true;
float o349717_0_1_f = o349717_curve_curve_fct(o298492_0_2_f);
ALBEDO = color.rgb;
ALPHA = vec3(o349717_0_1_f).r * color.a * density;
}"
[sub_resource type="ShaderMaterial" id=13]
render_priority = -1
shader = SubResource( 12 )
shader_param/density = 0.9
shader_param/speed = 0.025
shader_param/offset = 0.0
shader_param/color = Color( 1, 1, 1, 1 )
[sub_resource type="QuadMesh" id=14]
material = SubResource( 13 )
size = Vector2( 16, 16 )
[sub_resource type="Shader" id=15]
code = "shader_type spatial;
varying float elapsed_time;
uniform float density = 1.0;
uniform float speed = 1.0;
uniform float offset = 0.0;
uniform vec4 color : hint_color = vec4(1,1,1,1);
void vertex() {
elapsed_time = TIME * speed + offset;
}
//---
float rand(vec2 x) {
return fract(cos(mod(dot(x, vec2(13.9898, 8.141)), 3.14)) * 43758.5453);
}
vec2 rand2(vec2 x) {
return fract(cos(mod(vec2(dot(x, vec2(13.9898, 8.141)),
dot(x, vec2(3.4562, 17.398))), vec2(3.14))) * 43758.5453);
}
vec3 rand3(vec2 x) {
return fract(cos(mod(vec3(dot(x, vec2(13.9898, 8.141)),
dot(x, vec2(3.4562, 17.398)),
dot(x, vec2(13.254, 5.867))), vec3(3.14))) * 43758.5453);
}
vec3 rgb2hsv(vec3 c) {
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}
vec3 hsv2rgb(vec3 c) {
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
float shape_circle(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float distance = length(uv);
return clamp((1.0-distance/size)/edge, 0.0, 1.0);
}
float shape_polygon(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = atan(uv.x, uv.y)+3.14159265359;
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(0.5+angle/slice)*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_star(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = atan(uv.x, uv.y);
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(angle/slice-0.5+2.0*step(mod(angle, slice), 0.5*slice))*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_curved_star(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = max(edge, 1.0e-8);
float angle = 2.0*(atan(uv.x, uv.y)+3.14159265359);
float slice = 6.28318530718/sides;
return clamp((size-cos(floor(0.5+0.5*angle/slice)*2.0*slice-angle)*length(uv))/(edge*size), 0.0, 1.0);
}
float shape_rays(vec2 uv, float sides, float size, float edge) {
uv = 2.0*uv-1.0;
edge = 0.5*max(edge, 1.0e-8)*size;
float slice = 6.28318530718/sides;
float angle = mod(atan(uv.x, uv.y)+3.14159265359, slice)/slice;
return clamp(min((size-angle)/edge, angle/edge), 0.0, 1.0);
}
float rand31(vec3 p) {
return fract(sin(dot(p,vec3(127.1,311.7, 74.7)))*43758.5453123);
}
vec3 rand33(vec3 p){
p = vec3( dot(p,vec3(127.1,311.7, 74.7)),
dot(p,vec3(269.5,183.3,246.1)),
dot(p,vec3(113.5,271.9,124.6)));
return -1.0 + 2.0*fract(sin(p)*43758.5453123);
}
float tex3d_fbm_value(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
float p000 = rand31(mod(o, size));
float p001 = rand31(mod(o + vec3(0.0, 0.0, 1.0), size));
float p010 = rand31(mod(o + vec3(0.0, 1.0, 0.0), size));
float p011 = rand31(mod(o + vec3(0.0, 1.0, 1.0), size));
float p100 = rand31(mod(o + vec3(1.0, 0.0, 0.0), size));
float p101 = rand31(mod(o + vec3(1.0, 0.0, 1.0), size));
float p110 = rand31(mod(o + vec3(1.0, 1.0, 0.0), size));
float p111 = rand31(mod(o + vec3(1.0, 1.0, 1.0), size));
vec3 t = f * f * (3.0 - 2.0 * f);
return mix(mix(mix(p000, p100, t.x), mix(p010, p110, t.x), t.y), mix(mix(p001, p101, t.x), mix(p011, p111, t.x), t.y), t.z);
}
float tex3d_fbm_perlin(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
vec3 v000 = normalize(rand33(mod(o, size))-vec3(0.5));
vec3 v001 = normalize(rand33(mod(o + vec3(0.0, 0.0, 1.0), size))-vec3(0.5));
vec3 v010 = normalize(rand33(mod(o + vec3(0.0, 1.0, 0.0), size))-vec3(0.5));
vec3 v011 = normalize(rand33(mod(o + vec3(0.0, 1.0, 1.0), size))-vec3(0.5));
vec3 v100 = normalize(rand33(mod(o + vec3(1.0, 0.0, 0.0), size))-vec3(0.5));
vec3 v101 = normalize(rand33(mod(o + vec3(1.0, 0.0, 1.0), size))-vec3(0.5));
vec3 v110 = normalize(rand33(mod(o + vec3(1.0, 1.0, 0.0), size))-vec3(0.5));
vec3 v111 = normalize(rand33(mod(o + vec3(1.0, 1.0, 1.0), size))-vec3(0.5));
float p000 = dot(v000, f);
float p001 = dot(v001, f - vec3(0.0, 0.0, 1.0));
float p010 = dot(v010, f - vec3(0.0, 1.0, 0.0));
float p011 = dot(v011, f - vec3(0.0, 1.0, 1.0));
float p100 = dot(v100, f - vec3(1.0, 0.0, 0.0));
float p101 = dot(v101, f - vec3(1.0, 0.0, 1.0));
float p110 = dot(v110, f - vec3(1.0, 1.0, 0.0));
float p111 = dot(v111, f - vec3(1.0, 1.0, 1.0));
vec3 t = f * f * (3.0 - 2.0 * f);
return 0.5 + mix(mix(mix(p000, p100, t.x), mix(p010, p110, t.x), t.y), mix(mix(p001, p101, t.x), mix(p011, p111, t.x), t.y), t.z);
}
float tex3d_fbm_cellular(vec3 coord, vec3 size, float seed) {
vec3 o = floor(coord)+rand3(vec2(float(seed), 1.0-float(seed)))+size;
vec3 f = fract(coord);
float min_dist = 3.0;
for (float x = -1.0; x <= 1.0; x++) {
for (float y = -1.0; y <= 1.0; y++) {
for (float z = -1.0; z <= 1.0; z++) {
vec3 node = 0.4*rand33(mod(o + vec3(x, y, z), size)) + vec3(x, y, z);
float dist = sqrt((f - node).x * (f - node).x + (f - node).y * (f - node).y + (f - node).z * (f - node).z);
min_dist = min(min_dist, dist);
}
}
}
return min_dist;
}
const float p_o349717_curve_0_x = 0.000000000;
const float p_o349717_curve_0_y = 0.000000000;
const float p_o349717_curve_0_ls = 0.000000000;
const float p_o349717_curve_0_rs = -0.029626113;
const float p_o349717_curve_1_x = 1.000000000;
const float p_o349717_curve_1_y = 1.000000000;
const float p_o349717_curve_1_ls = 0.000000000;
const float p_o349717_curve_1_rs = -0.000000000;
float o349717_curve_curve_fct(float x) {
if (x <= p_o349717_curve_1_x) {
float dx = x - p_o349717_curve_0_x;
float d = p_o349717_curve_1_x - p_o349717_curve_0_x;
float t = dx/d;
float omt = (1.0 - t);
float omt2 = omt * omt;
float omt3 = omt2 * omt;
float t2 = t * t;
float t3 = t2 * t;
d /= 3.0;
float y1 = p_o349717_curve_0_y;
float yac = p_o349717_curve_0_y + d*p_o349717_curve_0_rs;
float ybc = p_o349717_curve_1_y - d*p_o349717_curve_1_ls;
float y2 = p_o349717_curve_1_y;
return y1*omt3 + yac*omt2*t*3.0 + ybc*omt*t2*3.0 + y2*t3;
}
}
const float p_o298492_default_in1 = 0.000000000;
const float p_o298492_default_in2 = 1.460000000;
const float p_o398828_default_in1 = 0.000000000;
const float p_o398828_default_in2 = 0.000000000;
const float p_o260446_default_in1 = 0.000000000;
const float p_o260446_default_in2 = 1.350000000;
const float p_o253351_default_in1 = 0.000000000;
const float p_o253351_default_in2 = 0.000000000;
const float p_o321142_default_in1 = 0.000000000;
const float p_o321142_default_in2 = 1.500000000;
const float p_o277526_sides = 1.000000000;
const float p_o277526_radius = 1.000000000;
const float p_o277526_edge = 0.760000000;
const float p_o135529_default_in1 = 0.000000000;
const float p_o60565_default_in1 = 0.000000000;
const float p_o60565_default_in2 = 0.160000000;
const float p_o86476_default_in1 = 0.000000000;
const float p_o86476_default_in2 = 0.360000000;
const float p_o9697_sides = 2.000000000;
const float p_o9697_radius = 1.010000000;
const float p_o9697_edge = 2.700000000;
const float p_o535536_default_in1 = 0.000000000;
const int seed_o530985 = -46342;
const float p_o530985_scale_x = 4.000000000;
const float p_o530985_scale_y = 4.000000000;
const float p_o530985_scale_z = 4.000000000;
const float p_o530985_iterations = 8.000000000;
const float p_o530985_persistence = 0.500000000;
float o530985_fbm(vec3 coord, vec3 size, int octaves, float persistence, float seed) {
float normalize_factor = 0.0;
float value = 0.0;
float scale = 1.0;
for (int i = 0; i < octaves; i++) {
value += tex3d_fbm_value(coord*size, size, seed) * scale;
normalize_factor += scale;
size *= 2.0;
scale *= persistence;
}
return value / normalize_factor;
}
const float p_o574483_Distort = 0.280000000;
const int seed_o15805 = -41176;
const float p_o15805_scale_x = 8.000000000;
const float p_o15805_scale_y = 8.000000000;
const float p_o15805_scale_z = 8.000000000;
const float p_o15805_iterations = 8.000000000;
const float p_o15805_persistence = 0.500000000;
float o15805_fbm(vec3 coord, vec3 size, int octaves, float persistence, float seed) {
float normalize_factor = 0.0;
float value = 0.0;
float scale = 1.0;
for (int i = 0; i < octaves; i++) {
value += tex3d_fbm_value(coord*size, size, seed) * scale;
normalize_factor += scale;
size *= 2.0;
scale *= persistence;
}
return value / normalize_factor;
}
const float p_o395471_color = 1.000000000;
void fragment() {
float o277526_0_1_f = shape_circle((UV), p_o277526_sides, p_o277526_radius*1.0, p_o277526_edge*1.0);
float o321142_0_clamp_false = pow(o277526_0_1_f,p_o321142_default_in2);
float o321142_0_clamp_true = clamp(o321142_0_clamp_false, 0.0, 1.0);
float o321142_0_2_f = o321142_0_clamp_false;
float o535536_0_clamp_false = p_o535536_default_in1+(elapsed_time*0.1);
float o535536_0_clamp_true = clamp(o535536_0_clamp_false, 0.0, 1.0);
float o535536_0_2_f = o535536_0_clamp_false;
vec3 o530985_0_1_tex3d = vec3(o530985_fbm((vec4((UV), o535536_0_2_f, 0.0)).xyz, vec3(p_o530985_scale_x, p_o530985_scale_y, p_o530985_scale_z), int(p_o530985_iterations), p_o530985_persistence, float(seed_o530985)));
vec3 o535539_0_1_rgb = o530985_0_1_tex3d;
float o9697_0_1_f = shape_circle((UV), p_o9697_sides, p_o9697_radius*1.0, p_o9697_edge*(dot(o535539_0_1_rgb, vec3(1.0))/3.0));
float o86476_0_clamp_false = pow(o9697_0_1_f,p_o86476_default_in2);
float o86476_0_clamp_true = clamp(o86476_0_clamp_false, 0.0, 1.0);
float o86476_0_2_f = o86476_0_clamp_false;
float o60565_0_clamp_false = o86476_0_2_f*p_o60565_default_in2;
float o60565_0_clamp_true = clamp(o60565_0_clamp_false, 0.0, 1.0);
float o60565_0_2_f = o60565_0_clamp_false;
float o135529_0_clamp_false = o60565_0_2_f+(elapsed_time*0.1);
float o135529_0_clamp_true = clamp(o135529_0_clamp_false, 0.0, 1.0);
float o135529_0_2_f = o135529_0_clamp_false;
float o620684_0_1_f = (elapsed_time);
vec4 o614555_0_1_rgba = vec4(0.0, o620684_0_1_f, 0.0, 1.0);
vec3 o584725_0_1_tex3d = ((o614555_0_1_rgba).rgb);
vec3 o15805_0_1_tex3d = vec3(o15805_fbm((vec4((vec4((UV), o135529_0_2_f, 0.0)).xyz+(o584725_0_1_tex3d*p_o574483_Distort*0.5-0.5), 0.0)).xyz, vec3(p_o15805_scale_x, p_o15805_scale_y, p_o15805_scale_z), int(p_o15805_iterations), p_o15805_persistence, float(seed_o15805)));
vec3 o574483_0_1_tex3d = o15805_0_1_tex3d;
vec3 o39870_0_1_rgb = o574483_0_1_tex3d;
float o253351_0_clamp_false = o321142_0_2_f*(dot(o39870_0_1_rgb, vec3(1.0))/3.0);
float o253351_0_clamp_true = clamp(o253351_0_clamp_false, 0.0, 1.0);
float o253351_0_1_f = o253351_0_clamp_false;
float o260446_0_clamp_false = pow(o253351_0_1_f,p_o260446_default_in2);
float o260446_0_clamp_true = clamp(o260446_0_clamp_false, 0.0, 1.0);
float o260446_0_2_f = o260446_0_clamp_false;
float o395471_0_1_f = p_o395471_color;
float o398828_0_clamp_false = o260446_0_2_f*o395471_0_1_f;
float o398828_0_clamp_true = clamp(o398828_0_clamp_false, 0.0, 1.0);
float o398828_0_1_f = o398828_0_clamp_false;
float o298492_0_clamp_false = o398828_0_1_f*p_o298492_default_in2;
float o298492_0_clamp_true = clamp(o298492_0_clamp_false, 0.0, 1.0);
float o298492_0_2_f = o298492_0_clamp_true;
float o349717_0_1_f = o349717_curve_curve_fct(o298492_0_2_f);
ALBEDO = color.rgb;
ALPHA = vec3(o349717_0_1_f).r * color.a * density;
}"
[sub_resource type="ShaderMaterial" id=16]
render_priority = -1
shader = SubResource( 15 )
shader_param/density = 1.0
shader_param/speed = 0.04
shader_param/offset = 4.0
shader_param/color = Color( 1, 1, 1, 1 )
[sub_resource type="QuadMesh" id=17]
material = SubResource( 16 )
size = Vector2( 16, 16 )
[sub_resource type="CylinderShape" id=18]
radius = 67.07
height = 84.58
[node name="Level" type="Spatial"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource( 2 )
[node name="SpawnPoints" type="Spatial" parent="."]
visible = false
script = ExtResource( 13 )
__meta__ = {
"_edit_lock_": true
}
[node name="SpawnPoint" parent="SpawnPoints" instance=ExtResource( 9 )]
transform = Transform( 0.258819, 0, 0.965926, 0, 1, 0, -0.965926, 0, 0.258819, 2, 10, 18 )
[node name="SpawnPoint2" parent="SpawnPoints" instance=ExtResource( 9 )]
transform = Transform( 0.258819, 0, 0.965926, 0, 1, 0, -0.965926, 0, 0.258819, 3, 10, -18 )
[node name="SpawnPoint3" parent="SpawnPoints" instance=ExtResource( 9 )]
transform = Transform( 0.258819, 0, 0.965926, 0, 1, 0, -0.965926, 0, 0.258819, -17, 17, 0 )
[node name="SpawnPoint4" parent="SpawnPoints" instance=ExtResource( 9 )]
transform = Transform( -0.258819, 0, -0.965926, 0, 1, 0, 0.965926, 0, -0.258819, 31, 3, 0 )
[node name="Decoration" type="Spatial" parent="."]
visible = false
[node name="Smoke" type="MeshInstance" parent="Decoration"]
transform = Transform( -1.87575, 0.369297, 0.103144, 0.211178, 2.04909, -0.815923, -0.144175, -1.37426, -2.42868, 20.5998, 16.4978, 11.2774 )
mesh = SubResource( 5 )
material/0 = null
[node name="Fire1" type="MeshInstance" parent="Decoration"]
transform = Transform( -1.28173, 0, -1.12052e-07, 0, 1.28173, 0, 1.12052e-07, 0, -1.28173, 20.9064, 14.0944, 13.2243 )
mesh = SubResource( 8 )
material/0 = null
[node name="Fire2" type="MeshInstance" parent="Decoration"]
transform = Transform( -1.60231, 0.120819, 0.005706, 0.120359, 1.63349, -0.789291, -0.0651468, -0.786625, -1.6379, 20.8181, 12.5297, 13.6559 )
mesh = SubResource( 11 )
material/0 = null
[node name="Clouds" type="MeshInstance" parent="Decoration"]
transform = Transform( 9.20067, 11.3376, -0.0795001, -0.35721, 0.187535, -14.5957, -11.3322, 9.1991, 0.395536, -10.8813, 40.9324, 1.15229 )
mesh = SubResource( 14 )
material/0 = null
[node name="Clouds2" type="MeshInstance" parent="Decoration"]
transform = Transform( 4.36766, 12.6479, 5.84422, 2.01429, 5.48714, -13.3803, -13.7864, 4.80863, -0.103444, -10.8813, 64.2284, -14.1764 )
mesh = SubResource( 17 )
material/0 = null
[node name="Sound" type="Spatial" parent="."]
visible = false
[node name="Pipes" type="AudioStreamPlayer3D" parent="Sound"]
transform = Transform( 1, 0, -2.98023e-08, 0, 1, 0, 2.98023e-08, 0, 1, 9.67349, 9, -22.8842 )
stream = ExtResource( 12 )
attenuation_model = 1
unit_db = -25.0
unit_size = 5.0
autoplay = true
[node name="Pipes3" type="AudioStreamPlayer3D" parent="Sound"]
transform = Transform( 1, 0, -2.98023e-08, 0, 1, 0, 2.98023e-08, 0, 1, 34.5687, 14.286, -0.232982 )
stream = ExtResource( 2 )
attenuation_model = 1
unit_db = -10.0
unit_size = 10.0
pitch_scale = 0.7
autoplay = true
[node name="Pipes2" type="AudioStreamPlayer3D" parent="Sound"]
transform = Transform( 1, 0, -2.98023e-08, 0, 1, 0, 2.98023e-08, 0, 1, 15.6735, 7, -22.8842 )
stream = ExtResource( 12 )
attenuation_model = 1
unit_db = -25.0
unit_size = 5.0
pitch_scale = 0.99
autoplay = true
[node name="Area" type="Area" parent="Sound"]
monitoring = false
monitorable = false
reverb_bus_enable = true
reverb_bus_name = "Reverb1"
reverb_bus_amount = 1.0
reverb_bus_uniformity = 1.0
[node name="CollisionShape" type="CollisionShape" parent="Sound/Area"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
shape = SubResource( 18 )
[node name="DM1_dev_materials" parent="." instance=ExtResource( 1 )]
[node name="ReflectionProbes" type="Spatial" parent="."]
visible = false
__meta__ = {
"_edit_lock_": true
}
[node name="ReflectionProbe" type="ReflectionProbe" parent="ReflectionProbes"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 25, 14, 0 )
extents = Vector3( 15, 14, 22 )
box_projection = true
enable_shadows = true
[node name="ReflectionProbe5" type="ReflectionProbe" parent="ReflectionProbes"]
transform = Transform( 0.930123, 0.367248, 0, -0.367248, 0.930123, 0, 0, 0, 1, 11.7433, 8.87002, -21.2808 )
extents = Vector3( 11.3113, 3.02928, 3.32246 )
origin_offset = Vector3( 1.16016, 0, 0.953125 )
box_projection = true
enable_shadows = true
[node name="ReflectionProbe2" type="ReflectionProbe" parent="ReflectionProbes"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 14, 0 )
extents = Vector3( 15, 14, 17 )
box_projection = true
enable_shadows = true
[node name="ReflectionProbe4" type="ReflectionProbe" parent="ReflectionProbes"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 14, 0 )
extents = Vector3( 15, 14, 17 )
box_projection = true
enable_shadows = true
[node name="ReflectionProbe3" type="ReflectionProbe" parent="ReflectionProbes"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 14, 0 )
extents = Vector3( 11, 14, 22 )
box_projection = true
enable_shadows = true
[node name="Lights" type="Spatial" parent="."]
visible = false
__meta__ = {
"_edit_lock_": true
}
[node name="OmniLight" type="OmniLight" parent="Lights"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 20.1625, 18.8617, 15.3107 )
light_color = Color( 0.894118, 0.392157, 0.117647, 1 )
light_energy = 15.0
light_indirect_energy = 2.0
light_specular = 0.98
light_bake_mode = 2
shadow_enabled = true
omni_range = 25.0
omni_attenuation = 2.54912
script = ExtResource( 10 )
speed = 3
noise_amount = 10.0
[node name="BlueDecoration" type="SpotLight" parent="Lights"]
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 32.9591, 14.4, 0 )
light_color = Color( 0.294118, 0.900735, 1, 1 )
light_energy = 1.5
light_bake_mode = 2
shadow_enabled = true
shadow_bias = 0.03
shadow_contact = 6.48
shadow_reverse_cull_face = true
spot_range = 36.0
spot_angle = 78.3316
[node name="SpotLight" type="SpotLight" parent="Lights"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 6.6, 9 )
shadow_enabled = true
shadow_reverse_cull_face = true
spot_range = 16.0
spot_angle = 57.198
[node name="SpotLight2" type="SpotLight" parent="Lights"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 6.6, -9 )
shadow_enabled = true
shadow_reverse_cull_face = true
spot_range = 16.0
spot_angle = 57.198
[node name="SpotLight6" type="SpotLight" parent="Lights"]
transform = Transform( 0.707107, 3.09086e-08, -0.707107, 0.707107, -3.09086e-08, 0.707107, 0, -1, -4.37114e-08, 6.51182, 11.2714, -20.2539 )
light_color = Color( 0.803922, 1, 0.901961, 1 )
light_energy = 3.0
shadow_enabled = true
shadow_reverse_cull_face = true
spot_range = 16.0
spot_angle = 56.6429
[node name="SpotLight7" type="SpotLight" parent="Lights"]
transform = Transform( -1, -1.19608e-14, 2.98023e-08, -2.69128e-08, -0.42955, -0.903043, 1.28016e-08, -0.903043, 0.42955, 12.6266, 13.5114, -13.799 )
light_color = Color( 1, 0, 0, 1 )
light_energy = 8.24
light_specular = 1.0
light_bake_mode = 2
shadow_enabled = true
shadow_bias = 0.0
shadow_contact = 2.86
shadow_reverse_cull_face = true
spot_range = 16.0
spot_angle = 56.6429
[node name="SpotLight8" type="SpotLight" parent="Lights"]
transform = Transform( -1, -1.19608e-14, 2.98023e-08, -2.69128e-08, -0.42955, -0.903043, 1.28016e-08, -0.903043, 0.42955, 20.0004, 13.5114, -13.799 )
light_color = Color( 1, 0, 0, 1 )
light_energy = 8.24
light_specular = 1.0
light_bake_mode = 2
shadow_enabled = true
shadow_bias = 0.0
shadow_contact = 2.86
shadow_reverse_cull_face = true
spot_range = 16.0
spot_angle = 56.6429
[node name="SpotLight9" type="SpotLight" parent="Lights"]
transform = Transform( -1, -1.30266e-15, 2.98023e-08, -2.69128e-08, -0.42955, -0.903043, 1.28016e-08, -0.903043, 0.42955, 28.1051, 13.5114, -13.799 )
light_color = Color( 1, 0, 0, 1 )
light_energy = 8.24
light_specular = 1.0
light_bake_mode = 2
shadow_enabled = true
shadow_bias = 0.0
shadow_contact = 2.86
shadow_reverse_cull_face = true
spot_range = 16.0
spot_angle = 56.6429
[node name="SpotLight3" type="SpotLight" parent="Lights"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -18, 13.6, 0 )
shadow_enabled = true
shadow_reverse_cull_face = true
spot_range = 24.0
spot_angle = 57.198
[node name="SpotLight4" type="SpotLight" parent="Lights"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 13.9999, 2.77229, -9.77516e-06 )
light_color = Color( 0.662745, 0.929412, 0.898039, 1 )
light_energy = 2.0
shadow_enabled = true
spot_range = 24.0
spot_angle = 57.198
script = ExtResource( 11 )
speed = 30
noise_amount = 0.5
[node name="SpotLight5" type="SpotLight" parent="Lights"]
transform = Transform( -1, 0, 1.19209e-07, 8.42937e-08, 0.707107, 0.707107, -8.42937e-08, 0.707107, -0.707107, 2, 13, 18 )
light_color = Color( 0.905882, 0.854902, 0.752941, 1 )
shadow_enabled = true
spot_range = 38.0
spot_angle = 63.7888
[node name="Killfloor" parent="." instance=ExtResource( 14 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -10.0737, 0 )
visible = false
[editable path="Killfloor"]