mirror of
https://github.com/marinho/godot-visual-effects.git
synced 2025-09-19 04:06:15 +08:00
Simpler menu in camera effects
This commit is contained in:
9
camera-effects/blur.gdshader
Normal file
9
camera-effects/blur.gdshader
Normal file
@ -0,0 +1,9 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
uniform float lod : hint_range(0.0, 5.0) = 0.0;
|
||||
uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear;
|
||||
|
||||
void fragment() {
|
||||
vec4 col = texture(SCREEN_TEXTURE, UV, lod);
|
||||
COLOR = col;
|
||||
}
|
@ -3,24 +3,11 @@ extends Node3D
|
||||
@onready var labelVisibleEffects = %LabelVisibleEffects
|
||||
|
||||
@onready var buttonRotatingCamera = %ButtonRotatingCamera
|
||||
@onready var buttonChromaticAberration = %ButtonChromaticAberration
|
||||
@onready var buttonPixelate = %ButtonPixelate
|
||||
@onready var buttonVignette = %ButtonVignette
|
||||
@onready var buttonSepia = %ButtonSepia
|
||||
@onready var buttonGrainNoise = %ButtonGrainNoise
|
||||
@onready var buttonHexagonMosaic = %ButtonHexagonMosaic
|
||||
@onready var buttonCameraShake = %ButtonCameraShake
|
||||
|
||||
@onready var effectChromaticAberration = $"CanvasLayer Effects/Chromatic Aberration"
|
||||
@onready var effectPixelate = $"CanvasLayer Effects/Pixelate"
|
||||
@onready var effectVignette = $"CanvasLayer Effects/Vignette"
|
||||
@onready var effectSepia = $"CanvasLayer Effects/Sepia"
|
||||
@onready var effectGrainNoise = $"CanvasLayer Effects/Grain Noise"
|
||||
@onready var effectHexagonMosaic = $"CanvasLayer Effects/Hexagon Mosaic"
|
||||
@onready var effectCameraShake = $"CanvasLayer Effects/Camera Shake"
|
||||
|
||||
@onready var animationPlayer = $AnimationPlayer
|
||||
@onready var sideBarMenu = $"CanvasLayer UI/SideBar/SideBar Menu"
|
||||
@onready var effectsContainer = %Effects
|
||||
|
||||
var cameraRotatingAnimationName = "camera_rotation"
|
||||
|
||||
@ -33,39 +20,17 @@ func _ready():
|
||||
func _process(delta):
|
||||
pass
|
||||
|
||||
func updateVisibleEffects(toggled_on):
|
||||
effectChromaticAberration.visible = buttonChromaticAberration.button_pressed
|
||||
effectPixelate.visible = buttonPixelate.button_pressed
|
||||
effectVignette.visible = buttonVignette.button_pressed
|
||||
effectSepia.visible = buttonSepia.button_pressed
|
||||
effectGrainNoise.visible = buttonGrainNoise.button_pressed
|
||||
effectHexagonMosaic.visible = buttonHexagonMosaic.button_pressed
|
||||
effectCameraShake.visible = buttonCameraShake.button_pressed
|
||||
updateEffectsLabel()
|
||||
func updateVisibleEffects(toggled_on = true):
|
||||
var pressedButton = buttonPixelate.button_group.get_pressed_button()
|
||||
var effect = get_node_or_null("Effects/" + pressedButton.text.strip_edges())
|
||||
|
||||
func disableAllEffects():
|
||||
buttonChromaticAberration.button_pressed = false
|
||||
buttonPixelate.button_pressed = false
|
||||
buttonVignette.button_pressed = false
|
||||
buttonSepia.button_pressed = false
|
||||
buttonGrainNoise.button_pressed = false
|
||||
buttonHexagonMosaic.button_pressed = false
|
||||
buttonCameraShake.button_pressed = false
|
||||
updateEffectsLabel()
|
||||
for child in effectsContainer.get_children():
|
||||
if child == effect:
|
||||
child.show()
|
||||
else:
|
||||
child.hide()
|
||||
|
||||
|
||||
func updateEffectsLabel():
|
||||
var textParts = [
|
||||
"Chromatic Aberration" if buttonChromaticAberration.button_pressed else "",
|
||||
"Pixelate" if buttonPixelate.button_pressed else "",
|
||||
"Vignette" if buttonVignette.button_pressed else "",
|
||||
"Sepia" if buttonSepia.button_pressed else "",
|
||||
"Grain Noise" if buttonGrainNoise.button_pressed else "",
|
||||
"Hexagon Mosaic" if buttonHexagonMosaic.button_pressed else "",
|
||||
"Camera Shake" if buttonCameraShake.button_pressed else "",
|
||||
]
|
||||
var text = " ".join(textParts)
|
||||
labelVisibleEffects.text = "[center]" + text
|
||||
labelVisibleEffects.text = "[center]" + pressedButton.text
|
||||
|
||||
|
||||
func toggleSideBar():
|
||||
|
3
camera-effects/camera_button_group.tres
Normal file
3
camera-effects/camera_button_group.tres
Normal file
@ -0,0 +1,3 @@
|
||||
[gd_resource type="ButtonGroup" format=3 uid="uid://2yjsq45hqgit"]
|
||||
|
||||
[resource]
|
@ -3,10 +3,10 @@ shader_type canvas_item;
|
||||
// inspired by: https://www.youtube.com/watch?v=aVzY6n3e19A
|
||||
|
||||
uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear;
|
||||
uniform float ca_strength = 20.0;
|
||||
uniform float strength = 20.0;
|
||||
|
||||
void fragment() {
|
||||
vec2 ca_offset = vec2(ca_strength, 0.0) * SCREEN_PIXEL_SIZE;
|
||||
vec2 ca_offset = vec2(strength, 0.0) * SCREEN_PIXEL_SIZE;
|
||||
float red = texture(SCREEN_TEXTURE, SCREEN_UV - ca_offset).r;
|
||||
float green = texture(SCREEN_TEXTURE, SCREEN_UV).g;
|
||||
float blue = texture(SCREEN_TEXTURE, SCREEN_UV + ca_offset).b;
|
||||
|
@ -1,6 +1,7 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear;
|
||||
|
||||
void fragment() {
|
||||
// Readbackground and foreground images.
|
||||
vec4 col = texture(SCREEN_TEXTURE, UV);
|
||||
|
Reference in New Issue
Block a user