diff options
| author | Sophia Pearson <codergal89@gmail.com> | 2022-09-06 13:09:16 +0200 |
|---|---|---|
| committer | Sophia Pearson <codergal89@gmail.com> | 2022-09-06 13:09:16 +0200 |
| commit | baed6725f602da7112b6218bba259649cd6cbc7a (patch) | |
| tree | ab61f18bf146e20fb6c6756bb9016edb547cd5fa | |
| parent | e395080aae6c4d3739b0cba4a3aa9e380d9e68a1 (diff) | |
| download | texty-baed6725f602da7112b6218bba259649cd6cbc7a.tar.xz texty-baed6725f602da7112b6218bba259649cd6cbc7a.zip | |
themeing: improve retro look
| -rw-r--r-- | Assets/Shaders/crt_shader.gdshader | 73 | ||||
| -rw-r--r-- | Assets/Shaders/crt_shader.tres | 7 | ||||
| -rw-r--r-- | Assets/Styles/DefaultFlatPanel.tres | 4 | ||||
| -rw-r--r-- | Assets/Styles/DefaultInvertedFlatPanel.tres | 2 | ||||
| -rw-r--r-- | Assets/Themes/Default.tres | 13 | ||||
| -rw-r--r-- | Scenes/Game/Game.tscn | 7 | ||||
| -rw-r--r-- | Scenes/MonitorEffect.tscn | 13 |
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"] |
