oh fuck it all works

Signed-off-by: Xe Iaso <me@christine.website>
This commit is contained in:
Cadey Ratio 2022-08-06 23:32:30 -04:00
parent 2e80dd2e8d
commit 33552559e8
20 changed files with 484 additions and 16 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017 Yuri Roubinski aka Chaosus
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -41,9 +41,6 @@ margin_right = -10.0
margin_bottom = -10.0
follow_focus = true
scroll_horizontal_enabled = false
__meta__ = {
"_edit_use_anchors_": false
}
[node name="ChatMessagesContainer" type="VBoxContainer" parent="ChatContainer/Chat/ScrollContainer"]
margin_right = 1900.0

30
README.md Normal file
View File

@ -0,0 +1,30 @@
# GDFractals
Fractal shaders for Godot 3.0
# Contains
* Julia fractal shader
* Mandelbrot fractal shader
* Sierpinski carpet shader
# How to setup
* Create ColorRect and lay ShaderMaterial on it
* Drag&drop the required shader to ShaderMaterial slot
* Create gradient texture, if you dont want to create it yourself use fire_gradient.tres
* Set parameters on material:
# for Julia:
* Gradient - gradient texture
* Scale = 4, 4
* Offset = 0, 0
* MaxIter = from 100 to 1000
* Speed = 1
# for Mandelbrot:
* Gradient - gradient texture
* Scale = 1, 1
* Offset = 0, 0
* MaxIter = from 100 to 1000
# for Serpinski carpet:
* Scale = 81, 81
* Offset = 0, 0

BIN
assets/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,2 @@
license: Freeware
link: https://www.fontspace.com/cecep-s-handwriting-2-font-f72804

View File

@ -0,0 +1,7 @@
[gd_resource type="Gradient" format=2]
[resource]
offsets = PoolRealArray( 0, 0.159763, 0.343195, 0.508876, 0.662722, 0.83432, 1 )
colors = PoolColorArray( 0, 0, 0, 1, 1, 0, 0, 1, 1, 0.820312, 0, 1, 1, 1, 1, 1, 1, 0.914062, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1 )

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

1
export/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*

View File

@ -7,18 +7,61 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="/home/mennomax/Documents/godot/GIFT.x86_64"
patch_list=PoolStringArray( )
export_path="../../../../../home/mennomax/Documents/godot/GIFT.x86_64"
script_export_mode=1
script_encryption_key=""
[preset.0.options]
custom_template/debug=""
custom_template/release=""
binary_format/64_bits=true
binary_format/embed_pck=false
texture_format/bptc=false
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
texture_format/no_bptc_fallbacks=true
binary_format/64_bits=true
custom_template/release=""
[preset.1]
name="Windows Desktop"
platform="Windows Desktop"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path=""
script_export_mode=1
script_encryption_key=""
[preset.1.options]
custom_template/debug=""
custom_template/release=""
binary_format/64_bits=true
binary_format/embed_pck=false
texture_format/bptc=false
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
texture_format/no_bptc_fallbacks=true
codesign/enable=false
codesign/identity_type=0
codesign/identity=""
codesign/password=""
codesign/timestamp=true
codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PoolStringArray( )
application/modify_resources=true
application/icon=""
application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
application/file_description=""
application/copyright=""
application/trademarks=""

16
scenes/2DOverlay.gd Normal file
View File

@ -0,0 +1,16 @@
extends Node2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass

View File

