From 0c684417f59719a7715d7a54c9b5f9534f3b6a70 Mon Sep 17 00:00:00 2001 From: R34nd0 Date: Sat, 13 Jan 2024 17:23:49 +0500 Subject: [PATCH] Rewritten nebula shader --- scenes/MainMenu.tscn | 2 +- scenes/Space.tscn | 42 +++++++++++++----------- scripts/nebula.gd | 6 ++++ shaders/nebula.gdshader | 12 +++++++ testicles.tres => shaders/testicles.tres | 1 + 5 files changed, 42 insertions(+), 21 deletions(-) create mode 100644 scripts/nebula.gd create mode 100644 shaders/nebula.gdshader rename testicles.tres => shaders/testicles.tres (95%) diff --git a/scenes/MainMenu.tscn b/scenes/MainMenu.tscn index a56ca7b..7089c40 100644 --- a/scenes/MainMenu.tscn +++ b/scenes/MainMenu.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=9 format=3 uid="uid://s14kegpsyost"] [ext_resource type="Script" path="res://scripts/menu/MainMenu.gd" id="1_2wax0"] -[ext_resource type="Shader" uid="uid://f6lhks6rp5jw" path="res://testicles.tres" id="1_on8wy"] +[ext_resource type="Shader" uid="uid://f6lhks6rp5jw" path="res://shaders/testicles.tres" id="1_on8wy"] [ext_resource type="Gradient" uid="uid://c6bcjydbwm5id" path="res://scenes/SpaceGradient.tres" id="2_7racd"] [ext_resource type="PackedScene" uid="uid://dpggye27ln436" path="res://scenes/StarsController.tscn" id="4_g7254"] [ext_resource type="Script" path="res://scripts/menu/MainMenuButton.gd" id="5_q6x10"] diff --git a/scenes/Space.tscn b/scenes/Space.tscn index 519634c..572f7d8 100644 --- a/scenes/Space.tscn +++ b/scenes/Space.tscn @@ -7,23 +7,21 @@ [ext_resource type="PackedScene" uid="uid://dbtrc26016xov" path="res://scenes/Base.tscn" id="5_bjt5p"] [ext_resource type="PackedScene" uid="uid://523dme3h6d6c" path="res://scenes/npcships/NPCShipDefault.tscn" id="6_67746"] [ext_resource type="Script" path="res://scripts/misc/FactionRecoloring.gd" id="7_w8i61"] -[ext_resource type="Shader" uid="uid://f6lhks6rp5jw" path="res://testicles.tres" id="9_h8ucp"] -[ext_resource type="Gradient" uid="uid://c6bcjydbwm5id" path="res://scenes/SpaceGradient.tres" id="10_ijadn"] +[ext_resource type="Shader" path="res://shaders/nebula.gdshader" id="8_3swn8"] +[ext_resource type="Script" path="res://scripts/nebula.gd" id="9_utirt"] -[sub_resource type="FastNoiseLite" id="FastNoiseLite_tgq2a"] -noise_type = 3 -frequency = 0.001 +[sub_resource type="FastNoiseLite" id="FastNoiseLite_n2xxx"] -[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_43qve"] -width = 4096 -height = 4096 +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_lcrcg"] seamless = true -color_ramp = ExtResource("10_ijadn") -noise = SubResource("FastNoiseLite_tgq2a") +noise = SubResource("FastNoiseLite_n2xxx") [sub_resource type="ShaderMaterial" id="ShaderMaterial_s2aaw"] -shader = ExtResource("9_h8ucp") -shader_parameter/penis = SubResource("NoiseTexture2D_43qve") +shader = ExtResource("8_3swn8") +shader_parameter/divisor = 10000.0 +shader_parameter/offset = Vector2(0, 0) +shader_parameter/nebula_color = Color(0.0666667, 0.0666667, 0.188235, 1) +shader_parameter/noise_texture = SubResource("NoiseTexture2D_lcrcg") [node name="Space" type="Node2D"] process_mode = 3 @@ -78,14 +76,6 @@ position = Vector2(1877, -168) [node name="DefaultShip12" parent="EnemyFaction" instance=ExtResource("6_67746")] position = Vector2(1212, 518) -[node name="ColorRect" type="ColorRect" parent="."] -z_index = -20 -material = SubResource("ShaderMaterial_s2aaw") -offset_left = -4096.0 -offset_top = -4096.0 -offset_right = 4096.0 -offset_bottom = 4096.0 - [node name="Bases" type="Node2D" parent="."] script = ExtResource("7_w8i61") @@ -107,3 +97,15 @@ type = 3 position = Vector2(386, 432) rotation = -2.31102 type = 2 + +[node name="Background" type="CanvasLayer" parent="."] +layer = -1 + +[node name="Nebula" type="ColorRect" parent="Background"] +material = SubResource("ShaderMaterial_s2aaw") +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("9_utirt") diff --git a/scripts/nebula.gd b/scripts/nebula.gd new file mode 100644 index 0000000..ab6efca --- /dev/null +++ b/scripts/nebula.gd @@ -0,0 +1,6 @@ +extends ColorRect + +@onready var ship = get_tree().current_scene.get_node("MainShip") + +func _physics_process(_delta): + material.set_shader_parameter("offset",ship.global_position) diff --git a/shaders/nebula.gdshader b/shaders/nebula.gdshader new file mode 100644 index 0000000..d7a7194 --- /dev/null +++ b/shaders/nebula.gdshader @@ -0,0 +1,12 @@ +shader_type canvas_item; + +uniform sampler2D noise_texture; +uniform float divisor = 10.0; +uniform vec2 offset; +uniform vec3 nebula_color : source_color; + +void fragment() { + float color_amount = texture(noise_texture,fract(UV+offset/divisor)).r; + COLOR = vec4(mix(vec3(0),nebula_color,color_amount),1); +} + diff --git a/testicles.tres b/shaders/testicles.tres similarity index 95% rename from testicles.tres rename to shaders/testicles.tres index d2dd041..731b6b5 100644 --- a/testicles.tres +++ b/shaders/testicles.tres @@ -26,6 +26,7 @@ void fragment() { } " +graph_offset = Vector2(501.389, 326.805) mode = 1 flags/light_only = false nodes/fragment/0/position = Vector2(1860, 520)