summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Assets/Shaders/crt_shader.gdshader73
-rw-r--r--Assets/Shaders/crt_shader.tres7
-rw-r--r--Assets/Styles/DefaultFlatPanel.tres4
-rw-r--r--Assets/Styles/DefaultInvertedFlatPanel.tres2
-rw-r--r--Assets/Themes/Default.tres13
-rw-r--r--Scenes/Game/Game.tscn7
-rw-r--r--Scenes/MonitorEffect.tscn13
7 files changed, 64 insertions, 55 deletions
diff --git a/Assets/Shaders/crt_shader.gdshader b/Assets/Shaders/crt_shader.gdshader
index 5c698a6..456262a 100644
--- a/Assets/Shaders/crt_shader.gdshader
+++ b/Assets/Shaders/crt_shader.gdshader
@@ -1,30 +1,37 @@
-/*
-Godot 3 2D CRT Shader.
-A 2D shader for Godot 3 simulating a CRT..
-Author: hiulit
-Repository: https://github.com/hiulit/Godot-3-2D-CRT-Shader
-Issues: https://github.com/hiulit/Godot-3-2D-CRT-Shader/issues
-License: MIT https://github.com/hiulit/Godot-3-2D-CRT-Shader/blob/master/LICENSE
-*/
-
shader_type canvas_item;
+uniform bool bloom_enabled = true;
+uniform float bloom_amount: hint_range(0.0, 0.5, 0.01) = 0.5;
+uniform float bloom_radius: hint_range(0.0, 10.0, 0.1) = 2.0;
uniform bool chromatic_abberation_enabled = true;
uniform float chromatic_abberation_amount : hint_range(0.0, 10.0, 0.01) = 4.0;
-uniform bool vignette_enabled = true;
-uniform float vignette_opacity : hint_range(0.0, 1.0, 0.01) = 0.2;
-
uniform bool scan_lines_enabled = true;
uniform float scan_lines_count : hint_range(0, 180, 1) = 180;
uniform float scan_lines_opacity : hint_range(0.0, 1.0, 0.01) = 1.0;
+uniform bool vignette_enabled = true;
+uniform float vignette_opacity : hint_range(0.0, 1.0, 0.01) = 0.2;
+
uniform float boost_intensity : hint_range(1.0, 2.0, 0.01) = 1.2;
const float PI = 3.14159265359;
/**
+ * Apply bloom.
+ */
+vec3 bloom(sampler2D tex, vec2 uv, vec2 pixel_size)
+{
+ vec3 glow0 = max(textureLod(tex, uv + vec2(-pixel_size.x, 0), bloom_radius).rgb - bloom_amount, vec3(0.0));
+ vec3 glow1 = max(textureLod(tex, uv + vec2(pixel_size.x, 0), bloom_radius).rgb - bloom_amount, vec3(0.0));
+ vec3 glow2 = max(textureLod(tex, uv + vec2(0, -pixel_size.y), bloom_radius).rgb - bloom_amount, vec3(0.0));
+ vec3 glow3 = max(textureLod(tex, uv + vec2(0, pixel_size.y), bloom_radius).rgb - bloom_amount, vec3(0.0));
+
+ return 0.25 * (glow0 + glow1 + glow2 + glow3);
+}
+
+/**
* Apply chromatic abberation the the given texture.
*/
vec3 chromatic_abberation(sampler2D tex, vec2 uv, vec2 screen_size) {
@@ -40,15 +47,6 @@ vec3 chromatic_abberation(sampler2D tex, vec2 uv, vec2 screen_size) {
}
/**
- * Apply a vignette.
- */
-vec3 vignette(vec3 color, vec2 uv, vec2 screen_size) {
- float vignette = uv.x * uv.y * (1.0 - uv.x) * (1.0 - uv.y);
- vignette = clamp(pow((screen_size.x / 4.0) * vignette, vignette_opacity), 0.0, 1.0);
- return color * vignette;
-}
-
-/**
* Apply scan lines
*/
vec3 scan_lines(vec3 color, vec2 uv) {
@@ -57,27 +55,26 @@ vec3 scan_lines(vec3 color, vec2 uv) {
return color * scan_line * boost_intensity;
}
+/**
+ * Apply a vignette.
+ */
+vec3 vignette(vec3 color, vec2 uv, vec2 screen_size) {
+ float vignette = uv.x * uv.y * (1.0 - uv.x) * (1.0 - uv.y);
+ vignette = clamp(pow((screen_size.x / 4.0) * vignette, vignette_opacity), 0.0, 1.0);
+ return color * vignette;
+}
+
void fragment() {
vec3 color = texture(SCREEN_TEXTURE, SCREEN_UV).rgb;
vec2 screen_size = 1.0 / SCREEN_PIXEL_SIZE;
- color = mix(
- color,
- chromatic_abberation(SCREEN_TEXTURE, SCREEN_UV, screen_size),
- float(chromatic_abberation_enabled)
- );
-
- color = mix(
- color,
- vignette(color, SCREEN_UV, screen_size),
- float(vignette_enabled)
- );
+ vec3 bloom_color = bloom(SCREEN_TEXTURE, SCREEN_UV, SCREEN_PIXEL_SIZE);
+ vec3 scan_lines_color = scan_lines(color, SCREEN_UV);
- color = mix(
- color,
- scan_lines(color, SCREEN_UV),
- float(scan_lines_enabled)
- );
+ color = mix(color, chromatic_abberation(SCREEN_TEXTURE, SCREEN_UV, screen_size), float(chromatic_abberation_enabled));
+ color = mix(color, bloom_color, 0.5 * float(bloom_enabled));
+ color = color + scan_lines(color, SCREEN_UV) * float(scan_lines_enabled);
+ color = color * vignette(color, SCREEN_UV, screen_size);
COLOR = vec4(color, 1.0);
-} \ No newline at end of file
+}
diff --git a/Assets/Shaders/crt_shader.tres b/Assets/Shaders/crt_shader.tres
index cf5c247..4a7bb37 100644
--- a/Assets/Shaders/crt_shader.tres
+++ b/Assets/Shaders/crt_shader.tres
@@ -4,11 +4,14 @@
[resource]
shader = ExtResource( 1 )
+shader_param/bloom_enabled = true
+shader_param/bloom_amount = 0.5
+shader_param/bloom_radius = 2.0
shader_param/chromatic_abberation_enabled = true
shader_param/chromatic_abberation_amount = 4.0
-shader_param/vignette_enabled = true
-shader_param/vignette_opacity = 0.1
shader_param/scan_lines_enabled = true
shader_param/scan_lines_count = 180.0
shader_param/scan_lines_opacity = 1.0
+shader_param/vignette_enabled = true
+shader_param/vignette_opacity = 0.1
shader_param/boost_intensity = 1.3
diff --git a/Assets/Styles/DefaultFlatPanel.tres b/Assets/Styles/DefaultFlatPanel.tres
index 567307c..4316da4 100644
--- a/Assets/Styles/DefaultFlatPanel.tres
+++ b/Assets/Styles/DefaultFlatPanel.tres
@@ -1,4 +1,6 @@
[gd_resource type="StyleBoxFlat" format=2]
[resource]
-bg_color = Color( 0.1, 0.1, 0.1, 1 )
+content_margin_left = 8.0
+content_margin_right = 8.0
+bg_color = Color( 0.2, 0.2, 0.2, 1 )
diff --git a/Assets/Styles/DefaultInvertedFlatPanel.tres b/Assets/Styles/DefaultInvertedFlatPanel.tres
index 7c678fe..c27e9e8 100644
--- a/Assets/Styles/DefaultInvertedFlatPanel.tres
+++ b/Assets/Styles/DefaultInvertedFlatPanel.tres
@@ -1,4 +1,6 @@
[gd_resource type="StyleBoxFlat" format=2]
[resource]
+content_margin_left = 8.0
+content_margin_right = 8.0
bg_color = Color( 0.243137, 0.811765, 0.235294, 1 )
diff --git a/Assets/Themes/Default.tres b/Assets/Themes/Default.tres
index c56e746..6b7a217 100644
--- a/Assets/Themes/Default.tres
+++ b/Assets/Themes/Default.tres
@@ -16,14 +16,17 @@
[sub_resource type="StyleBoxEmpty" id=6]
[resource]
-InvertedLabel/colors/font_color = Color( 0, 0, 0, 1 )
+InvertedLabel/base_type = "Label"
+InvertedLabel/colors/font_color = Color( 0.2, 0.2, 0.2, 1 )
+InvertedPanelContainer/base_type = "PanelContainer"
InvertedPanelContainer/styles/panel = ExtResource( 1 )
-InvertedRichTextLabel/colors/default_color = Color( 0, 0, 0, 1 )
+InvertedRichTextLabel/base_type = "RichTextLabel"
+InvertedRichTextLabel/colors/default_color = Color( 0.2, 0.2, 0.2, 1 )
Label/colors/font_color = Color( 0.243137, 0.811765, 0.235294, 1 )
Label/styles/normal = SubResource( 3 )
-LineEdit/colors/cursor_color = Color( 0, 0, 0, 1 )
-LineEdit/colors/font_color = Color( 0, 0, 0, 1 )
-LineEdit/colors/font_color_uneditable = Color( 0.470588, 0.470588, 0.470588, 1 )
+LineEdit/colors/cursor_color = Color( 0.2, 0.2, 0.2, 1 )
+LineEdit/colors/font_color = Color( 0.2, 0.2, 0.2, 1 )
+LineEdit/colors/font_color_uneditable = Color( 0.2, 0.2, 0.2, 1 )
LineEdit/styles/focus = SubResource( 7 )
LineEdit/styles/normal = SubResource( 1 )
LineEdit/styles/read_only = SubResource( 2 )
diff --git a/Scenes/Game/Game.tscn b/Scenes/Game/Game.tscn
index 9762066..6388345 100644
--- a/Scenes/Game/Game.tscn
+++ b/Scenes/Game/Game.tscn
@@ -14,16 +14,15 @@ script = ExtResource( 4 )
[node name="TopBar" parent="Screen/ScreenContainer" index="0"]
margin_right = 800.0
-margin_bottom = 26.0
+margin_bottom = 27.0
[node name="StatusArea" parent="Screen/ScreenContainer/TopBar" index="0" instance=ExtResource( 5 )]
unique_name_in_owner = true
margin_right = 800.0
-margin_bottom = 26.0
Title = "Adventure Title"
[node name="Content" parent="Screen/ScreenContainer" index="1"]
-margin_top = 26.0
+margin_top = 27.0
margin_right = 800.0
margin_bottom = 575.0
@@ -32,7 +31,7 @@ unique_name_in_owner = true
anchor_right = 0.0
anchor_bottom = 0.0
margin_right = 800.0
-margin_bottom = 549.0
+margin_bottom = 548.0
OutputBlockScene = ExtResource( 6 )
[node name="BottomBar" parent="Screen/ScreenContainer" index="2"]
diff --git a/Scenes/MonitorEffect.tscn b/Scenes/MonitorEffect.tscn
index d1254e0..efc15b8 100644
--- a/Scenes/MonitorEffect.tscn
+++ b/Scenes/MonitorEffect.tscn
@@ -4,13 +4,16 @@
[sub_resource type="ShaderMaterial" id=1]
shader = ExtResource( 1 )
+shader_param/bloom_enabled = true
+shader_param/bloom_amount = 0.3
+shader_param/bloom_radius = 2.0
shader_param/chromatic_abberation_enabled = true
-shader_param/chromatic_abberation_amount = 3.0
-shader_param/vignette_enabled = true
-shader_param/vignette_opacity = 0.05
+shader_param/chromatic_abberation_amount = 2.0
shader_param/scan_lines_enabled = true
-shader_param/scan_lines_count = 120.0
-shader_param/scan_lines_opacity = 0.5
+shader_param/scan_lines_count = 180.0
+shader_param/scan_lines_opacity = 0.85
+shader_param/vignette_enabled = true
+shader_param/vignette_opacity = 0.33
shader_param/boost_intensity = 1.3
[node name="MonitorEffect" type="CanvasLayer"]