@ -1,24 +1,284 @@
[gd_scene load_steps=3 format=2]
[gd_scene load_steps=13 format=2]
[ext_resource path="res://Node.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/gift/gift_node.gd" type="Script" id=2]
[ext_resource path="res://scenes/2DOverlay.gd" type="Script" id=2]
[ext_resource path="res://scenes/Overlay Text.tres" type="Theme" id=3]
[ext_resource path="res://sprites/Mara.png" type="Texture" id=4]
[ext_resource path="res://scenes/GlitchyTexture.tres" type="Material" id=5]
[sub_resource type="Shader" id=8]
code = "shader_type canvas_item;
uniform float battery : hint_range(0.0,1.0) = 1.0;
uniform float anchor : hint_range(-1.0,1.0) = -0.5;
uniform float speed_scale : hint_range(1.0, 10.0) = 1.0;
uniform float fov : hint_range(0.01, 1.0) = 0.2;
uniform vec4 background_color : hint_color = vec4(0.0, 0.1, 0.2, 1.0);
uniform vec4 grid_color : hint_color = vec4(1.0, 0.5, 1.0, 1.0);
float grid(vec2 uv, float batt) {
vec2 size = vec2(uv.y, uv.y * uv.y * 0.2) * 0.01;
uv += vec2(0.0, TIME * speed_scale * (batt + 0.05));
uv = abs(fract(uv) - 0.5);
vec2 lines = smoothstep(size, vec2(0.0), uv);
lines += smoothstep(size * 5.0, vec2(0.0), uv) * 0.4 * batt;
return clamp(lines.x + lines.y, 0.0, 3.0);
}
void fragment() {
vec2 uv = UV;
vec4 col = background_color;
uv.y = 3.0 / (abs(uv.y + fov) + 0.05);
uv.x += anchor;
uv.x *= uv.y * 1.0;
float gridVal = grid(uv, battery);
col = mix(background_color, grid_color, gridVal);
COLOR = col;
}"
[sub_resource type="ShaderMaterial" id=9]
shader = SubResource( 8 )
shader_param/battery = 1.0
shader_param/anchor = -0.5
shader_param/speed_scale = 1.0
shader_param/fov = 0.2
shader_param/background_color = Color( 0, 0.1, 0.2, 1 )
shader_param/grid_color = Color( 1, 0.5, 1, 1 )
[sub_resource type="Shader" id=10]
code = "// cloudy skies shader
// inspired from shadertoy shader made by Drift (https://www.shadertoy.com/view/4tdSWr)
shader_type canvas_item;
uniform float cloudscale = 1.1;
uniform float speed = 0.01;
uniform float clouddark = 0.5;
uniform float cloudlight = 0.3;
uniform float cloudcover = 0.2;
uniform float cloudalpha = 8.0;
uniform float skytint = 0.5;
uniform vec3 skycolour1 = vec3(0.2, 0.4, 0.6);
uniform vec3 skycolour2 = vec3(0.4, 0.7, 1.0);
uniform mat2 m = mat2(vec2(1.6,1.2),vec2(-1.2,1.6)); // changement
// functions
vec2 hash( vec2 p ) {
p = vec2(dot(p,vec2(127.1,311.7)), dot(p,vec2(269.5,183.3)));
return -1.0 + 2.0*fract(sin(p)*43758.5453123);
}
float noise( in vec2 p ) {
float K1 = 0.366025404; // (sqrt(3)-1)/2;
float K2 = 0.211324865; // (3-sqrt(3))/6;
vec2 i = floor(p + (p.x+p.y)*K1);
vec2 a = p - i + (i.x+i.y)*K2;
vec2 o = (a.x>a.y) ? vec2(1.0,0.0) : vec2(0.0,1.0); //vec2 of = 0.5 + 0.5*vec2(sign(a.x-a.y), sign(a.y-a.x));
vec2 b = a - o + K2;
vec2 c = a - 1.0 + 2.0*K2;
vec3 h = max(0.5-vec3(dot(a,a), dot(b,b), dot(c,c) ), 0.0 );
vec3 n = h*h*h*h*vec3( dot(a,hash(i+0.0)), dot(b,hash(i+o)), dot(c,hash(i+1.0)));
return dot(n, vec3(70.0));
}
float fbm(vec2 n) {
float total = 0.0, amplitude = 0.1;
for (int i = 0; i < 7; i++) {
total += noise(n) * amplitude;
n = m * n;
amplitude *= 0.4;
}
return total;
}
// fragment shader
void fragment() {
vec2 res = 1.0 / SCREEN_PIXEL_SIZE;
vec2 p = FRAGCOORD.xy / res.xy; // changement
vec2 uv = p*vec2(res.x/res.y,1.0); // changement
float time = TIME * speed ;
float q = fbm(uv * cloudscale * 0.5);
//ridged noise shape
float r = 0.0;
uv *= cloudscale;
uv += q - time;
float weight = 0.8;
for (int i=0; i<8; i++){
r += abs(weight*noise( uv ));
uv = m*uv + time;
weight *= 0.7;
}
//noise shape
float f = 0.0;
uv = p*vec2(res.x/res.y,1.0); // changement
uv *= cloudscale;
uv += q - time;
weight = 0.7;
for (int i=0; i<8; i++){
f += weight*noise( uv );
uv = m*uv + time;
weight *= 0.6;
}
f *= r + f;
//noise colour
float c = 0.0;
time = TIME * speed * 2.0;
uv = p*vec2(res.x/res.y,1.0); // changement
uv *= cloudscale*2.0;
uv += q - time;
weight = 0.4;
for (int i=0; i<7; i++){
c += weight*noise( uv );
uv = m*uv + time;
weight *= 0.6;
}
//noise ridge colour
float c1 = 0.0;
time = TIME * speed * 3.0;
uv = p*vec2(res.x/res.y,1.0);
uv *= cloudscale*3.0;
uv += q - time;
weight = 0.4;
for (int i=0; i<7; i++){
c1 += abs(weight*noise( uv ));
uv = m*uv + time;
weight *= 0.6;
}
c += c1;
vec3 skycolour = mix(skycolour2, skycolour1, p.y);
vec3 cloudcolour = vec3(1.1, 1.1, 0.9) * clamp((clouddark + cloudlight*c), 0.0, 1.0);
f = cloudcover + cloudalpha*f*r;
vec3 result = mix(skycolour, clamp(skytint * skycolour + cloudcolour, 0.0, 1.0), clamp(f + c, 0.0, 1.0));
COLOR.rgb = vec3(result);
}
"
[sub_resource type="ShaderMaterial" id=11]
shader = SubResource( 10 )
shader_param/cloudscale = 1.1
shader_param/speed = 0.01
shader_param/clouddark = 0.5
shader_param/cloudlight = 0.3
shader_param/cloudcover = 0.15
shader_param/cloudalpha = 2.0
shader_param/skytint = 1.0
shader_param/skycolour1 = Vector3( 0.2, 0.4, 0.6 )
shader_param/skycolour2 = Vector3( 0.4, 0.7, 1 )
shader_param/m = Transform2D( 1.6, -1.2, 1.2, 1.6, 0, 0 )
[sub_resource type="AtlasTexture" id=4]
atlas = ExtResource( 4 )
region = Rect2( 0, 0, 16, 16 )
[sub_resource type="AtlasTexture" id=5]
atlas = ExtResource( 4 )
region = Rect2( 16, 0, 16, 16 )
[sub_resource type="SpriteFrames" id=3]
animations = [ {
"frames": [ SubResource( 4 ), SubResource( 5 ) ],
"loop": true,
"name": "down",
"speed": 1.0
} ]
[node name="Overlay" type="Node2D"]
script = ExtResource( 2 )
[node name="Bluescreen" type="ColorRect" parent="."]
[node name="Panel" type="Panel" parent="."]
material = SubResource( 9 )
margin_right = 1920.0
margin_bottom = 1080.0
color = Color( 0, 0, 1, 1 )
margin_bottom = 1079.0
[node name="Node" parent="." instance=ExtResource( 1 )]
margin_left = 1284.0
margin_right = 1601.0
[node name="Panel2" type="Panel" parent="."]
modulate = Color( 1, 1, 1, 0.376471 )
material = SubResource( 11 )
margin_right = 1920.0
margin_bottom = 1079.0
[node name="Chatbox" parent="." instance=ExtResource( 1 )]
margin_left = 1278.0
margin_right = 1599.0
margin_bottom = 259.0
rect_scale = Vector2( 2, 2 )
[node name="Facecam" type="ColorRect" parent="."]
visible = false
margin_left = 1280.0
margin_top = 518.0
margin_right = 1920.0
margin_bottom = 1079.0
color = Color( 0, 1, 0.835294, 1 )
[node name="Screen" type="ColorRect" parent="."]
margin_right = 1280.0
margin_bottom = 720.0
rect_min_size = Vector2( 720, 0 )
color = Color( 1, 0, 0, 1 )
color = Color( 0, 0, 1, 1 )
[node name="HBoxContainer" type="HBoxContainer" parent="."]
margin_left = 18.0
margin_top = 720.0
margin_right = 1281.0
margin_bottom = 1080.0
rect_min_size = Vector2( 720, 0 )
[node name="VBoxContainer2" type="VBoxContainer" parent="HBoxContainer"]
visible = false
margin_bottom = 360.0
[node name="ColorRect" type="ColorRect" parent="HBoxContainer/VBoxContainer2"]
margin_right = 340.0
margin_bottom = 360.0
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer"]
margin_right = 316.0
margin_bottom = 360.0
[node name="Stream" type="Label" parent="HBoxContainer/VBoxContainer"]
margin_right = 316.0
margin_bottom = 39.0
theme = ExtResource( 3 )
text = "twitch: princessxen"
[node name="Twitter" type="Label" parent="HBoxContainer/VBoxContainer"]
margin_top = 43.0
margin_right = 316.0
margin_bottom = 82.0
theme = ExtResource( 3 )
text = "twitter: @theprincessxena"
[node name="Website" type="Label" parent="HBoxContainer/VBoxContainer"]
margin_top = 86.0
margin_right = 316.0
margin_bottom = 125.0
theme = ExtResource( 3 )
text = "https://xeiaso.net"
[node name="Patrone" type="Label" parent="HBoxContainer/VBoxContainer"]
margin_top = 129.0
margin_right = 316.0
margin_bottom = 168.0
theme = ExtResource( 3 )
text = "https://patreon.com/cadey"
[node name="Mara" type="AnimatedSprite" parent="HBoxContainer/VBoxContainer"]
material = ExtResource( 5 )
position = Vector2( 165, 263 )
scale = Vector2( 10, 10 )
frames = SubResource( 3 )
animation = "down"
frame = 1
playing = true

View File

@ -0,0 +1,42 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=2]
[sub_resource type="Shader" id=8]
code = "shader_type canvas_item;
uniform vec2 resolution = vec2(64.0, 64.0);
uniform float noise : hint_range(0.0, 1.0) = 0.2;
uniform float distort : hint_range(0.0, 1.0) = 0.06;
uniform float offset : hint_range(0.0, 1.0) = 0.0;
vec2 random(vec2 uv){
uv = vec2(dot(uv, vec2(127.1,311.7)), dot(uv, vec2(269.5,183.3)));
return -1.0 + 2.0 * fract(sin(uv) * 43758.5453123);
}
float between(float lower, float upper, float value) {
return step(lower, value) * step(value, upper);
}
void fragment()
{
vec2 uv = UV;
// Distort
float oy = offset / 10.;
float dist = distort * clamp(offset / 2., 0.25, 0.75);
uv.x += dist * between(0.7, 0.8, fract(offset + TIME/4.)) * between(0.4, 0.41 + oy, uv.y);
uv.x -= dist * between(0.1, 0.15, fract(offset + TIME/3.)) * between(0.7, 0.71 + oy, uv.y);
uv.x += dist * between(0.15, 0.25, fract(offset + TIME/3.)) * between(0.6, 0.61 + oy, uv.y);
uv.x += dist * between(0.5, 0.55, fract(offset + TIME/7.)) * between(0.5, 0.73 - oy, uv.y);
// Add noise
vec4 pxl = texture(TEXTURE, uv);
pxl.rgb += clamp(random((ceil(UV * resolution) / resolution) + trunc(fract(TIME) * 4.)).x, 0.0, 1.0) * noise;
// Shade
COLOR = pxl;
}"
[resource]
shader = SubResource( 8 )
shader_param/resolution = Vector2( 64, 64 )
shader_param/noise = 0.2
shader_param/distort = 0.06
shader_param/offset = 0.0

14
scenes/Overlay Text.tres Normal file
View File

@ -0,0 +1,14 @@
[gd_resource type="Theme" load_steps=3 format=2]
[ext_resource path="res://assets/cecep-s-handwriting-2-font/CecepsHandwriting-vmpKZ.ttf" type="DynamicFontData" id=1]
[sub_resource type="DynamicFont" id=1]
size = 32
outline_size = 4
outline_color = Color( 0, 0, 0, 1 )
extra_spacing_top = 2
extra_spacing_bottom = 2
font_data = ExtResource( 1 )
[resource]
default_font = SubResource( 1 )

BIN
sprites/Mara.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

35
sprites/Mara.png.import Normal file
View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/Mara.png-cfb9930f0e893d4ce21d71224438979f.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/Mara.png"
dest_files=[ "res://.import/Mara.png-cfb9930f0e893d4ce21d71224438979f.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0