diff --git a/GameObjects/Latern/Latern.tscn b/GameObjects/Latern/Latern.tscn index 0d9df6e..69e2c03 100644 --- a/GameObjects/Latern/Latern.tscn +++ b/GameObjects/Latern/Latern.tscn @@ -22,7 +22,7 @@ rings = 2 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6mbug"] shading_mode = 0 -albedo_color = Color(1.6287986, 1.3438833, 0.4077328, 1) +albedo_color = Color(2.454227, 2.0297987, 0.6342527, 1) [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_g5ygy"] radius = 0.334 diff --git a/Main/Main.tscn b/Main/Main.tscn index 00c5376..e10644b 100644 --- a/Main/Main.tscn +++ b/Main/Main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=679 format=4 uid="uid://b5l8s4mmexi0m"] +[gd_scene load_steps=677 format=4 uid="uid://b5l8s4mmexi0m"] [ext_resource type="Script" uid="uid://dedtmhyfax8p0" path="res://addons/rokojori_action_library/Runtime/App/Main.cs" id="1_rii6w"] [ext_resource type="Script" uid="uid://dyf6ee3ov3ran" path="res://addons/rokojori_action_library/Runtime/Actions/OnReady.cs" id="2_bdfmq"] @@ -141,40 +141,47 @@ [ext_resource type="Texture2D" uid="uid://d3a6jx4b5te68" path="res://assets/rokojori-houses/beet.png" id="56_mql5u"] [ext_resource type="Script" uid="uid://bwq7e6cx2oy8n" path="res://addons/rokojori_action_library/Runtime/Interactions/CharacterController/Conditions/CharacterIsMoving.cs" id="56_p5agv"] [ext_resource type="Material" uid="uid://b5fpd1257bng8" path="res://UI/Map/Map Buildings Secondary Circle.tres" id="56_yk3hl"] +[ext_resource type="Script" uid="uid://chqp2otobal7a" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/CompositorEffectLayerSlot.cs" id="63_u533a"] [ext_resource type="Resource" uid="uid://dgxeibp77r1wy" path="res://addons/rokojori_action_library/Runtime/Cameras/EditorCamera/Inputs/MouseEditorCamera Default Inputs.tres" id="64_u7p5w"] [ext_resource type="PackedScene" uid="uid://bxkp71wpnfu0x" path="res://UI/Collectables/Collectable Label.tscn" id="65_nlcvw"] [ext_resource type="Script" uid="uid://cjfxcl3cdhnku" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/LightnessBasedAdjustment/LightnessBasedAdjustmentEffect.cs" id="65_s46u1"] -[ext_resource type="Script" uid="uid://wl1p78fs5sos" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/UnsharpMasking/UnsharpMaskingEffect.cs" id="66_4l6me"] -[ext_resource type="Script" uid="uid://b2oxy6ln560ys" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/ColorQuantizer/ColorQuantizerEffect.cs" id="66_qiqbh"] -[ext_resource type="Script" uid="uid://cidk0x7sb1pxl" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/Distortion/NoiseDistortion/NoiseDistortionEffect.cs" id="67_hwk2e"] -[ext_resource type="Script" uid="uid://bjxayoleund83" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/TemporalSmearSimple/TemporalSmearSimpleEffect.cs" id="68_4l6me"] +[ext_resource type="Resource" uid="uid://bwhnq7w0tpgv" path="res://VFX/Action FX Compositor Effect Layer.tres" id="68_762km"] [ext_resource type="PackedScene" uid="uid://bvffeq7sqvrwk" path="res://assets/KayKit_DungeonRemastered_1.1_FREE/Assets/gltf/table_long.gltf" id="68_pld03"] -[ext_resource type="Script" uid="uid://dq0uf1bqoefv" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/RadialBlur2/RadialBlur2.cs" id="69_swf5v"] -[ext_resource type="Script" uid="uid://cghyn18utdfl" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/ChromaticAberation/ChromaticAberation.cs" id="70_hwk2e"] [ext_resource type="Script" uid="uid://dj6f8ie4bmaim" path="res://addons/rokojori_action_library/Runtime/Actions/Conditional/ConditionalAction.cs" id="70_q0f75"] +[ext_resource type="Script" uid="uid://bgw3wuqxbwrb0" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/AntiAliasing/FXAA/FXAAEffect.cs" id="70_wi6eu"] [ext_resource type="Script" uid="uid://cwjgw33krmh11" path="res://addons/rokojori_action_library/Runtime/Time/Duration/BeatsDuration.cs" id="71_4wsps"] -[ext_resource type="Script" uid="uid://cqkrgyuerq50a" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/Distortion/EllispeDistortion/EllipseDistortionEffect.cs" id="72_5c7e3"] [ext_resource type="AudioStream" uid="uid://dltk1xw3s35qw" path="res://Audio/Sounds/Foot Steps/WinterTales - FootSteps.ogg" id="72_dis6l"] [ext_resource type="Resource" uid="uid://daivy2l77st5v" path="res://GameObjects/Collectable-Collisions.tres" id="72_jguvn"] -[ext_resource type="Script" uid="uid://dxnmlb5wobxtw" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/Distortion/ScanLines/ScanLinesEffect.cs" id="73_m1wsu"] +[ext_resource type="Script" uid="uid://pevgspwywsxi" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffects/HSLAdjustment/HSLAdjustmentEffect.cs" id="74_c5ng7"] [ext_resource type="Script" uid="uid://kodskdb1mcd4" path="res://addons/rokojori_action_library/Runtime/Interactions/CharacterController/CharacterMovements/TurnMovementType.cs" id="76_12vd0"] [ext_resource type="Resource" uid="uid://dfqc5ainuim21" path="res://Character/Player-Collector.tres" id="77_7drkg"] [ext_resource type="Resource" uid="uid://bkfi5scnncqqe" path="res://UI/Dialog/Dialog Hidden Styel.tres" id="77_dq7d0"] +[ext_resource type="Resource" uid="uid://c11wt1wu6ciyc" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Screen/Digital Compression.tres" id="77_jlp8b"] [ext_resource type="Script" uid="uid://rqs2m0u6yvvf" path="res://addons/rokojori_action_library/Runtime/UI/Nodes/UIText.cs" id="77_ubijs"] [ext_resource type="Script" uid="uid://c01nqtwmfostx" path="res://addons/rokojori_action_library/Runtime/GameObjects/Variables/Int/IntVariable.cs" id="77_xoywq"] [ext_resource type="Resource" uid="uid://d0k8ig2sum1fk" path="res://GameObjects/Present/Present-Collectable.tres" id="78_7drkg"] [ext_resource type="Script" uid="uid://bvj322mokkq63" path="res://addons/rokojori_action_library/Runtime/Localization/LocaleText.cs" id="78_dq7d0"] [ext_resource type="Script" uid="uid://cd0ikdsdhutn0" path="res://addons/rokojori_action_library/Runtime/Actions/RJLogMessage.cs" id="79_dj82f"] -[ext_resource type="Script" uid="uid://bvmdtshoesn5v" path="res://addons/rokojori_action_library/Runtime/Animation/Driver/FloatDriver.cs" id="79_why7y"] +[ext_resource type="Resource" uid="uid://c51155ys7wme8" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Screen/Analog Tube TV .tres" id="79_ka6hw"] [ext_resource type="Script" uid="uid://xnupkyu3042b" path="res://addons/rokojori_action_library/Runtime/Interactions/Collider.cs" id="80_3rj3l"] -[ext_resource type="Script" uid="uid://cqgobpug8btt3" path="res://addons/rokojori_action_library/Runtime/Animation/Driver/FloatDriverNodeTarget.cs" id="80_m1wsu"] +[ext_resource type="Resource" uid="uid://c5qouanne0mar" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Physical/Frozen Ice.tres" id="80_fqrsx"] [ext_resource type="Script" uid="uid://dxkqvnjuy7ntq" path="res://UI/DialogRegion.cs" id="80_s8vnk"] [ext_resource type="Resource" uid="uid://be5fa1myu3tqs" path="res://Character/Variables/Present-Class.tres" id="80_xkggh"] +[ext_resource type="Resource" uid="uid://dx1yhdxjvueve" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Physical/Impact Wave.tres" id="81_1er25"] [ext_resource type="Resource" uid="uid://bccw1e1ohmsrq" path="res://UI/Dialog/Dialog Open Style.tres" id="81_jgo2j"] [ext_resource type="Script" uid="uid://ctgt20fqo2wqg" path="res://Character/Variables/CollectItem.cs" id="82_nlcvw"] +[ext_resource type="Resource" uid="uid://dke01q2ndmvxe" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Glow/Blue Cinematic Bloom.tres" id="82_u533a"] [ext_resource type="Script" uid="uid://ccfk70dpt7r7r" path="res://addons/rokojori_action_library/Runtime/Interactions/Collecting/Collector.cs" id="83_3o18d"] +[ext_resource type="Resource" uid="uid://c63le61ap244y" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Glow/Red Cinematic Bloom.tres" id="83_762km"] +[ext_resource type="Resource" uid="uid://cxxb8xq3xpa6d" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Glow/Rainbow Star Glow.tres" id="84_c05wc"] +[ext_resource type="Resource" uid="uid://ciirupc5c1rvf" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Character/Drunken.tres" id="85_i46l2"] +[ext_resource type="Resource" uid="uid://cr7dvu2sqcidy" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Blur/Overlayed Bokeh Blur .tres" id="86_4545n"] +[ext_resource type="Resource" uid="uid://bupv437tvb5yf" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Screen/Old Film.tres" id="86_t5au6"] +[ext_resource type="Script" uid="uid://b2ik21q1iwjvo" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/CompositorEffectLayer.cs" id="87_btbfg"] +[ext_resource type="Script" uid="uid://cx5qcow1mmd11" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/CompositorEffectOwner.cs" id="87_m7r8b"] [ext_resource type="Texture2D" uid="uid://crn8xn3skwu1i" path="res://GameObjects/Present/present-thumbnail.png" id="87_ugo18"] [ext_resource type="Script" uid="uid://dxra6jao22it4" path="res://addons/rokojori_action_library/Runtime/Actions/ActionReference.cs" id="88_hq3bi"] +[ext_resource type="Script" uid="uid://dn7xg8cqdnolq" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/CompositorEffectLayout.cs" id="88_ixqtu"] [ext_resource type="Script" uid="uid://88u2lx0pssal" path="res://addons/rokojori_action_library/Runtime/Sensors/OnSensor.cs" id="88_nh6ww"] [ext_resource type="Shader" uid="uid://b1h1fpt7uuv1h" path="res://Character/Hoody Hood/FresnelGlow.gdshader" id="88_p8ds5"] [ext_resource type="Script" uid="uid://2gudnu1r4pjg" path="res://addons/rokojori_action_library/Runtime/Shading/Generators/Spatial/SpatialShaderGenerator.cs" id="89_5o8m6"] @@ -183,7 +190,9 @@ [ext_resource type="Script" uid="uid://b4yjsis2fh64c" path="res://addons/rokojori_action_library/Runtime/Actions/ActionList.cs" id="90_5p3uc"] [ext_resource type="Script" uid="uid://nfn3x4l7pcob" path="res://addons/rokojori_action_library/Runtime/Interactions/Collecting/OnCollected.cs" id="90_aiyui"] [ext_resource type="Script" uid="uid://cxev8s3qvg8sq" path="res://addons/rokojori_action_library/Runtime/Shading/Generators/Spatial/Albedo/AlbedoModule.cs" id="90_f6yaf"] +[ext_resource type="Resource" uid="uid://qr06s6jt1t6m" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Glow/Green Cinematic Flares.tres" id="90_i46l2"] [ext_resource type="Script" uid="uid://8a10in76h56n" path="res://addons/rokojori_action_library/Runtime/Shading/Generators/Spatial/Alpha/AlphaModule.cs" id="91_2jvpv"] +[ext_resource type="Resource" uid="uid://hs33m81dlips" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Glow/Yellow Cinematic Bloom.tres" id="91_4545n"] [ext_resource type="Script" uid="uid://b3ipr2fudbgyu" path="res://addons/rokojori_action_library/Runtime/Interactions/Collecting/CollectableTypeGroup.cs" id="91_dj82f"] [ext_resource type="Script" uid="uid://ceaglilesxsi4" path="res://addons/rokojori_action_library/Runtime/Actions/ActionSequence.cs" id="91_vgxo8"] [ext_resource type="Script" uid="uid://dpkfvftsk23we" path="res://addons/rokojori_action_library/Runtime/Shading/Generators/Spatial/Fading/Fresnel/FresnelFading.cs" id="92_f4eun"] @@ -193,6 +202,8 @@ [ext_resource type="Script" uid="uid://bqk5po80nylsk" path="res://addons/rokojori_action_library/Runtime/Shading/Generators/Spatial/Fading/FadingModule.cs" id="93_qrr03"] [ext_resource type="Script" uid="uid://drc5hdnwme7be" path="res://addons/rokojori_action_library/Runtime/Shading/Generators/Spatial/Geometry/GeometryModule.cs" id="94_xwk5p"] [ext_resource type="Script" uid="uid://yoc4tx8ahe6b" path="res://addons/rokojori_action_library/Runtime/Shading/Generators/Spatial/Masks/SpatialMasksModule.cs" id="95_hkpmc"] +[ext_resource type="Resource" uid="uid://d1uubsqnvu1qe" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorVFXPresets/Physical/Super Speed.tres" id="96_btbfg"] +[ext_resource type="Script" uid="uid://cebnf3dtch0oh" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/CompositorVFX.cs" id="96_m7r8b"] [ext_resource type="Script" uid="uid://n0gi67ntpq0y" path="res://addons/rokojori_action_library/Runtime/Shading/Generators/Spatial/Metallic/MetallicModule.cs" id="96_rdt7x"] [ext_resource type="Script" uid="uid://tl4qfoxysj06" path="res://addons/rokojori_action_library/Runtime/Shading/Generators/Spatial/NormalMap/NormalMapModule.cs" id="97_1dfxe"] [ext_resource type="Script" uid="uid://dnikyu81333q8" path="res://addons/rokojori_action_library/Runtime/Shading/Generators/Spatial/Occlusion/OcclusionModule.cs" id="98_aa6j0"] @@ -371,7 +382,7 @@ globalShaderProperties = [SubResource("Resource_23vqh"), SubResource("Resource_4 [sub_resource type="Resource" id="Resource_vwon7"] script = ExtResource("40_uqrk0") -seconds = 10.0 +seconds = 1.0 timeLine = ExtResource("11_sl01w") metadata/_custom_type_script = "uid://ddhwhwos5kkrm" @@ -462,6 +473,150 @@ metadata/_custom_type_script = "uid://10mh4s2cbrwu" script = ExtResource("18_dk6jw") key = 4194336 +[sub_resource type="Resource" id="Resource_762km"] +script = ExtResource("87_btbfg") +layerName = "Depth Effects" +metadata/_custom_type_script = "uid://b2ik21q1iwjvo" + +[sub_resource type="CompositorEffect" id="CompositorEffect_c05wc"] +resource_local_to_scene = false +resource_name = "" +enabled = false +effect_callback_type = 4 +needs_motion_vectors = false +needs_normal_roughness = false +script = ExtResource("63_u533a") +layer = SubResource("Resource_762km") +metadata/_custom_type_script = "uid://chqp2otobal7a" + +[sub_resource type="CompositorEffect" id="CompositorEffect_u533a"] +resource_local_to_scene = false +resource_name = "" +enabled = false +effect_callback_type = 1 +access_resolved_color = false +access_resolved_depth = false +needs_motion_vectors = false +needs_normal_roughness = false +script = ExtResource("23_rpmi0") +effectStrength = 3.0 +rimOffsetX = 0.0 +rimOffsetY = -3.0 +minDepth = 0.3806 +depthScale = 194.1054 +depthOffset = 0.6 +contrast = 1000.0 +metadata/_custom_type_script = "uid://bkcgo0ho1x6ju" + +[sub_resource type="Resource" id="Resource_i46l2"] +script = ExtResource("87_btbfg") +layerName = "Color Correction" +metadata/_custom_type_script = "uid://b2ik21q1iwjvo" + +[sub_resource type="CompositorEffect" id="CompositorEffect_4545n"] +resource_local_to_scene = false +resource_name = "" +enabled = false +effect_callback_type = 4 +needs_motion_vectors = false +needs_normal_roughness = false +script = ExtResource("63_u533a") +layer = SubResource("Resource_i46l2") +metadata/_custom_type_script = "uid://chqp2otobal7a" + +[sub_resource type="CompositorEffect" id="CompositorEffect_i46l2"] +resource_local_to_scene = false +resource_name = "" +enabled = true +effect_callback_type = 4 +needs_motion_vectors = false +needs_normal_roughness = false +script = ExtResource("70_wi6eu") +amount = 0.6935 +metadata/_custom_type_script = "uid://bgw3wuqxbwrb0" + +[sub_resource type="CompositorEffect" id="CompositorEffect_d1ujc"] +resource_local_to_scene = false +resource_name = "" +enabled = true +effect_callback_type = 4 +needs_motion_vectors = false +needs_normal_roughness = false +script = ExtResource("74_c5ng7") +saturationOffset = 32.7869 +lightnessOffset = 2.0 +lightnessGamma = 5.0 +metadata/_custom_type_script = "uid://pevgspwywsxi" + +[sub_resource type="CompositorEffect" id="CompositorEffect_mdsx3"] +resource_local_to_scene = false +resource_name = "" +enabled = true +effect_callback_type = 4 +needs_motion_vectors = false +needs_normal_roughness = false +script = ExtResource("65_s46u1") +amount = 1.0 +saturationShift = Vector3(0.2, 0, 0) +lightnessShift = Vector3(0.057, -0.0055, 0) +lightnessAmount = 0.5 +metadata/_custom_type_script = "uid://cjfxcl3cdhnku" + +[sub_resource type="CompositorEffect" id="CompositorEffect_p64cs"] +resource_local_to_scene = false +resource_name = "" +enabled = false +effect_callback_type = 4 +needs_motion_vectors = false +needs_normal_roughness = false +script = ExtResource("63_u533a") +layer = ExtResource("68_762km") +metadata/_custom_type_script = "uid://chqp2otobal7a" + +[sub_resource type="Resource" id="Resource_mdsx3"] +script = ExtResource("87_btbfg") +layerName = "Latest" +metadata/_custom_type_script = "uid://b2ik21q1iwjvo" + +[sub_resource type="CompositorEffect" id="CompositorEffect_7axlu"] +resource_local_to_scene = false +resource_name = "" +enabled = false +effect_callback_type = 4 +needs_motion_vectors = false +needs_normal_roughness = false +script = ExtResource("63_u533a") +layer = SubResource("Resource_mdsx3") +metadata/_custom_type_script = "uid://chqp2otobal7a" + +[sub_resource type="CompositorEffect" id="CompositorEffect_wpvj8"] +resource_local_to_scene = false +resource_name = "" +enabled = true +effect_callback_type = 4 +needs_motion_vectors = false +needs_normal_roughness = false +script = ExtResource("20_jkd0a") +fadePosition = 0.472 +fadeInOffset = -0.0752 +fadeOutOffset = 0.137 +fadePower = 0.0 +ellipseToCircle = 1.0 +colorTop = Color(0.087186046, 0.33509386, 0.6018299, 1) +colorBottom = Color(0.17348541, 0.18686064, 0.41853607, 1) +replace = 0.415 +multiply = 1.0 +info = "constants: size:19 internalSize:19 bytes:80 floats:19 ints:0" +metadata/_custom_type_script = "uid://bgiluy6xgcvb0" + +[sub_resource type="Compositor" id="Compositor_6esk7"] +compositor_effects = Array[CompositorEffect]([SubResource("CompositorEffect_c05wc"), SubResource("CompositorEffect_u533a"), SubResource("CompositorEffect_4545n"), SubResource("CompositorEffect_i46l2"), SubResource("CompositorEffect_d1ujc"), SubResource("CompositorEffect_mdsx3"), SubResource("CompositorEffect_p64cs"), SubResource("CompositorEffect_7axlu"), SubResource("CompositorEffect_wpvj8")]) + +[sub_resource type="Resource" id="Resource_4k7mp"] +script = ExtResource("88_ixqtu") +compositor = SubResource("Compositor_6esk7") +metadata/_custom_type_script = "uid://dn7xg8cqdnolq" + [sub_resource type="FastNoiseLite" id="FastNoiseLite_12vd0"] frequency = 0.0056 fractal_lacunarity = 3.4105 @@ -521,7 +676,6 @@ volumetric_fog_length = 37.17 volumetric_fog_detail_spread = 1.6076609 volumetric_fog_ambient_inject = 9.16 volumetric_fog_sky_affect = 0.782 -adjustment_enabled = true adjustment_contrast = 0.9 adjustment_saturation = 1.5 @@ -531,224 +685,6 @@ dof_blur_far_transition = 50.0 dof_blur_near_enabled = true dof_blur_near_transition = 2.0 -[sub_resource type="CompositorEffect" id="CompositorEffect_m1wsu"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("20_jkd0a") -fadePosition = 0.3135 -fadeInOffset = -0.2576 -fadeOutOffset = 0.407 -fadePower = 0.0 -ellipseToCircle = 0.5314 -colorTop = Color(0.35294122, 0.75686276, 0.8, 1) -colorBottom = Color(0.12156863, 0.02352941, 0.52156866, 1) -replace = 0.0 -multiply = 0.5 -colorize = 0.5 -info = "constants: size:19 internalSize:19 bytes:80 floats:19 ints:0" -metadata/_custom_type_script = "uid://bgiluy6xgcvb0" - -[sub_resource type="CompositorEffect" id="CompositorEffect_c5ng7"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 1 -access_resolved_color = false -access_resolved_depth = false -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("23_rpmi0") -effectStrength = 3.0 -rimOffsetX = 0.0 -rimOffsetY = -3.0 -minDepth = 0.3806 -depthScale = 194.1054 -depthOffset = 0.6 -contrast = 1000.0 -metadata/_custom_type_script = "uid://bkcgo0ho1x6ju" - -[sub_resource type="CompositorEffect" id="CompositorEffect_8ghch"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("65_s46u1") -amount = 1.0 -hueShift = Vector3(-0.01, 0, 0.05) -saturationShift = Vector3(0.2225, -0.0175, -0.1) -saturationAmount = 0.7273 -lightnessShift = Vector3(0.05, -0.05, 0.0085) -metadata/_custom_type_script = "uid://cjfxcl3cdhnku" - -[sub_resource type="CompositorEffect" id="CompositorEffect_7wuxk"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("66_qiqbh") -amount = 1.0 -redAmount = 0.0 -greenAmount = 0.0 -blueAmount = 0.0 -rgbAmount = 0.0 -hueAmount = 0.0 -saturationAmount = 0.0 -luminanceAmount = 0.2981 -luminanceSteps = 50.9327 -luminanceGamma = -0.4423 -luminanceOffset = 0.8461 -metadata/_custom_type_script = "uid://b2oxy6ln560ys" - -[sub_resource type="CompositorEffect" id="CompositorEffect_5jolg"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("67_hwk2e") -amount = 0.016218945 -scale = 3.8225 -smearingSteps = 4 -smearing = 1.1337 -xU = Vector3(0.078, 0.145, 1) -xV = Vector3(0.149, 0.0455, 6) -yU = Vector3(0.4285, 0.096, 3) -yV = Vector3(0.0425, 0.042, 6) -metadata/_custom_type_script = "uid://cidk0x7sb1pxl" - -[sub_resource type="CompositorEffect" id="CompositorEffect_nvbi5"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("68_4l6me") -amount = 0.19259998 -smearingFrames = 16.0 -metadata/_custom_type_script = "uid://bjxayoleund83" - -[sub_resource type="CompositorEffect" id="CompositorEffect_jlp8b"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("69_swf5v") -radius = 0.011 -intensity = 0.138672 -metadata/_custom_type_script = "uid://dq0uf1bqoefv" - -[sub_resource type="CompositorEffect" id="CompositorEffect_ka6hw"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("70_hwk2e") -rShift = Vector2(-0.1, 0) -bShift = Vector2(0.1, 0) -intensity = 0.19259998 -shiftAll = 0.102 -metadata/_custom_type_script = "uid://cghyn18utdfl" - -[sub_resource type="CompositorEffect" id="CompositorEffect_fqrsx"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("66_4l6me") -amount = 0.052001998 -kernelOffset = 10 -metadata/_custom_type_script = "uid://wl1p78fs5sos" - -[sub_resource type="CompositorEffect" id="CompositorEffect_1er25"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("72_5c7e3") -distortionAmount = 0.0 -ellipseSize = Vector2(1, 1) -ellipseScale = 1.5990403 -minDistance = 0.0435 -rings = 3.0 -ringsIntensity = 1.0 -ringsType = 0.3803 -ringsDistribution = 0.2951 -smearingSteps = 10 -smearing = 1.0772 -redShift = 0.0372 -blueShift = -0.2691 -metadata/_custom_type_script = "uid://cqkrgyuerq50a" - -[sub_resource type="CompositorEffect" id="CompositorEffect_u533a"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("67_hwk2e") -amount = 0.0010015198 -scale = 50.359 -smearingSteps = 2 -xU = Vector3(0, 0.1, 100) -yU = Vector3(0.0315, 0.037, 0.1485) -yV = Vector3(0, 0.0375, 0.139) -metadata/_custom_type_script = "uid://cidk0x7sb1pxl" - -[sub_resource type="CompositorEffect" id="CompositorEffect_762km"] -resource_local_to_scene = false -resource_name = "" -enabled = true -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("73_m1wsu") -amount = 0.5693 -topColor = Color(1.8247963, 1.8247963, 1.8247963, 1) -bottomColor = Color(0.6018299, 0.6018299, 0.6018299, 1) -scanLineHeight = 1 -rgbTintAmount = 0.3722 -rgbSize = 4 -useRGBOffset = true -jitterStrength = 2.0 -jitterFPS = 28.0 -metadata/_custom_type_script = "uid://dxnmlb5wobxtw" - -[sub_resource type="CompositorEffect" id="CompositorEffect_c05wc"] -resource_local_to_scene = false -resource_name = "" -enabled = false -effect_callback_type = 4 -needs_motion_vectors = false -needs_normal_roughness = false -script = ExtResource("70_hwk2e") -rShift = Vector2(-0.1, 0) -bShift = Vector2(0.1, 0) -intensity = 1.0 -shiftAll = 0.041 -metadata/_custom_type_script = "uid://cghyn18utdfl" - -[sub_resource type="Compositor" id="Compositor_6esk7"] -compositor_effects = Array[CompositorEffect]([SubResource("CompositorEffect_m1wsu"), SubResource("CompositorEffect_c5ng7"), SubResource("CompositorEffect_8ghch"), SubResource("CompositorEffect_7wuxk"), SubResource("CompositorEffect_5jolg"), SubResource("CompositorEffect_nvbi5"), SubResource("CompositorEffect_jlp8b"), SubResource("CompositorEffect_ka6hw"), SubResource("CompositorEffect_fqrsx"), SubResource("CompositorEffect_1er25"), SubResource("CompositorEffect_u533a"), SubResource("CompositorEffect_762km"), SubResource("CompositorEffect_c05wc")]) - [sub_resource type="Resource" id="Resource_sax52"] script = ExtResource("52_uu48o") value = 0.0051 @@ -785,125 +721,41 @@ metadata/_custom_type_script = "uid://cmhbynml7hyhj" script = ExtResource("35_yr58t") metadata/_custom_type_script = "uid://lhuuedx87rem" -[sub_resource type="Curve" id="Curve_u533a"] -_limits = [0.0, 0.084210515, 0.0, 1.0] -_data = [Vector2(0, 0), 0.0, 0.084210515, 0, 1, Vector2(1, 0.084210515), 0.084210515, 0.0, 1, 0] -point_count = 2 +[sub_resource type="Resource" id="Resource_oqkh4"] +script = ExtResource("87_m7r8b") -[sub_resource type="Resource" id="Resource_762km"] -script = ExtResource("80_m1wsu") -nodePath = NodePath("../WorldEnvironment") -targetMemberPath = "Compositor/CompositorEffects/4/amount" -mappingCurve = SubResource("Curve_u533a") -metadata/_custom_type_script = "uid://cqgobpug8btt3" +[sub_resource type="Resource" id="Resource_4n83u"] +script = ExtResource("87_m7r8b") -[sub_resource type="Curve" id="Curve_c05wc"] -_data = [Vector2(0, 0), 0.0, 1.0, 0, 1, Vector2(1, 1), 1.0, 0.0, 1, 0] -point_count = 2 +[sub_resource type="Resource" id="Resource_gyycf"] +script = ExtResource("87_m7r8b") -[sub_resource type="Resource" id="Resource_i46l2"] -script = ExtResource("80_m1wsu") -nodePath = NodePath("../WorldEnvironment") -targetMemberPath = "Compositor/CompositorEffects/5/amount" -mappingCurve = SubResource("Curve_c05wc") -metadata/_custom_type_script = "uid://cqgobpug8btt3" +[sub_resource type="Resource" id="Resource_fy8er"] +script = ExtResource("87_m7r8b") -[sub_resource type="Curve" id="Curve_4545n"] -_limits = [0.0, 0.72, 0.0, 1.0] -_data = [Vector2(0, 0), 0.0, 0.72, 0, 1, Vector2(1, 0.72), 0.72, 0.0, 1, 0] -point_count = 2 +[sub_resource type="Resource" id="Resource_0c48d"] +script = ExtResource("87_m7r8b") -[sub_resource type="Resource" id="Resource_mdsx3"] -script = ExtResource("80_m1wsu") -nodePath = NodePath("../WorldEnvironment") -targetMemberPath = "Compositor/CompositorEffects/6/intensity" -mappingCurve = SubResource("Curve_4545n") -metadata/_custom_type_script = "uid://cqgobpug8btt3" - -[sub_resource type="Curve" id="Curve_wpvj8"] -_data = [Vector2(0, 0), 0.0, 1.0, 0, 1, Vector2(1, 1), 1.0, 0.0, 1, 0] -point_count = 2 - -[sub_resource type="Resource" id="Resource_p64cs"] -script = ExtResource("80_m1wsu") -nodePath = NodePath("../WorldEnvironment") -targetMemberPath = "Compositor/CompositorEffects/7/intensity" -mappingCurve = SubResource("Curve_wpvj8") -metadata/_custom_type_script = "uid://cqgobpug8btt3" - -[sub_resource type="Curve" id="Curve_7axlu"] -_limits = [0.0, 0.27, 0.0, 1.0] -_data = [Vector2(0, 0), 0.0, 0.27, 0, 1, Vector2(1, 0.27), 0.27, 0.0, 1, 0] -point_count = 2 +[sub_resource type="Resource" id="Resource_5rqpk"] +script = ExtResource("87_m7r8b") [sub_resource type="Resource" id="Resource_i5utj"] -script = ExtResource("80_m1wsu") -nodePath = NodePath("../WorldEnvironment") -targetMemberPath = "Compositor/CompositorEffects/8/amount" -mappingCurve = SubResource("Curve_7axlu") -metadata/_custom_type_script = "uid://cqgobpug8btt3" - -[sub_resource type="Curve" id="Curve_22k1k"] -_limits = [0.0, 0.01, 0.0, 1.0] -_data = [Vector2(0, 0), 0.0, 0.0052, 0, 1, Vector2(1, 0.0052), 0.0052, 0.0, 1, 0] -point_count = 2 - -[sub_resource type="Resource" id="Resource_hpfyh"] -script = ExtResource("80_m1wsu") -nodePath = NodePath("../WorldEnvironment") -targetMemberPath = "Compositor/CompositorEffects/10/amount" -mappingCurve = SubResource("Curve_22k1k") -metadata/_custom_type_script = "uid://cqgobpug8btt3" - -[sub_resource type="Curve" id="Curve_762km"] -_limits = [0.0, 0.5, 0.0, 1.0] -_data = [Vector2(0, 0), 0.0, 1.0689882, 0, 0, Vector2(0.029459905, 0.11480683), 1.3490828, 1.3490828, 0, 0, Vector2(0.34740883, 0.38808858), 0.019687198, 0.019687198, 0, 0, Vector2(1, 0), -0.9409129, -0.9409129, 0, 0] -point_count = 4 - -[sub_resource type="Resource" id="Resource_c05wc"] -script = ExtResource("80_m1wsu") -nodePath = NodePath("../WorldEnvironment") -targetMemberPath = "Compositor/CompositorEffects/9/distortionAmount" -mappingCurve = SubResource("Curve_762km") -metadata/_custom_type_script = "uid://cqgobpug8btt3" - -[sub_resource type="Curve" id="Curve_i46l2"] -_limits = [0.0, 2.0, 0.0, 1.0] -_data = [Vector2(0, 0.16479623), 2.7060935, 2.7060935, 0, 0, Vector2(0.4990403, 1.5990403), 0.19149712, 0.0, 0, 0] -point_count = 2 +script = ExtResource("87_m7r8b") [sub_resource type="Resource" id="Resource_d1ujc"] -script = ExtResource("80_m1wsu") -nodePath = NodePath("../WorldEnvironment") -targetMemberPath = "Compositor/CompositorEffects/9/ellipseScale" -mappingCurve = SubResource("Curve_i46l2") -metadata/_custom_type_script = "uid://cqgobpug8btt3" +script = ExtResource("87_m7r8b") -[sub_resource type="Curve" id="Curve_mdsx3"] -_data = [Vector2(0, 0), 0.0, 37.7499, 0, 0, Vector2(0.06710311, 1), 0.0, 0.0, 0, 0, Vector2(0.49520153, 1), 0.07217911, 0.07217911, 0, 0, Vector2(1, 1), 0.0, 0.0, 1, 0] -point_count = 4 +[sub_resource type="Resource" id="Resource_1ntwo"] +script = ExtResource("87_m7r8b") -[sub_resource type="Resource" id="Resource_a3id7"] -script = ExtResource("80_m1wsu") -nodePath = NodePath("../WorldEnvironment") -targetMemberPath = "Compositor/CompositorEffects/9/blendAmount" -mappingCurve = SubResource("Curve_mdsx3") -metadata/_custom_type_script = "uid://cqgobpug8btt3" +[sub_resource type="Resource" id="Resource_008mr"] +script = ExtResource("87_m7r8b") -[sub_resource type="Resource" id="Resource_ie6m2"] -script = ExtResource("40_uqrk0") -seconds = 1.0 -metadata/_custom_type_script = "uid://ddhwhwos5kkrm" +[sub_resource type="Resource" id="Resource_6xf1f"] +script = ExtResource("87_m7r8b") -[sub_resource type="Environment" id="Environment_ydkll"] -background_mode = 1 -background_color = Color(0.23524225, 0.23524225, 0.23524225, 1) -glow_blend_mode = 1 -glow_hdr_scale = 1.36 -glow_hdr_luminance_cap = 256.0 -glow_map_strength = 0.0 - -[sub_resource type="Compositor" id="Compositor_4l6me"] +[sub_resource type="Resource" id="Resource_diigt"] +script = ExtResource("87_m7r8b") [sub_resource type="Resource" id="Resource_dq7d0"] script = ExtResource("40_uqrk0") @@ -929,16 +781,6 @@ compositor = SubResource("Compositor_6esk7") wipeEffect = SubResource("Resource_ioimv") metadata/_custom_type_script = "uid://cn05bqaq15tty" -[sub_resource type="Resource" id="Resource_q8n2a"] -script = ExtResource("40_uqrk0") -seconds = 0.5 -timeLine = ExtResource("11_sl01w") -metadata/_custom_type_script = "uid://ddhwhwos5kkrm" - -[sub_resource type="Curve" id="Curve_vh1c2"] -_data = [Vector2(0, 0), 0.0, 3.237083, 0, 0, Vector2(1, 1), 0.114375144, 0.0, 0, 0] -point_count = 2 - [sub_resource type="Resource" id="Resource_tdk3c"] script = ExtResource("40_uqrk0") seconds = 1.0 @@ -975,9 +817,15 @@ compositor = SubResource("Compositor_6esk7") wipeEffect = SubResource("Resource_mk81p") metadata/_custom_type_script = "uid://cn05bqaq15tty" -[sub_resource type="Curve" id="Curve_drk6d"] -_data = [Vector2(0, 0), 0.0, -0.13647318, 0, 0, Vector2(1, 1), 2.4119198, 0.0, 0, 0] -point_count = 2 +[sub_resource type="Environment" id="Environment_ydkll"] +background_mode = 1 +background_color = Color(0.23524225, 0.23524225, 0.23524225, 1) +glow_blend_mode = 1 +glow_hdr_scale = 1.36 +glow_hdr_luminance_cap = 256.0 +glow_map_strength = 0.0 + +[sub_resource type="Compositor" id="Compositor_4l6me"] [sub_resource type="Resource" id="Resource_p2tm2"] script = ExtResource("25_rd5ln") @@ -1064,7 +912,7 @@ value = 2.0 unit = "em" metadata/_custom_type_script = "uid://cnkyynboxg1qg" -[sub_resource type="ShaderMaterial" id="ShaderMaterial_i46l2"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ysmsc"] shader = ExtResource("42_npu10") shader_parameter/size = Vector2(38.4, 38.4) shader_parameter/sharpness = 5.0 @@ -1116,7 +964,7 @@ script = ExtResource("40_ytrvj") unit = "em" metadata/_custom_type_script = "uid://cnkyynboxg1qg" -[sub_resource type="ShaderMaterial" id="ShaderMaterial_4545n"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_t5au6"] shader = ExtResource("42_npu10") shader_parameter/size = Vector2(38.4, 38.4) shader_parameter/sharpness = 5.0 @@ -1145,7 +993,7 @@ script = ExtResource("46_er746") fillColor = SubResource("Resource_bsxpb") metadata/_custom_type_script = "uid://dwuimn03cvh3" -[sub_resource type="ShaderMaterial" id="ShaderMaterial_d1ujc"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_btbfg"] shader = ExtResource("42_npu10") shader_parameter/size = Vector2(38.399998, 38.4) shader_parameter/sharpness = 5.0 @@ -1165,7 +1013,7 @@ shader_parameter/fillStateAngle = 0.0 shader_parameter/fillStateOffset = 0.0 script = ExtResource("41_4el3b") -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mdsx3"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ixqtu"] shader = ExtResource("42_npu10") shader_parameter/size = Vector2(38.399998, 38.4) shader_parameter/sharpness = 5.0 @@ -1185,7 +1033,7 @@ shader_parameter/fillStateAngle = 0.0 shader_parameter/fillStateOffset = 0.0 script = ExtResource("41_4el3b") -[sub_resource type="ShaderMaterial" id="ShaderMaterial_wpvj8"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_m7r8b"] shader = ExtResource("42_npu10") shader_parameter/size = Vector2(38.399994, 38.4) shader_parameter/sharpness = 5.0 @@ -1205,7 +1053,7 @@ shader_parameter/fillStateAngle = 0.0 shader_parameter/fillStateOffset = 0.0 script = ExtResource("41_4el3b") -[sub_resource type="ShaderMaterial" id="ShaderMaterial_ysmsc"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_sw5v3"] shader = ExtResource("42_npu10") shader_parameter/size = Vector2(38.399994, 38.4) shader_parameter/sharpness = 5.0 @@ -1235,7 +1083,7 @@ metadata/_custom_type_script = "uid://cnkyynboxg1qg" script = ExtResource("40_ytrvj") metadata/_custom_type_script = "uid://cnkyynboxg1qg" -[sub_resource type="ShaderMaterial" id="ShaderMaterial_t5au6"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_wi6eu"] shader = ExtResource("42_npu10") shader_parameter/size = Vector2(116.40002, 76.79997) shader_parameter/sharpness = 5.0 @@ -1303,7 +1151,7 @@ value = 0.5 unit = "em" metadata/_custom_type_script = "uid://cnkyynboxg1qg" -[sub_resource type="ShaderMaterial" id="ShaderMaterial_btbfg"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_7720d"] shader = ExtResource("42_npu10") shader_parameter/size = Vector2(38.4, 38.399998) shader_parameter/sharpness = 5.0 @@ -1332,11 +1180,11 @@ script = ExtResource("46_er746") fillColor = SubResource("Resource_73e3n") metadata/_custom_type_script = "uid://dwuimn03cvh3" -[sub_resource type="LabelSettings" id="LabelSettings_ixqtu"] +[sub_resource type="LabelSettings" id="LabelSettings_a3id7"] font_size = 19 shadow_size = 0 -[sub_resource type="Resource" id="Resource_7axlu"] +[sub_resource type="Resource" id="Resource_a3id7"] script = ExtResource("78_dq7d0") en = "0/0" @@ -1362,7 +1210,7 @@ script = ExtResource("40_ytrvj") unit = "em" metadata/_custom_type_script = "uid://cnkyynboxg1qg" -[sub_resource type="ShaderMaterial" id="ShaderMaterial_i5utj"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ie6m2"] shader = ExtResource("42_npu10") shader_parameter/size = Vector2(230.40005, 230.40005) shader_parameter/sharpness = 5.0 @@ -1465,7 +1313,7 @@ value = 5.0 unit = "em" metadata/_custom_type_script = "uid://cnkyynboxg1qg" -[sub_resource type="ShaderMaterial" id="ShaderMaterial_22k1k"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_p64cs"] shader = ExtResource("42_npu10") shader_parameter/size = Vector2(426, 232.00002) shader_parameter/sharpness = 5.0 @@ -1539,7 +1387,7 @@ script = ExtResource("40_ytrvj") unit = "em" metadata/_custom_type_script = "uid://cnkyynboxg1qg" -[sub_resource type="LabelSettings" id="LabelSettings_hpfyh"] +[sub_resource type="LabelSettings" id="LabelSettings_7axlu"] font_size = 29 shadow_size = 0 @@ -1615,7 +1463,7 @@ metadata/_custom_type_script = "uid://36a2avbsduro" script = ExtResource("116_uslls") metadata/_custom_type_script = "uid://vc5quho4a6ib" -[sub_resource type="LabelSettings" id="LabelSettings_frwbc"] +[sub_resource type="LabelSettings" id="LabelSettings_i5utj"] font_size = 19 shadow_size = 0 @@ -1655,7 +1503,7 @@ metadata/_custom_type_script = "uid://36a2avbsduro" script = ExtResource("116_uslls") metadata/_custom_type_script = "uid://vc5quho4a6ib" -[sub_resource type="LabelSettings" id="LabelSettings_w6tyf"] +[sub_resource type="LabelSettings" id="LabelSettings_22k1k"] font_size = 19 shadow_size = 0 @@ -1669,7 +1517,7 @@ script = ExtResource("113_4l6me") sensor = SubResource("Resource_rn0rj") metadata/_custom_type_script = "uid://36a2avbsduro" -[sub_resource type="LabelSettings" id="LabelSettings_63qv8"] +[sub_resource type="LabelSettings" id="LabelSettings_hpfyh"] font_size = 19 shadow_size = 0 @@ -1698,7 +1546,7 @@ script = ExtResource("113_4l6me") sensor = SubResource("Resource_58uie") metadata/_custom_type_script = "uid://36a2avbsduro" -[sub_resource type="LabelSettings" id="LabelSettings_gxlxg"] +[sub_resource type="LabelSettings" id="LabelSettings_frwbc"] font_size = 19 shadow_size = 0 @@ -2193,32 +2041,22 @@ metadata/_custom_type_script = "uid://lhuuedx87rem" [sub_resource type="QuadMesh" id="QuadMesh_nlcvw"] -[sub_resource type="Gradient" id="Gradient_2750v"] -offsets = PackedFloat32Array(0.94285715, 1) -colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) - -[sub_resource type="GradientTexture2D" id="GradientTexture2D_txdr1"] -gradient = SubResource("Gradient_2750v") -fill = 2 -fill_from = Vector2(0.5, 0.5) -fill_to = Vector2(0, 0.5) - [sub_resource type="ShaderMaterial" id="ShaderMaterial_yttar"] render_priority = -2 shader = ExtResource("123_2750v") -shader_parameter/color = Color(0.7327622, 0.45490193, 1, 1) -shader_parameter/alphaScale = 0.34 +shader_parameter/color = Color(0.5019608, 0.64639395, 1, 1) +shader_parameter/alphaScale = 0.6155 shader_parameter/circleAmount = 1.0 -shader_parameter/circleDistortion = 1.471 -shader_parameter/ellipseAmount = 0.2915 -shader_parameter/ellipseDistortion = 1.9675 +shader_parameter/circleDistortion = 1.0 +shader_parameter/ellipseAmount = 0.127 +shader_parameter/ellipseDistortion = 1.0 shader_parameter/ellipseScale = Vector2(1, 0.5) shader_parameter/add_vs_max = 0.5 shader_parameter/centerHSL = Vector4(0.08, 0, 0.18, 1) shader_parameter/outsideHSL = Vector4(-0.05, 1.65, 0.02, 0) shader_parameter/sizeX = 10.0 shader_parameter/sizeY = 1.0 -shader_parameter/scaleAll = 0.667 +shader_parameter/scaleAll = 0.3945 shader_parameter/worldSize_vs_screenSize = 1.0 shader_parameter/usSpectralsNoise = false shader_parameter/spectralsAmount = Vector3(0.1, 0.05, 0.02) @@ -2227,37 +2065,30 @@ shader_parameter/spectralsSize = Vector3(1, 0.8, 0.5) shader_parameter/spectralsSharpness = Vector3(0, 0, 0) shader_parameter/spectralsFrequency = Vector3(50, 200, 500) shader_parameter/spectralsSpeed = Vector3(5, -3, -2) -shader_parameter/fading = SubResource("GradientTexture2D_txdr1") -shader_parameter/useQuickOcclusionTest = true +shader_parameter/useQuickOcclusionTest = false shader_parameter/occlusionZOffset = 0.0 shader_parameter/occlusionTestMaxSteps = 10 shader_parameter/occlusionTestStepStride = 1.0 shader_parameter/occlusionTest_ViewDependingScaleAmount = 0.5 shader_parameter/occlusionTest_ViewDependingDistance = 100.0 -[sub_resource type="GradientTexture2D" id="GradientTexture2D_bsxpb"] -gradient = SubResource("Gradient_2750v") -fill = 2 -fill_from = Vector2(0.5, 0.5) -fill_to = Vector2(0, 0.5) - [sub_resource type="ShaderMaterial" id="ShaderMaterial_celbq"] render_priority = -1 next_pass = SubResource("ShaderMaterial_yttar") shader = ExtResource("124_txdr1") -shader_parameter/color = Color(0.5843137, 0.67306423, 0.8, 1) -shader_parameter/alphaScale = 1.0 -shader_parameter/circleAmount = 1.3065 -shader_parameter/circleDistortion = 1.1125 -shader_parameter/ellipseAmount = 0.1 -shader_parameter/ellipseDistortion = 2.537 -shader_parameter/ellipseScale = Vector2(1, 0.904) +shader_parameter/color = Color(0, 0.3147986, 3.4860003, 1) +shader_parameter/alphaScale = 2.0635 +shader_parameter/circleAmount = 1.0 +shader_parameter/circleDistortion = 1.0 +shader_parameter/ellipseAmount = 0.0255 +shader_parameter/ellipseDistortion = 5.0 +shader_parameter/ellipseScale = Vector2(1, 0.5) shader_parameter/add_vs_max = 0.0 shader_parameter/centerHSL = Vector4(0.08, 0, 0.18, 1) shader_parameter/outsideHSL = Vector4(-0.05, 1.65, 0.02, 0) -shader_parameter/sizeX = 100.0 +shader_parameter/sizeX = 41.146001906935 shader_parameter/sizeY = 1.0 -shader_parameter/scaleAll = 0.071 +shader_parameter/scaleAll = 0.0835 shader_parameter/worldSize_vs_screenSize = 1.0 shader_parameter/usSpectralsNoise = false shader_parameter/spectralsAmount = Vector3(0.1, 0.05, 0.02) @@ -2266,8 +2097,7 @@ shader_parameter/spectralsSize = Vector3(1, 0.8, 0.5) shader_parameter/spectralsSharpness = Vector3(0, 0, 0) shader_parameter/spectralsFrequency = Vector3(50, 200, 500) shader_parameter/spectralsSpeed = Vector3(5, -3, -2) -shader_parameter/fading = SubResource("GradientTexture2D_bsxpb") -shader_parameter/useQuickOcclusionTest = true +shader_parameter/useQuickOcclusionTest = false shader_parameter/occlusionZOffset = 0.0 shader_parameter/occlusionTestMaxSteps = 10 shader_parameter/occlusionTestStepStride = 1.0 @@ -3092,7 +2922,6 @@ render_priority = 100 outline_render_priority = 99 modulate = Color(0.53504485, 0.90053093, 0.35550776, 1) outline_modulate = Color(0.13993634, 0.42532474, 0.23995323, 1) -text = "P" font_size = 100 outline_size = 50 script = ExtResource("35_5kble") @@ -3136,7 +2965,6 @@ render_priority = 100 outline_render_priority = 99 modulate = Color(0.9141083, 0.34904757, 0.30075133, 1) outline_modulate = Color(0.38459277, 0.088595904, 0.14523984, 1) -text = "S" font_size = 100 outline_size = 50 script = ExtResource("35_5kble") @@ -3163,7 +2991,6 @@ render_priority = 100 outline_render_priority = 99 modulate = Color(0.30196086, 0.65454865, 0.9137255, 1) outline_modulate = Color(0.117091015, 0.10999007, 0.64256185, 1) -text = "L" font_size = 100 outline_size = 50 script = ExtResource("35_5kble") @@ -3217,6 +3044,7 @@ camera = NodePath("../Main Camera") worldEnvironment = NodePath("../WorldEnvironment") debugCamera = NodePath("../Debug Editor Camera") debugCameraToggle = SubResource("Resource_v4k1o") +compositorLayout = SubResource("Resource_4k7mp") postProcessVolumes = [NodePath("../WorldEnvironment/Winter"), NodePath("../WorldEnvironment/Spring")] CameraPrioritySmoothingCoefficient = 0.01 @@ -3252,35 +3080,121 @@ script = ExtResource("23_yr58t") zoomSmoothing = SubResource("Resource_bf3rb") keyboardMouseInputs = ExtResource("64_u7p5w") -[node name="All FX" type="Node" parent="App/Camera Setup"] -script = ExtResource("79_why7y") -value = 0.1926 -targets = [SubResource("Resource_762km"), SubResource("Resource_i46l2"), SubResource("Resource_mdsx3"), SubResource("Resource_p64cs"), SubResource("Resource_i5utj"), SubResource("Resource_hpfyh")] -metadata/_custom_type_script = "uid://bvmdtshoesn5v" +[node name="VFX" type="Node" parent="App/Camera Setup"] -[node name="FloatDriver" type="Node" parent="App/Camera Setup"] -script = ExtResource("79_why7y") -value = 1.0 -targets = [SubResource("Resource_c05wc"), SubResource("Resource_d1ujc"), SubResource("Resource_a3id7")] -metadata/_custom_type_script = "uid://bvmdtshoesn5v" +[node name="Digital Compression VFX" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("77_jlp8b") +ownerReference = SubResource("Resource_oqkh4") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" -[node name="Impact" type="Node" parent="App/Camera Setup" node_paths=PackedStringArray("targetNode")] -script = ExtResource("48_pp0bs") -targetNode = NodePath("../FloatDriver") -targetMemberPath = "value" -endValue = 1.0 -duration = SubResource("Resource_ie6m2") -curve = ExtResource("31_t2h31") -forceStartValue = true -metadata/_custom_type_script = "uid://dm4i0s67kio5v" +[node name="Tube TV" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("79_ka6hw") +ownerReference = SubResource("Resource_4n83u") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" -[node name="Drive to 0" type="Node" parent="App/Camera Setup" node_paths=PackedStringArray("targetNode")] -script = ExtResource("48_pp0bs") -targetNode = NodePath("../FloatDriver") -targetMemberPath = "value" -duration = SubResource("Resource_ie6m2") -curve = ExtResource("31_t2h31") -metadata/_custom_type_script = "uid://dm4i0s67kio5v" +[node name="Old Film" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("86_t5au6") +ownerReference = SubResource("Resource_gyycf") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Impact Wave" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("81_1er25") +ownerReference = SubResource("Resource_fy8er") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Blue Cinematic Bloom" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("82_u533a") +ownerReference = SubResource("Resource_0c48d") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Red Cinematic Bloom" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("83_762km") +ownerReference = SubResource("Resource_5rqpk") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Green Cinematic Bloom" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("90_i46l2") +ownerReference = SubResource("Resource_i5utj") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Yellow Cinematic Bloom" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("91_4545n") +ownerReference = SubResource("Resource_d1ujc") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Star Glow" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("84_c05wc") +ownerReference = SubResource("Resource_1ntwo") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Drunken" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("85_i46l2") +ownerReference = SubResource("Resource_fy8er") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Blur" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("86_4545n") +ownerReference = SubResource("Resource_008mr") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Frozen Ice" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("80_fqrsx") +ownerReference = SubResource("Resource_6xf1f") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Super Speed" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("96_m7r8b") +preset = ExtResource("96_btbfg") +ownerReference = SubResource("Resource_diigt") +metadata/_custom_type_script = "uid://cebnf3dtch0oh" + +[node name="Wipes" type="Node" parent="App/Camera Setup/VFX"] +script = ExtResource("91_vgxo8") +metadata/_custom_type_script = "uid://ceaglilesxsi4" + +[node name="Wipe In" type="Node" parent="App/Camera Setup/VFX/Wipes"] +script = ExtResource("45_loqre") +duration = SubResource("Resource_dq7d0") +wipeSettings = SubResource("Resource_p7jqt") +metadata/_custom_type_script = "uid://c4s7kbtpirx6b" + +[node name="Wipe 2 In" type="Node" parent="App/Camera Setup/VFX/Wipes"] +script = ExtResource("45_loqre") +duration = SubResource("Resource_tdk3c") +wipeSettings = SubResource("Resource_drk6d") +metadata/_custom_type_script = "uid://c4s7kbtpirx6b" + +[node name="Delay" type="Node" parent="App/Camera Setup/VFX/Wipes"] +script = ExtResource("92_tr1d7") +duration = 0.5 +timeLine = ExtResource("11_sl01w") +metadata/_custom_type_script = "uid://b2g7rycr0ouu4" + +[node name="Wipe 2 Out" type="Node" parent="App/Camera Setup/VFX/Wipes"] +script = ExtResource("45_loqre") +direction = 1 +duration = SubResource("Resource_tdk3c") +wipeSettings = SubResource("Resource_drk6d") +metadata/_custom_type_script = "uid://c4s7kbtpirx6b" + +[node name="Wipe Out" type="Node" parent="App/Camera Setup/VFX/Wipes"] +script = ExtResource("45_loqre") +direction = 1 +duration = SubResource("Resource_dq7d0") +wipeSettings = SubResource("Resource_p7jqt") +metadata/_custom_type_script = "uid://c4s7kbtpirx6b" [node name="SubViewport" type="SubViewport" parent="App/Camera Setup"] handle_input_locally = false @@ -3316,77 +3230,6 @@ source = NodePath("../../../Main Camera") target = NodePath("../../../../../CharacterController/Graphics/Map Geometry Camera Rotation") metadata/_custom_type_script = "uid://bekhujf301q48" -[node name="ActionSequence" type="Node" parent="App/Camera Setup"] -script = ExtResource("91_vgxo8") -metadata/_custom_type_script = "uid://ceaglilesxsi4" - -[node name="Wipe In" type="Node" parent="App/Camera Setup/ActionSequence"] -script = ExtResource("45_loqre") -duration = SubResource("Resource_dq7d0") -wipeSettings = SubResource("Resource_p7jqt") -metadata/_custom_type_script = "uid://c4s7kbtpirx6b" - -[node name="Pixelate" type="Node" parent="App/Camera Setup/ActionSequence"] -script = ExtResource("48_pp0bs") -target = SubResource("Compositor_6esk7") -targetMemberPath = "CompositorEffects/2/pixelSize" -endValue = 10.0 -duration = SubResource("Resource_q8n2a") -curve = SubResource("Curve_vh1c2") -metadata/_custom_type_script = "uid://dm4i0s67kio5v" - -[node name="Blur" type="Node" parent="App/Camera Setup/ActionSequence"] -script = ExtResource("48_pp0bs") -target = SubResource("Compositor_6esk7") -targetMemberPath = "CompositorEffects/3/intensity" -endValue = 1.0 -duration = SubResource("Resource_q8n2a") -curve = ExtResource("31_t2h31") -metadata/_custom_type_script = "uid://dm4i0s67kio5v" - -[node name="Wipe 2 In" type="Node" parent="App/Camera Setup/ActionSequence"] -script = ExtResource("45_loqre") -duration = SubResource("Resource_tdk3c") -wipeSettings = SubResource("Resource_drk6d") -metadata/_custom_type_script = "uid://c4s7kbtpirx6b" - -[node name="Delay" type="Node" parent="App/Camera Setup/ActionSequence"] -script = ExtResource("92_tr1d7") -duration = 0.5 -timeLine = ExtResource("11_sl01w") -metadata/_custom_type_script = "uid://b2g7rycr0ouu4" - -[node name="Wipe 2 Out" type="Node" parent="App/Camera Setup/ActionSequence"] -script = ExtResource("45_loqre") -direction = 1 -duration = SubResource("Resource_tdk3c") -wipeSettings = SubResource("Resource_drk6d") -metadata/_custom_type_script = "uid://c4s7kbtpirx6b" - -[node name="Un-Blur" type="Node" parent="App/Camera Setup/ActionSequence"] -script = ExtResource("48_pp0bs") -target = SubResource("Compositor_6esk7") -targetMemberPath = "CompositorEffects/3/intensity" -duration = SubResource("Resource_q8n2a") -curve = ExtResource("31_t2h31") -metadata/_custom_type_script = "uid://dm4i0s67kio5v" - -[node name="Unpixelate" type="Node" parent="App/Camera Setup/ActionSequence"] -script = ExtResource("48_pp0bs") -target = SubResource("Compositor_6esk7") -targetMemberPath = "CompositorEffects/2/pixelSize" -endValue = 1.0 -duration = SubResource("Resource_q8n2a") -curve = SubResource("Curve_drk6d") -metadata/_custom_type_script = "uid://dm4i0s67kio5v" - -[node name="Wipe Out" type="Node" parent="App/Camera Setup/ActionSequence"] -script = ExtResource("45_loqre") -direction = 1 -duration = SubResource("Resource_dq7d0") -wipeSettings = SubResource("Resource_p7jqt") -metadata/_custom_type_script = "uid://c4s7kbtpirx6b" - [node name="Third Person Camera" type="Node3D" parent="App" node_paths=PackedStringArray("target")] script = ExtResource("24_ntqly") target = NodePath("../../CharacterController/Graphics") @@ -3432,7 +3275,7 @@ height = SubResource("Resource_y6wps") metadata/_custom_type_script = "uid://c2hicupu28nbi" [node name="Fill" type="TextureRect" parent="App/UI/Hearts/Heart"] -material = SubResource("ShaderMaterial_i46l2") +material = SubResource("ShaderMaterial_ysmsc") layout_mode = 0 offset_right = 38.4 offset_bottom = 38.4 @@ -3449,7 +3292,7 @@ top = SubResource("Resource_2750v") metadata/_custom_type_script = "uid://bx0bk663u3hj5" [node name="Outline" type="TextureRect" parent="App/UI/Hearts/Heart"] -material = SubResource("ShaderMaterial_4545n") +material = SubResource("ShaderMaterial_t5au6") layout_mode = 0 offset_right = 38.4 offset_bottom = 38.4 @@ -3478,7 +3321,7 @@ height = SubResource("Resource_y6wps") metadata/_custom_type_script = "uid://c2hicupu28nbi" [node name="Fill" type="TextureRect" parent="App/UI/Hearts/Heart2"] -material = SubResource("ShaderMaterial_d1ujc") +material = SubResource("ShaderMaterial_btbfg") layout_mode = 0 offset_right = 38.399998 offset_bottom = 38.4 @@ -3495,7 +3338,7 @@ top = SubResource("Resource_2750v") metadata/_custom_type_script = "uid://bx0bk663u3hj5" [node name="Outline" type="TextureRect" parent="App/UI/Hearts/Heart2"] -material = SubResource("ShaderMaterial_mdsx3") +material = SubResource("ShaderMaterial_ixqtu") layout_mode = 0 offset_right = 38.399998 offset_bottom = 38.4 @@ -3524,7 +3367,7 @@ height = SubResource("Resource_y6wps") metadata/_custom_type_script = "uid://c2hicupu28nbi" [node name="Fill" type="TextureRect" parent="App/UI/Hearts/Heart3"] -material = SubResource("ShaderMaterial_wpvj8") +material = SubResource("ShaderMaterial_m7r8b") layout_mode = 0 offset_right = 38.399994 offset_bottom = 38.4 @@ -3541,7 +3384,7 @@ top = SubResource("Resource_2750v") metadata/_custom_type_script = "uid://bx0bk663u3hj5" [node name="Outline" type="TextureRect" parent="App/UI/Hearts/Heart3"] -material = SubResource("ShaderMaterial_ysmsc") +material = SubResource("ShaderMaterial_sw5v3") layout_mode = 0 offset_right = 38.399994 offset_bottom = 38.4 @@ -3571,7 +3414,7 @@ metadata/_custom_type_script = "uid://c2hicupu28nbi" metadata/_edit_use_anchors_ = true [node name="UIImage" type="TextureRect" parent="App/UI/Collected Presents"] -material = SubResource("ShaderMaterial_t5au6") +material = SubResource("ShaderMaterial_wi6eu") layout_mode = 0 offset_left = 38.4 offset_top = 38.4 @@ -3603,7 +3446,7 @@ marginRight = SubResource("Resource_b5y7t") metadata/_custom_type_script = "uid://c2hicupu28nbi" [node name="Fill" type="TextureRect" parent="App/UI/Collected Presents/Present"] -material = SubResource("ShaderMaterial_btbfg") +material = SubResource("ShaderMaterial_7720d") layout_mode = 0 offset_right = 38.4 offset_bottom = 38.399998 @@ -3627,9 +3470,9 @@ offset_right = 135.6 offset_bottom = 90.3 pivot_offset = Vector2(15, 13.5) text = "0/0" -label_settings = SubResource("LabelSettings_ixqtu") +label_settings = SubResource("LabelSettings_a3id7") script = ExtResource("77_ubijs") -locale = SubResource("Resource_7axlu") +locale = SubResource("Resource_a3id7") metadata/_custom_type_script = "uid://rqs2m0u6yvvf" [node name="Map" type="Control" parent="App/UI"] @@ -3649,7 +3492,7 @@ metadata/_custom_type_script = "uid://c2hicupu28nbi" metadata/_edit_use_anchors_ = true [node name="UIImage" type="TextureRect" parent="App/UI/Map"] -material = SubResource("ShaderMaterial_i5utj") +material = SubResource("ShaderMaterial_ie6m2") layout_mode = 0 offset_right = 230.40005 offset_bottom = 230.40005 @@ -3697,10 +3540,10 @@ metadata/_edit_use_anchors_ = true [node name="Text Block" type="Control" parent="App/UI/Dialogs"] anchors_preset = 0 -offset_left = 747.00006 +offset_left = 747.0001 offset_right = 1173.0 offset_bottom = 232.0 -pivot_offset = Vector2(213, 116) +pivot_offset = Vector2(212.99997, 116) script = ExtResource("39_ji1pb") horizontalAlignment = SubResource("Resource_7e4fb") margin = SubResource("Resource_o8r6f") @@ -3708,7 +3551,7 @@ metadata/_custom_type_script = "uid://c2hicupu28nbi" metadata/_edit_use_anchors_ = true [node name="UIImage" type="TextureRect" parent="App/UI/Dialogs/Text Block"] -material = SubResource("ShaderMaterial_22k1k") +material = SubResource("ShaderMaterial_p64cs") layout_mode = 0 offset_right = 426.0 offset_bottom = 232.00002 @@ -3733,7 +3576,7 @@ offset_right = 330.0 offset_bottom = 136.0 pivot_offset = Vector2(117, 20) text = "Winter's coming!" -label_settings = SubResource("LabelSettings_hpfyh") +label_settings = SubResource("LabelSettings_7axlu") script = ExtResource("77_ubijs") locale = SubResource("Resource_8imgn") fontSize = SubResource("Resource_p54pa") @@ -3773,7 +3616,7 @@ offset_right = 40.0 offset_bottom = 27.0 pivot_offset = Vector2(20, 13.5) text = "Quit" -label_settings = SubResource("LabelSettings_frwbc") +label_settings = SubResource("LabelSettings_i5utj") script = ExtResource("77_ubijs") locale = SubResource("Resource_btbfg") metadata/_custom_type_script = "uid://rqs2m0u6yvvf" @@ -3814,7 +3657,7 @@ offset_right = 159.0 offset_bottom = 27.0 pivot_offset = Vector2(79.5, 13.5) text = "Sword Animation" -label_settings = SubResource("LabelSettings_w6tyf") +label_settings = SubResource("LabelSettings_22k1k") script = ExtResource("77_ubijs") locale = SubResource("Resource_qiqbh") metadata/_custom_type_script = "uid://rqs2m0u6yvvf" @@ -3855,7 +3698,7 @@ offset_right = 48.0 offset_bottom = 27.0 pivot_offset = Vector2(24, 13.5) text = "Jump" -label_settings = SubResource("LabelSettings_63qv8") +label_settings = SubResource("LabelSettings_hpfyh") script = ExtResource("77_ubijs") locale = SubResource("Resource_y44jo") metadata/_custom_type_script = "uid://rqs2m0u6yvvf" @@ -3896,7 +3739,7 @@ offset_right = 73.0 offset_bottom = 27.0 pivot_offset = Vector2(36.5, 13.5) text = "Interact" -label_settings = SubResource("LabelSettings_gxlxg") +label_settings = SubResource("LabelSettings_frwbc") script = ExtResource("77_ubijs") locale = SubResource("Resource_t5au6") metadata/_custom_type_script = "uid://rqs2m0u6yvvf" @@ -4176,50 +4019,50 @@ transform = Transform3D(-0.9986062, 0, -0.0527471, 0, 1, 0, 0.0527471, 0, -0.998 transform = Transform3D(-0.7727, 0, -1.1667446e-07, 0, 0.7727, 0, 1.1667446e-07, 0, -0.7727, 0, 0.1585, 0) [node name="GeneralSkeleton" parent="CharacterController/Graphics/Hoody Hood/Rig_Medium" index="0"] -bones/1/position = Vector3(0, 0.3844856, 0) -bones/1/rotation = Quaternion(0.0042527714, 0.04315747, 0.00018371429, 0.99905926) +bones/1/position = Vector3(0, 0.3901653, 0) +bones/1/rotation = Quaternion(0.0011011867, 0.043157846, 4.757177e-05, 0.99906766) bones/1/scale = Vector3(0.99999994, 1, 0.99999994) -bones/2/rotation = Quaternion(-0.0703604, 0.094814956, 0.99125934, -0.058860127) +bones/2/rotation = Quaternion(-0.069685765, 0.07367776, 0.9930822, -0.05918906) bones/2/scale = Vector3(0.9999999, 0.9999998, 0.9999996) -bones/3/rotation = Quaternion(-1.642021e-07, 0.97400683, -0.22651902, -2.3494344e-08) +bones/3/rotation = Quaternion(-1.2760377e-07, 0.9841306, -0.17744571, -1.5287588e-08) bones/3/scale = Vector3(1.0000004, 0.9999996, 0.9999999) -bones/4/rotation = Quaternion(0.010511483, 0.60119766, -0.78970546, 0.12172243) +bones/4/rotation = Quaternion(0.015312845, 0.6261743, -0.7700994, 0.12090643) bones/4/scale = Vector3(1.0000004, 0.9999994, 1.000001) -bones/5/rotation = Quaternion(8.749161e-07, 1, 0.00030764937, 6.0895593e-07) +bones/5/rotation = Quaternion(-4.729886e-06, 1, 0.0002805024, -3.4116802e-06) bones/5/scale = Vector3(1.0000001, 1.0000013, 0.9999986) -bones/6/rotation = Quaternion(-0.03154476, 0.070038654, 0.99657875, 0.03050204) +bones/6/rotation = Quaternion(-0.031900227, 0.049408603, 0.99783844, 0.029322442) bones/6/scale = Vector3(0.9999999, 0.9999999, 0.9999996) -bones/7/rotation = Quaternion(1.9636886e-07, 0.9714193, -0.23737024, 3.0116507e-08) +bones/7/rotation = Quaternion(1.544996e-07, 0.98205423, -0.18859926, 2.0415198e-08) bones/7/scale = Vector3(0.99999994, 0.9999994, 0.9999997) -bones/8/rotation = Quaternion(-0.041099228, 0.5739437, -0.81080157, -0.107240416) +bones/8/rotation = Quaternion(-0.04497423, 0.59989446, -0.79179466, -0.10566644) bones/8/scale = Vector3(0.99999976, 0.9999993, 1.000001) bones/9/rotation = Quaternion(7.434201e-05, 1, 0.00034067035, 5.3566793e-05) bones/9/scale = Vector3(1.0000002, 1.0000015, 0.9999982) -bones/10/rotation = Quaternion(0.012118974, 1.8316222e-09, 0.0010489913, 0.9999261) +bones/10/rotation = Quaternion(0.0030550272, 1.8111497e-09, 0.00026443633, 0.9999953) bones/10/scale = Vector3(1.0000001, 1, 1.0000001) -bones/11/rotation = Quaternion(-0.005717461, 4.46736e-09, -0.00049489044, 0.9999836) -bones/12/rotation = Quaternion(-0.015675489, -0.031337887, -0.0008629567, 0.99938565) +bones/11/rotation = Quaternion(0.0022551394, 2.8531157e-09, 0.00019519978, 0.9999975) +bones/12/rotation = Quaternion(-0.0052811713, -0.031341314, -0.00029073664, 0.9994948) bones/12/scale = Vector3(0.99999994, 1, 1) -bones/13/rotation = Quaternion(0.77276397, 0.3184724, -0.5361067, 0.11832531) +bones/13/rotation = Quaternion(0.77876115, 0.30721626, -0.53162175, 0.12855928) bones/13/scale = Vector3(0.99999994, 0.99999964, 1.0000001) -bones/14/rotation = Quaternion(0.2306522, -0.6684306, 0.23065202, 0.66843086) +bones/14/rotation = Quaternion(0.22030735, -0.6719112, 0.22030735, 0.6719113) bones/14/scale = Vector3(1, 0.99999994, 1.0000001) bones/15/rotation = Quaternion(6.030765e-08, 0.70710677, -2.3986061e-08, 0.70710677) bones/15/scale = Vector3(1.0000001, 1, 1) -bones/16/rotation = Quaternion(0.17852141, 0.8953555, 0.22034976, 0.34338695) +bones/16/rotation = Quaternion(0.18317544, 0.8933918, 0.22163484, 0.34521875) bones/16/scale = Vector3(0.9999994, 0.9999993, 0.9999999) bones/17/position = Vector3(5.1376087e-10, 0.09612512, -0.0575) -bones/17/rotation = Quaternion(0.0023949714, 0.0023949798, -0.6982575, 0.71583873) -bones/18/rotation = Quaternion(0.7387045, -0.36493853, 0.5645399, 0.049297687) +bones/17/rotation = Quaternion(0.0006150109, 0.00061499974, -0.7048456, 0.7093602) +bones/18/rotation = Quaternion(0.7451951, -0.35638484, 0.56048125, 0.059455283) bones/18/scale = Vector3(0.99999994, 0.99999946, 1.0000001) -bones/19/rotation = Quaternion(0.23986395, 0.66518056, -0.23986377, 0.6651808) +bones/19/rotation = Quaternion(0.23220101, 0.6678942, -0.23220083, 0.6678943) bones/19/scale = Vector3(1.0000001, 0.9999999, 1.0000001) bones/20/rotation = Quaternion(1.6763806e-08, -0.70710677, -1.6763806e-08, 0.70710677) bones/20/scale = Vector3(0.99999994, 0.99999994, 1) -bones/21/rotation = Quaternion(-0.13172698, 0.8910991, 0.2107397, -0.3797095) +bones/21/rotation = Quaternion(-0.13815045, 0.8884321, 0.2119508, -0.38298815) bones/21/scale = Vector3(0.99999905, 0.99999905, 1) bones/22/position = Vector3(-1.5415006e-08, 0.096125185, -0.0575) -bones/22/rotation = Quaternion(0.0023949714, -0.0023949798, 0.6982575, 0.71583873) +bones/22/rotation = Quaternion(0.0006150109, -0.00061499974, 0.7048456, 0.7093602) bones/22/scale = Vector3(1, 1.0000001, 1) [node name="RogueHooded_ArmLeft" parent="CharacterController/Graphics/Hoody Hood/Rig_Medium/GeneralSkeleton" index="0"] @@ -4250,7 +4093,7 @@ layers = 2 surface_material_override/0 = ExtResource("106_oi8o8") [node name="BoneAttachment3D" parent="CharacterController/Graphics/Hoody Hood/Rig_Medium/GeneralSkeleton" index="8"] -transform = Transform3D(0.52844673, -0.3696764, 0.7642535, 0.07483588, -0.8764272, -0.47568262, 0.8456616, 0.3085668, -0.4354803, -0.4524379, 0.6908758, 0.042215638) +transform = Transform3D(0.5374286, -0.36845592, 0.7585582, 0.08326266, -0.87192243, -0.48251188, 0.83918875, 0.32247555, -0.43791792, -0.45242795, 0.6947015, 0.042391516) [node name="sword_2handed_color" parent="CharacterController/Graphics/Hoody Hood/Rig_Medium/GeneralSkeleton/BoneAttachment3D/sword_2handed_color2" index="0"] layers = 2 @@ -8641,82 +8484,82 @@ metadata/_custom_type_script = "uid://dma6i63t4myyu" [node name="Pole" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.24745186, -1.2769699e-07, 0.9689002, 7.1054274e-15, 1, 1.3179582e-07, -0.9689002, -3.2613112e-08, 0.24745186, 2.6126552, 0, 1.3397675) -[node name="@StaticBody3D@56924" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362241" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.24746443, -1.2769499e-07, 0.968897, -2.131628e-14, 1, 1.3179418e-07, -0.968897, -3.2614395e-08, 0.24746443, 1.6434426, -1.3183649e-07, 1.092226) -[node name="@StaticBody3D@56925" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362242" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.24746166, -1.2769418e-07, 0.9688977, 4.2632564e-14, 1, 1.3179324e-07, -0.9688977, -3.2613734e-08, 0.24746166, 0.676497, -2.6336443e-07, 0.84526443) -[node name="@StaticBody3D@56926" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362243" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.24745981, -1.2769517e-07, 0.9688982, -1.2789769e-13, 1, 1.3179424e-07, -0.9688982, -3.26139e-08, 0.24745981, -0.29044628, -3.948926e-07, 0.59830284) -[node name="@StaticBody3D@56927" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362244" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.24745889, -1.2769425e-07, 0.9688984, 9.2370556e-14, 1, 1.317932e-07, -0.9688984, -3.261331e-08, 0.24745889, -1.2573905, -5.2642076e-07, 0.35134315) -[node name="@StaticBody3D@56928" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362245" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.24746443, -1.2769344e-07, 0.968897, 2.8421706e-14, 1, 1.3179259e-07, -0.968897, -3.261395e-08, 0.24746443, -2.225751, -6.581413e-07, 0.10402107) -[node name="@StaticBody3D@56929" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362246" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.24746443, -1.2769432e-07, 0.968897, 2.131628e-14, 1, 1.317935e-07, -0.968897, -3.261418e-08, 0.24746443, -3.1941638, -7.898693e-07, -0.14331627) -[node name="@StaticBody3D@56930" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362247" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.24746443, -1.2769432e-07, 0.968897, 2.131628e-14, 1, 1.317935e-07, -0.968897, -3.261418e-08, 0.24746443, -4.162578, -9.2159735e-07, -0.3906517) -[node name="@StaticBody3D@56931" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362248" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.2474582, -1.2769503e-07, 0.9688986, 4.9737995e-14, 1, 1.31794e-07, -0.9688986, -3.2613457e-08, 0.2474582, -5.1309924, -1.0533254e-06, -0.63798714) -[node name="@StaticBody3D@56932" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362249" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.24746086, -1.2769425e-07, 0.9688979, -4.2632568e-14, 1, 1.3179331e-07, -0.9688979, -3.261373e-08, 0.24746086, -6.100232, -1.1851655e-06, -0.8855362) -[node name="@StaticBody3D@56933" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362250" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.2474582, -1.2769455e-07, 0.9688986, -4.2632568e-14, 1, 1.3179353e-07, -0.9688986, -3.2613432e-08, 0.2474582, -7.0703135, -1.3171202e-06, -1.133297) -[node name="@StaticBody3D@56934" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362251" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.9935537, -1.3427036e-08, -0.11336251, -4.2632564e-14, 1, -1.1844373e-07, 0.11336251, 1.17680216e-07, 0.9935537, -7.913049, -1.4176521e-06, -1.4884872) -[node name="@StaticBody3D@56935" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362252" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.97000825, -3.331323e-08, -0.24307209, -2.1316282e-14, 1, -1.3705092e-07, 0.24307209, 1.3294053e-07, 0.97000825, -7.6884084, -1.2831135e-06, -2.4631443) -[node name="@StaticBody3D@56936" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362253" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.9423538, -4.9882896e-08, -0.3346182, 5.6843426e-14, 1, -1.490739e-07, 0.3346182, 1.4048034e-07, 0.9423538, -7.399719, -1.1379084e-06, -3.4408388) [node name="Segment" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.9692128, -1.2769453e-07, 0.2474621, -1.3183652e-07, 1, 0, -0.2475426, -3.261393e-08, -0.9688976, 2.1280484, 0.56389993, 1.2159958) -[node name="@StaticBody3D@56937" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362254" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.966945, -1.2769459e-07, 0.24746025, -1.3152795e-07, 1, 3.5527137e-15, -0.24696143, -3.261368e-08, -0.96889806, 1.1599689, 0.5638998, 0.9687443) -[node name="@StaticBody3D@56938" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362255" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.9669439, -1.2769499e-07, 0.24745955, -1.3152817e-07, 1, -5.516598e-15, -0.2469604, -3.261369e-08, -0.96889824, 0.19302511, 0.56389964, 0.7217846) -[node name="@StaticBody3D@56939" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362256" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.9669439, -1.2769499e-07, 0.24745955, -1.3152817e-07, 1, -5.516598e-15, -0.2469604, -3.261369e-08, -0.96889824, -0.77391815, 0.5638995, 0.474823) -[node name="@StaticBody3D@56940" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362257" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.9683606, -1.2769462e-07, 0.24745978, -1.3172051e-07, 1, 0, -0.24732248, -3.2613627e-08, -0.9688982, -1.741571, 0.5638994, 0.22768211) -[node name="@StaticBody3D@56941" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362258" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.96841353, -1.2769495e-07, 0.24745978, -1.3172806e-07, 1, -3.552714e-15, -0.247336, -3.2613713e-08, -0.9688982, -2.709958, 0.5638993, -0.019647598) -[node name="@StaticBody3D@56942" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362259" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.9684139, -1.276949e-07, 0.24745978, -1.3172806e-07, 1, 3.552714e-15, -0.24733609, -3.2613695e-08, -0.9688982, -3.678372, 0.56389916, -0.26698303) -[node name="@StaticBody3D@56943" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362260" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.96841407, -1.2769493e-07, 0.24745908, -1.3172806e-07, 1, -3.5527137e-15, -0.24733539, -3.261361e-08, -0.96889836, -4.6467853, 0.563899, -0.5143204) -[node name="@StaticBody3D@56944" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362261" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.9692401, -1.276945e-07, 0.24746093, -1.3184012e-07, 1, 3.552714e-15, -0.24754834, -3.2613755e-08, -0.9688979, -5.615612, 0.56389886, -0.7617626) -[node name="@StaticBody3D@56945" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362262" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.97008145, -1.2769478e-07, 0.24745955, -1.3195474e-07, 1, 1.5888332e-15, -0.24776174, -3.2613634e-08, -0.96889824, -6.585273, 0.56389874, -1.0094166) -[node name="@StaticBody3D@56946" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362263" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(-0.842736, -1.0129791e-07, 0.38838512, -1.0053193e-07, 1, 0, -0.3551895, -4.2694214e-08, -0.92149717, -7.491682, 0.5638986, -1.3108921) -[node name="@StaticBody3D@56947" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362264" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.22463985, -3.0210007e-08, 0.97445273, 1.3453861e-07, 1, -5.3290705e-15, -0.9746579, 1.3107392e-07, 0.22459257, -7.8007293, 0.5638986, -1.9758167) -[node name="@StaticBody3D@56948" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362265" type="StaticBody3D" parent="Level/City/Fence/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.28869, -4.033704e-08, 0.959064, 1.4520519e-07, 1, -7.797712e-15, -0.97769296, 1.366076e-07, 0.2831893, -7.544064, 0.5638988, -2.951992) [node name="Fence2" type="Node3D" parent="Level/City"] @@ -8794,82 +8637,82 @@ metadata/_custom_type_script = "uid://dma6i63t4myyu" [node name="Pole" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.9716608, -1.2938479e-07, -0.23637955, 2.557954e-13, 1, -5.473593e-07, 0.23637955, 5.3184755e-07, 0.9716608, -6.746191, -1.6073213e-06, -6.1097593) -[node name="@StaticBody3D@56949" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362266" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.97166055, -1.2938537e-07, -0.23638058, -2.2737368e-13, 1, -5.4736137e-07, 0.23638058, 5.318495e-07, 0.97166055, -6.5062113, -1.0516269e-06, -7.0962143) -[node name="@StaticBody3D@56950" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362267" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(0.7057637, -3.8093032e-07, -0.70844734, -9.947598e-14, 1, -5.3769753e-07, 0.70844734, 3.7948746e-07, 0.7057637, -6.269187, -5.027714e-07, -8.070531) -[node name="@StaticBody3D@56951" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362268" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.2779772, -1.07419545e-07, -0.9605877, -2.4868997e-14, 1, -1.1182689e-07, 0.9605877, -3.1085303e-08, -0.2779772, -5.321661, -3.698044e-07, -7.841668) -[node name="@StaticBody3D@56952" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362269" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.2780144, -1.0739825e-07, -0.9605769, 2.4868997e-14, 1, -1.11805996e-07, 0.9605769, -3.10837e-08, -0.2780144, -4.361126, -2.5798363e-07, -7.5637054) -[node name="@StaticBody3D@56953" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362270" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.28213567, -1.0498671e-07, -0.95937455, 1.4210856e-14, 1, -1.0943246e-07, 0.95937455, -3.0874816e-08, -0.28213567, -3.4034705, -1.4845864e-07, -7.282652) -[node name="@StaticBody3D@56954" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362271" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.28213567, -1.04986064e-07, -0.95937455, 1.0658142e-14, 1, -1.0943178e-07, 0.95937455, -3.087462e-08, -0.28213567, -2.446238, -3.9270162e-08, -7.001148) -[node name="@StaticBody3D@56955" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362272" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.2821367, -1.0498687e-07, -0.9593742, -2.4868997e-14, 1, -1.0943265e-07, 0.9593742, -3.0874943e-08, -0.2821367, -1.4890046, 6.991854e-08, -6.7196436) -[node name="@StaticBody3D@56956" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362273" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.28213543, -1.04986704e-07, -0.9593746, -3.552714e-15, 1, -1.0943244e-07, 0.9593746, -3.0874766e-08, -0.28213543, -0.5317712, 1.7910702e-07, -6.438136) -[node name="@StaticBody3D@56957" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362274" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.28432858, -1.0370141e-07, -0.9587269, 0, 1, -1.0816575e-07, 0.9587269, -3.0754613e-08, -0.28432858, 0.4246149, 2.8763316e-07, -6.1557493) -[node name="@StaticBody3D@56958" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362275" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.2843311, -1.03701844e-07, -0.95872617, -2.842171e-14, 1, -1.08166276e-07, 0.95872617, -3.075501e-08, -0.2843311, 1.3800678, 3.9542988e-07, -5.872389) -[node name="@StaticBody3D@56959" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362276" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.28432858, -1.0370186e-07, -0.9587269, -3.5527137e-15, 1, -1.0816621e-07, 0.9587269, -3.075474e-08, -0.28432858, 2.3355222, 5.0322683e-07, -5.5890284) -[node name="@StaticBody3D@56960" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362277" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.2861358, -1.0264401e-07, -0.9581891, 1.7763568e-14, 1, -1.0712292e-07, 0.9581891, -3.065172e-08, -0.2861358, 3.2909818, 6.109675e-07, -5.3055525) -[node name="@StaticBody3D@56961" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] +[node name="@StaticBody3D@362278" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("129_y6wps")] transform = Transform3D(-0.29183987, -9.930432e-08, -0.9564672, 7.1054274e-15, 1, -1.0382407e-07, 0.9564672, -3.030001e-08, -0.29183987, 4.248389, 7.1712225e-07, -5.017887) [node name="Segment" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.23997897, -1.2938501e-07, 0.97166073, 5.5569444e-07, 1, 0, -0.986455, 5.318487e-07, 0.2363799, -6.6262016, 0.5638987, -6.6029873) -[node name="@StaticBody3D@56962" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362279" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.23702416, -1.2938405e-07, 0.9716611, 5.4885555e-07, 1, 4.2632568e-14, -0.97431606, 5.3184834e-07, 0.23637828, -6.3876996, 0.5638992, -7.583372) -[node name="@StaticBody3D@56963" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362280" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.94752634, -1.3259518e-07, -0.23478378, 1.3296702e-07, 1, -3.552714e-15, 0.22886103, -3.2026406e-08, 0.9720476, -5.7954245, 0.5638996, -7.9561005) -[node name="@StaticBody3D@56964" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362281" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.96053535, -1.0741943e-07, -0.27797857, 1.1182079e-07, 1, 0, 0.27796355, -3.1085463e-08, 0.96058726, -4.8413935, 0.5638997, -7.702688) -[node name="@StaticBody3D@56965" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362282" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.95765525, -1.0529848e-07, -0.28160286, 1.0952499e-07, 1, 1.2119149e-15, 0.28105235, -3.0902964e-08, 0.95953107, -3.8822982, 0.5638998, -7.4231787) -[node name="@StaticBody3D@56966" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362283" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.9572329, -1.0498706e-07, -0.28213513, 1.091885e-07, 1, -5.037709e-15, 0.28150526, -3.0874833e-08, 0.95937467, -2.9248548, 0.5638999, -7.141901) -[node name="@StaticBody3D@56967" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362284" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.9572333, -1.0498726e-07, -0.2821349, 1.0918874e-07, 1, 1.7763568e-15, 0.28150514, -3.087487e-08, 0.9593747, -1.9676208, 0.5639, -6.8603954) -[node name="@StaticBody3D@56968" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362285" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.9572333, -1.0498704e-07, -0.2821349, 1.0918851e-07, 1, 1.7763568e-15, 0.28150514, -3.0874805e-08, 0.9593747, -1.0103884, 0.5639001, -6.578889) -[node name="@StaticBody3D@56969" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362286" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.95638615, -1.0437552e-07, -0.28318027, 1.0852614e-07, 1, 3.5527137e-15, 0.2823888, -3.0818597e-08, 0.9590667, -0.053578377, 0.56390023, -6.2969437) -[node name="@StaticBody3D@56970" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362287" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.955453, -1.0370163e-07, -0.28433084, 1.0779675e-07, 1, 3.5527137e-15, 0.2833601, -3.0754947e-08, 0.9587262, 0.90234137, 0.56390035, -6.0140676) -[node name="@StaticBody3D@56971" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362288" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.95545405, -1.037017e-07, -0.2843308, 1.0779695e-07, 1, 1.776357e-15, 0.28336036, -3.075496e-08, 0.9587262, 1.8577943, 0.5639005, -5.730709) -[node name="@StaticBody3D@56972" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362289" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.9554604, -1.03640176e-07, -0.2844354, 1.0774068e-07, 1, -3.552714e-15, 0.28347567, -3.074901e-08, 0.95869523, 2.813252, 0.56390053, -5.4472904) -[node name="@StaticBody3D@56973" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] +[node name="@StaticBody3D@362290" type="StaticBody3D" parent="Level/City/Fence2/Output" instance=ExtResource("128_gla4y")] transform = Transform3D(0.957406, -1.0169653e-07, -0.28775427, 1.06154744e-07, 1, -1.7763568e-15, 0.28766462, -3.0556e-08, 0.9577043, 3.7696853, 0.56390065, -5.1617203) [node name="Presents" type="Node" parent="Level"] diff --git a/Utilities/PostProcessingHack.cs b/Utilities/PostProcessingHack.cs index 0be2382..a5dd3ab 100644 --- a/Utilities/PostProcessingHack.cs +++ b/Utilities/PostProcessingHack.cs @@ -9,6 +9,9 @@ public partial class PostProcessingHack : Action [Export] public WorldEnvironment environment; + [Export] + public CompositorEffectOwner owner; + protected override void _OnTrigger() { ApplyHack(); @@ -25,8 +28,32 @@ public partial class PostProcessingHack : Action { godotArray.Add( null ); continue; + } + + var effect = compositorEffects[ i ]; + + if ( effect.Enabled && effect is RokojoriCompositorEffect re ) + { + if ( re.compositorEffectID == null ) + { + godotArray.Add( (CompositorEffect) effect.Duplicate() ); + } + else if ( re.compositorEffectID.owner == owner ) + { + godotArray.Add( (CompositorEffect) effect.Duplicate() ); + } + else + { + godotArray.Add( compositorEffects[ i ] ); + } + + } - godotArray.Add( (CompositorEffect) compositorEffects[ i ].Duplicate() ); + else + { + godotArray.Add( compositorEffects[ i ] ); + } + } environment.Compositor.CompositorEffects = godotArray; @@ -36,6 +63,7 @@ public partial class PostProcessingHack : Action int retriggerFramesCount = 60 * 5; int framesCounter = 0; + public override void _Process( double delta ) { if ( ! Engine.IsEditorHint() ) diff --git a/VFX/Action FX Compositor Effect Layer.tres b/VFX/Action FX Compositor Effect Layer.tres new file mode 100644 index 0000000..2b334f5 --- /dev/null +++ b/VFX/Action FX Compositor Effect Layer.tres @@ -0,0 +1,8 @@ +[gd_resource type="Resource" script_class="CompositorEffectLayer" load_steps=2 format=3 uid="uid://bwhnq7w0tpgv"] + +[ext_resource type="Script" uid="uid://b2ik21q1iwjvo" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/CompositorEffectLayer.cs" id="1_mgeu5"] + +[resource] +script = ExtResource("1_mgeu5") +layerName = "Action FX" +metadata/_custom_type_script = "uid://b2ik21q1iwjvo" diff --git a/VFX/Compositor Effects/Digital Compression/Digital Compression - Color Quantization.tres b/VFX/Compositor Effects/Digital Compression/Digital Compression - Color Quantization.tres new file mode 100644 index 0000000..6c1d2aa --- /dev/null +++ b/VFX/Compositor Effects/Digital Compression/Digital Compression - Color Quantization.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="RokojoriCompositorEffectID" load_steps=2 format=3 uid="uid://f7pv1uxpj076"] + +[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="1_ohnjb"] + +[resource] +script = ExtResource("1_ohnjb") +metadata/_custom_type_script = "uid://comuvej4dr22k" diff --git a/VFX/Compositor Effects/Digital Compression/Digital Compression - Hue Pixelation.tres b/VFX/Compositor Effects/Digital Compression/Digital Compression - Hue Pixelation.tres new file mode 100644 index 0000000..10b9d0b --- /dev/null +++ b/VFX/Compositor Effects/Digital Compression/Digital Compression - Hue Pixelation.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="RokojoriCompositorEffectID" load_steps=2 format=3 uid="uid://teubhk5euwtd"] + +[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="1_b4wvu"] + +[resource] +script = ExtResource("1_b4wvu") +metadata/_custom_type_script = "uid://comuvej4dr22k" diff --git a/VFX/Compositor Effects/Digital Compression/Digital Compression - RGB Pixelation.tres b/VFX/Compositor Effects/Digital Compression/Digital Compression - RGB Pixelation.tres new file mode 100644 index 0000000..9209670 --- /dev/null +++ b/VFX/Compositor Effects/Digital Compression/Digital Compression - RGB Pixelation.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="RokojoriCompositorEffectID" load_steps=2 format=3 uid="uid://c13whvtucws14"] + +[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="1_203gg"] + +[resource] +script = ExtResource("1_203gg") +metadata/_custom_type_script = "uid://comuvej4dr22k" diff --git a/VFX/Compositor Effects/Impact Wave/Impact Wave - Ellipse.tres b/VFX/Compositor Effects/Impact Wave/Impact Wave - Ellipse.tres new file mode 100644 index 0000000..a94df35 --- /dev/null +++ b/VFX/Compositor Effects/Impact Wave/Impact Wave - Ellipse.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="RokojoriCompositorEffectID" load_steps=2 format=3 uid="uid://b5bj0v0c15tbf"] + +[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="1_ghli6"] + +[resource] +script = ExtResource("1_ghli6") +metadata/_custom_type_script = "uid://comuvej4dr22k" diff --git a/VFX/Compositor Effects/Star Glow/good-graphics.png b/VFX/Compositor Effects/Star Glow/good-graphics.png new file mode 100644 index 0000000..91c06a1 Binary files /dev/null and b/VFX/Compositor Effects/Star Glow/good-graphics.png differ diff --git a/VFX/Compositor Effects/Star Glow/good-graphics.png.import b/VFX/Compositor Effects/Star Glow/good-graphics.png.import new file mode 100644 index 0000000..ee80bd9 --- /dev/null +++ b/VFX/Compositor Effects/Star Glow/good-graphics.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://v7vleatgy0k2" +path.s3tc="res://.godot/imported/good-graphics.png-212b2dc3fb2081f0e302a7c441a1e47f.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://VFX/Compositor Effects/Star Glow/good-graphics.png" +dest_files=["res://.godot/imported/good-graphics.png-212b2dc3fb2081f0e302a7c441a1e47f.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/VFX/Compositor Effects/Star Glow/good-graphics.svg b/VFX/Compositor Effects/Star Glow/good-graphics.svg new file mode 100644 index 0000000..f3f52e4 --- /dev/null +++ b/VFX/Compositor Effects/Star Glow/good-graphics.svg @@ -0,0 +1,356 @@ + + + +GOOD GRAPHICSGOOD GRAPHICSGOOD GRAPHICS diff --git a/VFX/Compositor Effects/Star Glow/good-graphics.svg.import b/VFX/Compositor Effects/Star Glow/good-graphics.svg.import new file mode 100644 index 0000000..e939e98 --- /dev/null +++ b/VFX/Compositor Effects/Star Glow/good-graphics.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3f5lu0mtsuyi" +path="res://.godot/imported/good-graphics.svg-1661aa170016732c7e98aee6aa90bbe2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://VFX/Compositor Effects/Star Glow/good-graphics.svg" +dest_files=["res://.godot/imported/good-graphics.svg-1661aa170016732c7e98aee6aa90bbe2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/VFX/Compositor Effects/Star Glow/star-glow-blur.png b/VFX/Compositor Effects/Star Glow/star-glow-blur.png new file mode 100644 index 0000000..4730607 Binary files /dev/null and b/VFX/Compositor Effects/Star Glow/star-glow-blur.png differ diff --git a/VFX/Compositor Effects/Star Glow/star-glow-blur.png.import b/VFX/Compositor Effects/Star Glow/star-glow-blur.png.import new file mode 100644 index 0000000..d4c30f6 --- /dev/null +++ b/VFX/Compositor Effects/Star Glow/star-glow-blur.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqaqvhmyuo56d" +path="res://.godot/imported/star-glow-blur.png-15ff384d308fdce5022977501d7756dc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://VFX/Compositor Effects/Star Glow/star-glow-blur.png" +dest_files=["res://.godot/imported/star-glow-blur.png-15ff384d308fdce5022977501d7756dc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/VFX/Compositor Effects/Star Glow/star-glow.png b/VFX/Compositor Effects/Star Glow/star-glow.png new file mode 100644 index 0000000..8aa4fb4 Binary files /dev/null and b/VFX/Compositor Effects/Star Glow/star-glow.png differ diff --git a/VFX/Compositor Effects/Star Glow/star-glow.png.import b/VFX/Compositor Effects/Star Glow/star-glow.png.import new file mode 100644 index 0000000..e0f278c --- /dev/null +++ b/VFX/Compositor Effects/Star Glow/star-glow.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fjpvfd54a04g" +path="res://.godot/imported/star-glow.png-61f0458024aeba1668f3516b3db84782.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://VFX/Compositor Effects/Star Glow/star-glow.png" +dest_files=["res://.godot/imported/star-glow.png-61f0458024aeba1668f3516b3db84782.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/VFX/Compositor Effects/Star Glow/star-glow.svg b/VFX/Compositor Effects/Star Glow/star-glow.svg new file mode 100644 index 0000000..2bfb3be --- /dev/null +++ b/VFX/Compositor Effects/Star Glow/star-glow.svg @@ -0,0 +1,6437 @@ + + + + diff --git a/VFX/Compositor Effects/Star Glow/star-glow.svg.import b/VFX/Compositor Effects/Star Glow/star-glow.svg.import new file mode 100644 index 0000000..db10f2e --- /dev/null +++ b/VFX/Compositor Effects/Star Glow/star-glow.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://du2h6vmq7085e" +path="res://.godot/imported/star-glow.svg-fbf75c73d9067d86a237136327eba029.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://VFX/Compositor Effects/Star Glow/star-glow.svg" +dest_files=["res://.godot/imported/star-glow.svg-fbf75c73d9067d86a237136327eba029.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/VFX/Compositor Effects/Tube TV/Tube TV - Color Correction.tres b/VFX/Compositor Effects/Tube TV/Tube TV - Color Correction.tres new file mode 100644 index 0000000..0f4e37b --- /dev/null +++ b/VFX/Compositor Effects/Tube TV/Tube TV - Color Correction.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="RokojoriCompositorEffectID" load_steps=2 format=3 uid="uid://cgdjoy7ae4trj"] + +[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="1_3bivo"] + +[resource] +script = ExtResource("1_3bivo") +metadata/_custom_type_script = "uid://comuvej4dr22k" diff --git a/VFX/Compositor Effects/Tube TV/Tube TV - Distortion Line 1.tres b/VFX/Compositor Effects/Tube TV/Tube TV - Distortion Line 1.tres new file mode 100644 index 0000000..b156eea --- /dev/null +++ b/VFX/Compositor Effects/Tube TV/Tube TV - Distortion Line 1.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="RokojoriCompositorEffectID" load_steps=2 format=3 uid="uid://behopr24y6b2t"] + +[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="1_b8agv"] + +[resource] +script = ExtResource("1_b8agv") +metadata/_custom_type_script = "uid://comuvej4dr22k" diff --git a/VFX/Compositor Effects/Tube TV/Tube TV - Distortion Line 2.tres.tres b/VFX/Compositor Effects/Tube TV/Tube TV - Distortion Line 2.tres.tres new file mode 100644 index 0000000..0e51771 --- /dev/null +++ b/VFX/Compositor Effects/Tube TV/Tube TV - Distortion Line 2.tres.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="RokojoriCompositorEffectID" load_steps=2 format=3 uid="uid://f7bmetg7tfqu"] + +[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="1_vm63j"] + +[resource] +script = ExtResource("1_vm63j") +metadata/_custom_type_script = "uid://comuvej4dr22k" diff --git a/VFX/Compositor Effects/Tube TV/Tube TV - Edge Distortion.tres b/VFX/Compositor Effects/Tube TV/Tube TV - Edge Distortion.tres new file mode 100644 index 0000000..4dab30d --- /dev/null +++ b/VFX/Compositor Effects/Tube TV/Tube TV - Edge Distortion.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="RokojoriCompositorEffectID" load_steps=2 format=3 uid="uid://d1c5ly8nkefkh"] + +[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="1_lcyg7"] + +[resource] +script = ExtResource("1_lcyg7") +metadata/_custom_type_script = "uid://comuvej4dr22k" diff --git a/VFX/Compositor Effects/Tube TV/Tube TV - Edge Tint.tres b/VFX/Compositor Effects/Tube TV/Tube TV - Edge Tint.tres new file mode 100644 index 0000000..ebda4c2 --- /dev/null +++ b/VFX/Compositor Effects/Tube TV/Tube TV - Edge Tint.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="RokojoriCompositorEffectID" load_steps=2 format=3 uid="uid://cisg3vmtgp8ve"] + +[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="1_q6s35"] + +[resource] +script = ExtResource("1_q6s35") +metadata/_custom_type_script = "uid://comuvej4dr22k" diff --git a/VFX/Compositor Effects/Tube TV/Tube TV - ScanLine.tres b/VFX/Compositor Effects/Tube TV/Tube TV - ScanLine.tres new file mode 100644 index 0000000..f6834e9 --- /dev/null +++ b/VFX/Compositor Effects/Tube TV/Tube TV - ScanLine.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="RokojoriCompositorEffectID" load_steps=2 format=3 uid="uid://o8lj2vksrgo4"] + +[ext_resource type="Script" uid="uid://comuvej4dr22k" path="res://addons/rokojori_action_library/Runtime/Rendering/Compositor/CompositorEffectReferences/RokojoriCompositorEffectID.cs" id="1_m6mna"] + +[resource] +script = ExtResource("1_m6mna") +metadata/_custom_type_script = "uid://comuvej4dr22k" diff --git a/addons/compositor-lens-flare/downsample.glsl b/addons/compositor-lens-flare/downsample.glsl new file mode 100644 index 0000000..9eac7b6 --- /dev/null +++ b/addons/compositor-lens-flare/downsample.glsl @@ -0,0 +1,41 @@ +#[compute] +#version 450 + +// Adapted from https://john-chapman-graphics.blogspot.com/2013/02/pseudo-lens-flare.html + +// Invocations in the (x, y, z) dimension +layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(rgba16f, set = 0, binding = 0) uniform image2D color_image; +layout(rgba16f, set = 1, binding = 0) uniform image2D output_image; + +// Our push constant +layout(push_constant, std430) uniform Params { + vec2 raster_size; + float scale; + float bias; + float desaturation; +} params; + +// The code we want to execute in each invocation +void main() { + ivec2 uv = ivec2(gl_GlobalInvocationID.xy); + ivec2 size = ivec2(params.raster_size); + + if (uv.x >= size.x || uv.y >= size.y) { + return; + } + + vec4 color = imageLoad(color_image, uv); + + vec3 scale = vec3(1.0) * params.scale; + vec3 bias = vec3(-1.0) * params.bias; + + color.rgb = max(vec3(0.0, 0.0, 0.0), color.rgb + bias) * scale; + + // Move each channel a bit towards the highest channel to desaturate while keeping darks + float highest_color = max(color.r, max(color.g, color.b)); + color.rgb = mix(color.rgb, vec3(highest_color), vec3(params.desaturation)); + + imageStore(output_image, uv, color); +} diff --git a/addons/compositor-lens-flare/downsample.glsl.import b/addons/compositor-lens-flare/downsample.glsl.import new file mode 100644 index 0000000..6a2279a --- /dev/null +++ b/addons/compositor-lens-flare/downsample.glsl.import @@ -0,0 +1,14 @@ +[remap] + +importer="glsl" +type="RDShaderFile" +uid="uid://dl8tsatdw7ylg" +path="res://.godot/imported/downsample.glsl-440ef8d666bfe0ff38a98dba9c03351a.res" + +[deps] + +source_file="res://addons/compositor-lens-flare/downsample.glsl" +dest_files=["res://.godot/imported/downsample.glsl-440ef8d666bfe0ff38a98dba9c03351a.res"] + +[params] + diff --git a/addons/compositor-lens-flare/gaussian_blur.glsl b/addons/compositor-lens-flare/gaussian_blur.glsl new file mode 100644 index 0000000..0f12282 --- /dev/null +++ b/addons/compositor-lens-flare/gaussian_blur.glsl @@ -0,0 +1,77 @@ +#[compute] +#version 450 + +// From https://github.com/BastiaanOlij/RERadialSunRays + +// Invocations in the (x, y, z) dimension +layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(rgba16f, set = 0, binding = 0) uniform restrict readonly image2D input_image; +layout(rgba16f, set = 1, binding = 0) uniform restrict writeonly image2D output_image; + +// Our push PushConstant +layout(push_constant, std430) uniform Params { + vec2 image_size; + vec2 blur_size; +} params; + +// Gaussian coefficients +const int M = 16; +const int N = 2 * M + 1; + +// sigma = 10 +const float coeffs[N] = float[N]( + 0.012318109844189502, + 0.014381474814203989, + 0.016623532195728208, + 0.019024086115486723, + 0.02155484948872149, + 0.02417948052890078, + 0.02685404941667096, + 0.0295279624870386, + 0.03214534135442581, + 0.03464682117793548, + 0.0369716985390341, + 0.039060328279673276, + 0.040856643282313365, + 0.04231065439216247, + 0.043380781642569775, + 0.044035873841196206, + 0.04425662519949865, + 0.044035873841196206, + 0.043380781642569775, + 0.04231065439216247, + 0.040856643282313365, + 0.039060328279673276, + 0.0369716985390341, + 0.03464682117793548, + 0.03214534135442581, + 0.0295279624870386, + 0.02685404941667096, + 0.02417948052890078, + 0.02155484948872149, + 0.019024086115486723, + 0.016623532195728208, + 0.014381474814203989, + 0.012318109844189502 +); + +// The code we want to execute in each invocation +void main() { + vec2 uv = vec2(gl_GlobalInvocationID.xy); + + // Just in case the effect_size size is not divisable by 8 + if ((uv.x >= params.image_size.x) || (uv.y >= params.image_size.y)) { + return; + } + + vec4 blurred = vec4(0.0); + float half_size = float(M); + + for (int i = 0; i < N; i ++) { + ivec2 uv_adj = ivec2(uv + (params.blur_size * (float(i) - half_size) / half_size)); + blurred += coeffs[i] * imageLoad(input_image, uv_adj).rgba; + } + + imageStore(output_image, ivec2(gl_GlobalInvocationID.xy), blurred); +} diff --git a/addons/compositor-lens-flare/gaussian_blur.glsl.import b/addons/compositor-lens-flare/gaussian_blur.glsl.import new file mode 100644 index 0000000..3f01fc4 --- /dev/null +++ b/addons/compositor-lens-flare/gaussian_blur.glsl.import @@ -0,0 +1,14 @@ +[remap] + +importer="glsl" +type="RDShaderFile" +uid="uid://u7ma88av4j7d" +path="res://.godot/imported/gaussian_blur.glsl-ae231c750f05d9216af6ba321c536d92.res" + +[deps] + +source_file="res://addons/compositor-lens-flare/gaussian_blur.glsl" +dest_files=["res://.godot/imported/gaussian_blur.glsl-ae231c750f05d9216af6ba321c536d92.res"] + +[params] + diff --git a/addons/compositor-lens-flare/lens-dirt.png b/addons/compositor-lens-flare/lens-dirt.png new file mode 100644 index 0000000..a65b14e Binary files /dev/null and b/addons/compositor-lens-flare/lens-dirt.png differ diff --git a/addons/compositor-lens-flare/lens-dirt.png.import b/addons/compositor-lens-flare/lens-dirt.png.import new file mode 100644 index 0000000..e3ad9bb --- /dev/null +++ b/addons/compositor-lens-flare/lens-dirt.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://detsilp12nioo" +path.s3tc="res://.godot/imported/lens-dirt.png-58b4cc5b654fba956851bc4f0ff8b21a.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/compositor-lens-flare/lens-dirt.png" +dest_files=["res://.godot/imported/lens-dirt.png-58b4cc5b654fba956851bc4f0ff8b21a.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/compositor-lens-flare/lens.glsl b/addons/compositor-lens-flare/lens.glsl new file mode 100644 index 0000000..355ccd4 --- /dev/null +++ b/addons/compositor-lens-flare/lens.glsl @@ -0,0 +1,79 @@ +#[compute] +#version 450 + +// Adapted from https://john-chapman-graphics.blogspot.com/2013/02/pseudo-lens-flare.html + +// Invocations in the (x, y, z) dimension +layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(rgba16f, set = 0, binding = 0) uniform image2D downsampled_image; +layout(rgba16f, set = 1, binding = 0) uniform image2D color_image; +layout(set = 2, binding = 0) uniform sampler2D lens_color_ramp; + +// Our push constant +layout(push_constant, std430) uniform Params { + vec2 raster_size; + int ghost_count; + float ghost_dispersal; + float ca_scale; + float halo_width; + float halo_weight_power; +} params; + +vec3 imageDistorted( + in ivec2 texcoord, + in vec2 direction, // direction of distortion + in vec3 distortion // per-channel distortion factor +) { + return vec3( + imageLoad(downsampled_image, texcoord + ivec2(direction * distortion.r)).r, + imageLoad(downsampled_image, texcoord + ivec2(direction * distortion.g)).g, + imageLoad(downsampled_image, texcoord + ivec2(direction * distortion.b)).b + ); +} + +// The code we want to execute in each invocation +void main() { + ivec2 uv = ivec2(gl_GlobalInvocationID.xy); + ivec2 size = ivec2(params.raster_size); + + if (uv.x >= size.x || uv.y >= size.y) { + return; + } + + vec4 color = vec4(0.0, 0.0, 0.0, 1.0); + + vec2 resolution = params.raster_size; + + vec2 texelSize = 1.0 / vec2(resolution); + + vec2 uv_norm = uv / resolution; + vec2 texcoord = vec2(1.0) - uv_norm; + + vec2 ghost_vec = (vec2(0.5) - texcoord) * params.ghost_dispersal; + + vec3 distortion = vec3(-1.0, 0.0, 1.0) * params.ca_scale; + vec2 direction = normalize(ghost_vec); + + vec3 result = vec3(0.0); + for (int i = 0; i < params.ghost_count; ++i) { + vec2 offset = fract(texcoord + ghost_vec * float(i)); + + float weight = length(vec2(0.5) - offset) / length(vec2(0.5)); + weight = pow(1.0 - weight, 2.0); + + result += imageDistorted(ivec2(offset * resolution), direction, distortion).rgb * (1.0 / weight); + } + + // sample halo: + vec2 haloVec = normalize(ghost_vec) * params.halo_width; + float weight = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5)); + weight = pow(1.0 - weight, params.halo_weight_power); + result += imageDistorted(ivec2((texcoord + haloVec) * resolution), direction, distortion).rgb * weight; + + result *= texture(lens_color_ramp, vec2((length(vec2(0.5) - texcoord) / length(vec2(0.5))), 0.0)).rgb; + + color.rgb = result.rgb; + + imageStore(color_image, uv, color); +} diff --git a/addons/compositor-lens-flare/lens.glsl.import b/addons/compositor-lens-flare/lens.glsl.import new file mode 100644 index 0000000..fb355a6 --- /dev/null +++ b/addons/compositor-lens-flare/lens.glsl.import @@ -0,0 +1,14 @@ +[remap] + +importer="glsl" +type="RDShaderFile" +uid="uid://bsxtc5veahkcx" +path="res://.godot/imported/lens.glsl-a4f9cddc8c0de1b4404d44442bcc4fdd.res" + +[deps] + +source_file="res://addons/compositor-lens-flare/lens.glsl" +dest_files=["res://.godot/imported/lens.glsl-a4f9cddc8c0de1b4404d44442bcc4fdd.res"] + +[params] + diff --git a/addons/compositor-lens-flare/lens_color_ramp.tres b/addons/compositor-lens-flare/lens_color_ramp.tres new file mode 100644 index 0000000..c598b0d --- /dev/null +++ b/addons/compositor-lens-flare/lens_color_ramp.tres @@ -0,0 +1,8 @@ +[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://dawnxeg62rkll"] + +[sub_resource type="Gradient" id="Gradient_d7nfd"] +offsets = PackedFloat32Array(0, 0.08665106, 0.14051522, 0.20608899, 0.28103045, 0.33021078, 0.60421544, 0.6557377, 0.6955503, 0.86885244, 0.9086651, 0.9437939) +colors = PackedColorArray(1, 1, 1, 1, 0.98866665, 0.83, 1, 1, 0.8, 1, 0.9833333, 1, 1, 1, 1, 1, 0.8208334, 0.57, 1, 1, 0.8833334, 0.72, 1, 1, 0.7958334, 0.51, 1, 1, 1, 0.35000002, 0.6641668, 1, 1, 0.7725, 0.35000002, 1, 1, 0.94, 0.55, 1, 1, 0.39999998, 0.8800001, 1, 1, 0.984, 0.52, 1) + +[resource] +gradient = SubResource("Gradient_d7nfd") diff --git a/addons/compositor-lens-flare/lens_flare_compositor_effect.tres b/addons/compositor-lens-flare/lens_flare_compositor_effect.tres new file mode 100644 index 0000000..4aa1a97 --- /dev/null +++ b/addons/compositor-lens-flare/lens_flare_compositor_effect.tres @@ -0,0 +1,29 @@ +[gd_resource type="CompositorEffect" script_class="PostProcessShader" load_steps=6 format=3 uid="uid://cpnwkm1swg8u0"] + +[ext_resource type="Texture2D" uid="uid://dawnxeg62rkll" path="res://addons/compositor-lens-flare/lens_color_ramp.tres" id="1_1jo43"] +[ext_resource type="Texture2D" uid="uid://detsilp12nioo" path="res://addons/compositor-lens-flare/lens-dirt.png" id="1_v4on2"] +[ext_resource type="Script" uid="uid://0dlqdm6ci0xm" path="res://addons/compositor-lens-flare/post_process_shader.gd" id="2_v4on2"] + +[sub_resource type="Gradient" id="Gradient_v4on2"] +offsets = PackedFloat32Array(0) +colors = PackedColorArray(1, 1, 1, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_wwdrl"] +gradient = SubResource("Gradient_v4on2") +width = 1 + +[resource] +resource_local_to_scene = false +resource_name = "" +enabled = true +effect_callback_type = 4 +needs_motion_vectors = false +needs_normal_roughness = false +script = ExtResource("2_v4on2") +glare_streak_count = 4 +glare_attenuation = 0.9839 +glare_samples = 2 +flare_color_ramp = ExtResource("1_1jo43") +overlay_dirt_texture = ExtResource("1_v4on2") +overlay_white_texture = SubResource("GradientTexture1D_wwdrl") +metadata/_custom_type_script = "uid://0dlqdm6ci0xm" diff --git a/addons/compositor-lens-flare/overlay.glsl b/addons/compositor-lens-flare/overlay.glsl new file mode 100644 index 0000000..d02e1df --- /dev/null +++ b/addons/compositor-lens-flare/overlay.glsl @@ -0,0 +1,37 @@ +#[compute] +#version 450 + +// Invocations in the (x, y, z) dimension +layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(rgba16f, set = 0, binding = 0) uniform image2D overlay_image; +layout(rgba16f, set = 1, binding = 0) uniform image2D color_image; +layout(set = 2, binding = 0) uniform sampler2D dirt_texture; + +// Our push PushConstant +layout(push_constant, std430) uniform Params { + vec2 render_size; + float res; + float dirt_power; +} params; + +// The code we want to execute in each invocation +void main() { + ivec2 render_size = ivec2(params.render_size.xy); + + ivec2 uv = ivec2(gl_GlobalInvocationID.xy); + + // Just in case the render_size size is not divisable by 8 + if ((uv.x >= render_size.x) || (uv.y >= render_size.y)) { + return; + } + + float dirt = texture(dirt_texture, vec2(uv) / vec2(render_size)).r; + + vec4 color = imageLoad(color_image, uv); + vec4 overlay = imageLoad(overlay_image, uv) * mix(1.0, dirt, params.dirt_power); + + color += overlay; + + imageStore(color_image, uv, color); +} diff --git a/addons/compositor-lens-flare/overlay.glsl.import b/addons/compositor-lens-flare/overlay.glsl.import new file mode 100644 index 0000000..b32054e --- /dev/null +++ b/addons/compositor-lens-flare/overlay.glsl.import @@ -0,0 +1,14 @@ +[remap] + +importer="glsl" +type="RDShaderFile" +uid="uid://c1rq8g3b4ci41" +path="res://.godot/imported/overlay.glsl-39d5630b163e8c81fa676fad2b9ace7e.res" + +[deps] + +source_file="res://addons/compositor-lens-flare/overlay.glsl" +dest_files=["res://.godot/imported/overlay.glsl-39d5630b163e8c81fa676fad2b9ace7e.res"] + +[params] + diff --git a/addons/compositor-lens-flare/post_process_shader.gd b/addons/compositor-lens-flare/post_process_shader.gd new file mode 100644 index 0000000..ebae276 --- /dev/null +++ b/addons/compositor-lens-flare/post_process_shader.gd @@ -0,0 +1,543 @@ +@tool +extends CompositorEffect +class_name PostProcessShader + +# Lens flare effect based on https://john-chapman-graphics.blogspot.com/2013/02/pseudo-lens-flare.html +# References used for CompositorEffect structure: +# - https://github.com/pink-arcana/godot-distance-field-outlines +# - https://github.com/BastiaanOlij/RERadialSunRays + +var context := "LENS_FLARE" + +var downsample_shader_file = load("res://addons/compositor-lens-flare/downsample.glsl") +var lens_shader_file = load("res://addons/compositor-lens-flare/lens.glsl") +var blur_shader_file = load("res://addons/compositor-lens-flare/gaussian_blur.glsl") +var overlay_shader_file = load("res://addons/compositor-lens-flare/overlay.glsl") +var streak_shader_file = load("res://addons/compositor-lens-flare/streak.glsl") + +@export_tool_button("Reload", "Callable") var reload_action = reload + +@export_group("Downsample", "downsample_") +@export_range(0.0, 5.0) var downsample_scale := 0.2 +@export_range(0.0, 5.0) var downsample_bias := 0.6 +@export_range(0.0, 1.0) var downsample_desaturation := 0.5 + +@export_group("Glare", "glare_") +@export_range(0, 12) var glare_streak_count := 6 +@export_range(0.8, 1.0) var glare_attenuation: float = 0.975 +@export_range(1, 12) var glare_samples: int = 4 + +@export_group("Lens Flare", "flare_") +@export var flare_color_ramp: Texture2D +@export_range(1, 16) var flare_ghost_count := 8 +@export_range(0.0, 2.0) var flare_ghost_dispersal := 0.25 +@export_range(0.0, 10.0) var flare_chromatic_abberation_scale := 7.0 +@export_range(0.0, 1.0) var flare_halo_width := 0.4 +@export_range(1.0, 10.0) var flare_halo_weight_power := 5.0 + +@export_group("Guassian Blur", "gaussian_blur_") +@export_range(5.0, 50.0) var gaussian_blur_size: float = 16.0 + +@export_group("Overlay", "overlay_") +@export var overlay_dirt_texture: Texture2D +@export var overlay_white_texture: Texture2D +@export_range(0.0, 1.0) var overlay_dirt_texture_power := 0.6 + +var downsample_shader: RID +var downsample_pipeline: RID + +var lens_shader: RID +var lens_pipeline: RID + +var blur_shader: RID +var blur_pipeline: RID + +var overlay_shader: RID +var overlay_pipeline: RID + +var streak_shader: RID +var streak_pipeline: RID + +var rd: RenderingDevice + +var mutex: Mutex = Mutex.new() +var shader_is_dirty: bool = true + +var clamp_linear_texture_sampler: RID + +# Called when this resource is constructed. +func _init(): + effect_callback_type = EFFECT_CALLBACK_TYPE_POST_TRANSPARENT + RenderingServer.call_on_render_thread(_initialize_compute) + + +# System notifications, we want to react on the notification that +# alerts us we are about to be destroyed. +func _notification(what): + if what == NOTIFICATION_PREDELETE: + cleanup() + + +func cleanup(): + if lens_shader.is_valid(): + rd.free_rid(lens_shader) + if downsample_shader.is_valid(): + rd.free_rid(downsample_shader) + if blur_shader.is_valid(): + rd.free_rid(blur_shader) + if overlay_shader.is_valid(): + rd.free_rid(overlay_shader) + if streak_shader.is_valid(): + rd.free_rid(streak_shader) + + +func reload(): + cleanup() + + RenderingServer.call_on_render_thread(_initialize_compute) + + +func _initialize_compute(): + rd = RenderingServer.get_rendering_device() + + # Create samplers + clamp_linear_texture_sampler = create_texture_sampler() + + # Compile all shaders and create pipelines + + var lens_shader_spirv: RDShaderSPIRV = lens_shader_file.get_spirv() + + if lens_shader_spirv.compile_error_compute != "": + push_error(lens_shader_spirv.compile_error_compute) + return false + + lens_shader = rd.shader_create_from_spirv(lens_shader_spirv) + if not lens_shader.is_valid(): + return false + + lens_pipeline = rd.compute_pipeline_create(lens_shader) + + var downsample_shader_spirv: RDShaderSPIRV = downsample_shader_file.get_spirv() + + if downsample_shader_spirv.compile_error_compute != "": + push_error(downsample_shader_spirv.compile_error_compute) + return false + + downsample_shader = rd.shader_create_from_spirv(downsample_shader_spirv) + if not downsample_shader.is_valid(): + return false + + downsample_pipeline = rd.compute_pipeline_create(downsample_shader) + + var blur_shader_spirv: RDShaderSPIRV = blur_shader_file.get_spirv() + + if blur_shader_spirv.compile_error_compute != "": + push_error(blur_shader_spirv.compile_error_compute) + return false + + blur_shader = rd.shader_create_from_spirv(blur_shader_spirv) + if not blur_shader.is_valid(): + return false + + blur_pipeline = rd.compute_pipeline_create(blur_shader) + + var overlay_shader_spirv: RDShaderSPIRV = overlay_shader_file.get_spirv() + + if overlay_shader_spirv.compile_error_compute != "": + push_error(overlay_shader_spirv.compile_error_compute) + return false + + overlay_shader = rd.shader_create_from_spirv(overlay_shader_spirv) + if not overlay_shader.is_valid(): + return false + + overlay_pipeline = rd.compute_pipeline_create(overlay_shader) + + var streak_shader_spirv: RDShaderSPIRV = streak_shader_file.get_spirv() + + if streak_shader_spirv.compile_error_compute != "": + push_error(streak_shader_spirv.compile_error_compute) + return false + + streak_shader = rd.shader_create_from_spirv(streak_shader_spirv) + if not streak_shader.is_valid(): + return false + + streak_pipeline = rd.compute_pipeline_create(streak_shader) + + +func compile_shader(shader_file, shader, pipeline): + var shader_spirv: RDShaderSPIRV = shader_file.get_spirv() + + if shader_spirv.compile_error_compute != "": + push_error(shader_spirv.compile_error_compute) + return false + + shader = rd.shader_create_from_spirv(shader_spirv) + if not shader.is_valid(): + return false + + pipeline = rd.compute_pipeline_create(shader) + return pipeline.is_valid() + + +func validate_pipelines(): + return lens_pipeline.is_valid() and downsample_pipeline.is_valid() \ + and blur_pipeline.is_valid() and streak_pipeline.is_valid() \ + and overlay_pipeline.is_valid() + + +func get_image_uniform(image : RID, binding : int = 0) -> RDUniform: + var uniform : RDUniform = RDUniform.new() + uniform.uniform_type = RenderingDevice.UNIFORM_TYPE_IMAGE + uniform.binding = binding + uniform.add_id(image) + + return uniform + + +func create_texture_sampler(): + var sampler_state = RDSamplerState.new() + sampler_state.repeat_u = RenderingDevice.SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE + sampler_state.repeat_v = RenderingDevice.SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE + sampler_state.repeat_w = RenderingDevice.SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE + sampler_state.mag_filter = RenderingDevice.SAMPLER_FILTER_LINEAR + sampler_state.min_filter = RenderingDevice.SAMPLER_FILTER_LINEAR + sampler_state.mip_filter = RenderingDevice.SAMPLER_FILTER_LINEAR + + return rd.sampler_create(sampler_state) + + +func get_texture_uniform(texture: Texture, binding : int = 0) -> RDUniform: + var uniform : RDUniform = RDUniform.new() + uniform.uniform_type = RenderingDevice.UNIFORM_TYPE_SAMPLER_WITH_TEXTURE + uniform.binding = binding + uniform.add_id(clamp_linear_texture_sampler) + uniform.add_id(RenderingServer.texture_get_rd_texture(texture.get_rid(), true)) + + return uniform + + +# Called by the rendering thread every frame. +func _render_callback(p_effect_callback_type, p_render_data): + if rd and p_effect_callback_type == EFFECT_CALLBACK_TYPE_POST_TRANSPARENT \ + and validate_pipelines(): + # Get our render scene buffers object, this gives us access to our render buffers. + # Note that implementation differs per renderer hence the need for the cast. + var render_scene_buffers: RenderSceneBuffersRD = p_render_data.get_render_scene_buffers() + if render_scene_buffers: + # Get our render size, this is the 3D render resolution! + var size = render_scene_buffers.get_internal_size() + if size.x == 0 and size.y == 0: + return + + # Compute shader groups + var x_groups = (size.x - 1) / 8 + 1 + var y_groups = (size.y - 1) / 8 + 1 + var z_groups = 1 + + # Loop through views just in case we're doing stereo rendering. + # No extra cost if this is mono. + var view_count = render_scene_buffers.get_view_count() + for view in range(view_count): + # Get the RID for our color image, we will be reading from and writing to it. + var input_image = render_scene_buffers.get_color_layer(view) + + var usage_bits := RenderingDevice.TEXTURE_USAGE_SAMPLING_BIT \ + | RenderingDevice.TEXTURE_USAGE_STORAGE_BIT + + # Create textures (or get from cache if already created) + render_scene_buffers.create_texture( + context, + "Downsampled", + RenderingDevice.DATA_FORMAT_R16G16B16A16_SFLOAT, + usage_bits, + RenderingDevice.TEXTURE_SAMPLES_1, + size, 1, 1, true, false) + render_scene_buffers.create_texture( + context, + "BlurLeft", + RenderingDevice.DATA_FORMAT_R16G16B16A16_SFLOAT, + usage_bits, + RenderingDevice.TEXTURE_SAMPLES_1, + size, 1, 1, true, false) + render_scene_buffers.create_texture( + context, + "BlurRight", + RenderingDevice.DATA_FORMAT_R16G16B16A16_SFLOAT, + usage_bits, + RenderingDevice.TEXTURE_SAMPLES_1, + size, 1, 1, true, false) + render_scene_buffers.create_texture( + context, + "Ping", + RenderingDevice.DATA_FORMAT_R16G16B16A16_SFLOAT, + usage_bits, + RenderingDevice.TEXTURE_SAMPLES_1, + size, 1, 1, true, false) + render_scene_buffers.create_texture( + context, + "Pong", + RenderingDevice.DATA_FORMAT_R16G16B16A16_SFLOAT, + usage_bits, + RenderingDevice.TEXTURE_SAMPLES_1, + size, 1, 1, true, false) + + var color_uniform: RDUniform = RDUniform.new() + color_uniform.uniform_type = RenderingDevice.UNIFORM_TYPE_IMAGE + color_uniform.binding = 0 + color_uniform.add_id(input_image) + + var downsampled_uniform = get_image_uniform(render_scene_buffers.get_texture(context, "Downsampled")) + var ping_uniform = get_image_uniform(render_scene_buffers.get_texture(context, "Ping")) + var pong_uniform = get_image_uniform(render_scene_buffers.get_texture(context, "Pong")) + var blur_left_uniform = get_image_uniform(render_scene_buffers.get_texture(context, "BlurLeft")) + var blur_right_uniform = get_image_uniform(render_scene_buffers.get_texture(context, "BlurRight")) + + # Setup done + + # Step 1: Downsample + # Extracts only bright bits from texture, making the rest black + + var downsample_uniform_set_1 := UniformSetCacheRD.get_cache(lens_shader, 0, [ color_uniform ]) + var downsample_uniform_set_2 := UniformSetCacheRD.get_cache(lens_shader, 1, [ downsampled_uniform ]) + + var downsample_push_constant := PackedByteArray() + downsample_push_constant.resize(32) + downsample_push_constant.encode_float(0, size.x) + downsample_push_constant.encode_float(4, size.y) + downsample_push_constant.encode_float(8, downsample_scale) + downsample_push_constant.encode_float(12, downsample_bias) + downsample_push_constant.encode_float(16, downsample_desaturation) + + var compute_list := rd.compute_list_begin() + rd.compute_list_bind_compute_pipeline(compute_list, downsample_pipeline) + rd.compute_list_bind_uniform_set(compute_list, downsample_uniform_set_1, 0) + rd.compute_list_bind_uniform_set(compute_list, downsample_uniform_set_2, 1) + rd.compute_list_set_push_constant(compute_list, downsample_push_constant, downsample_push_constant.size()) + rd.compute_list_dispatch(compute_list, x_groups, y_groups, z_groups) + rd.compute_list_end() + + # Step 2: Light streak + # Blurs the texture into any number of directions and overlays the result onto the + # color buffer + + for angle_i in range(glare_streak_count): # hexagonal streaks + var angle_here = ((PI * 2.0) / glare_streak_count) * angle_i + var direction = Vector2(1.0, 0.0).rotated(angle_here) + + # We have a lot of code duplication here instead of looping because we need to + # ping-pong the "from" and "to" textures: + # downsampled -> ping -> pong -> ping -> pong -> color + # TODO: could probably be cleaned up with a lambda + + var streak_uniform_set + var streak_uniform_set2 + + # Iteration 1 + var streak_push_constant: PackedByteArray = PackedByteArray() + streak_push_constant.resize(32) + streak_push_constant.encode_float(0, size.x) + streak_push_constant.encode_float(4, size.y) + streak_push_constant.encode_float(8, direction.x * 1.0) # Direction + streak_push_constant.encode_float(12, direction.y * 1.0) + streak_push_constant.encode_s32(16, glare_samples) # Samples + streak_push_constant.encode_float(20, glare_attenuation) # Attenuation + streak_push_constant.encode_s32(24, 0) # Iteration + + streak_uniform_set = UniformSetCacheRD.get_cache(streak_shader, 0, [downsampled_uniform]) + streak_uniform_set2 = UniformSetCacheRD.get_cache(streak_shader, 1, [ping_uniform]) + + compute_list = rd.compute_list_begin() + rd.compute_list_bind_compute_pipeline(compute_list, streak_pipeline) + rd.compute_list_bind_uniform_set(compute_list, streak_uniform_set, 0) + rd.compute_list_bind_uniform_set(compute_list, streak_uniform_set2, 1) + rd.compute_list_set_push_constant(compute_list, streak_push_constant, streak_push_constant.size()) + rd.compute_list_dispatch(compute_list, x_groups, y_groups, z_groups) + rd.compute_list_end() + + # Iteration 2 + streak_push_constant = PackedByteArray() + streak_push_constant.resize(32) + streak_push_constant.encode_float(0, size.x) + streak_push_constant.encode_float(4, size.y) + streak_push_constant.encode_float(8, direction.x * 1.0) # Direction + streak_push_constant.encode_float(12, direction.y * 1.0) + streak_push_constant.encode_s32(16, glare_samples) # Samples + streak_push_constant.encode_float(20, glare_attenuation) # Attenuation + streak_push_constant.encode_s32(24, 1) # Iteration + + streak_uniform_set = UniformSetCacheRD.get_cache(streak_shader, 0, [ping_uniform]) + streak_uniform_set2 = UniformSetCacheRD.get_cache(streak_shader, 1, [pong_uniform]) + + compute_list = rd.compute_list_begin() + rd.compute_list_bind_compute_pipeline(compute_list, streak_pipeline) + rd.compute_list_bind_uniform_set(compute_list, streak_uniform_set, 0) + rd.compute_list_bind_uniform_set(compute_list, streak_uniform_set2, 1) + rd.compute_list_set_push_constant(compute_list, streak_push_constant, streak_push_constant.size()) + rd.compute_list_dispatch(compute_list, x_groups, y_groups, z_groups) + rd.compute_list_end() + + # Iteration 3 + streak_push_constant = PackedByteArray() + streak_push_constant.resize(32) + streak_push_constant.encode_float(0, size.x) + streak_push_constant.encode_float(4, size.y) + streak_push_constant.encode_float(8, direction.x * 1.0) # Direction + streak_push_constant.encode_float(12, direction.y * 1.0) + streak_push_constant.encode_s32(16, glare_samples) # Samples + streak_push_constant.encode_float(20, glare_attenuation) # Attenuation + streak_push_constant.encode_s32(24, 2) # Iteration + + streak_uniform_set = UniformSetCacheRD.get_cache(streak_shader, 0, [pong_uniform]) + streak_uniform_set2 = UniformSetCacheRD.get_cache(streak_shader, 1, [ping_uniform]) + + compute_list = rd.compute_list_begin() + rd.compute_list_bind_compute_pipeline(compute_list, streak_pipeline) + rd.compute_list_bind_uniform_set(compute_list, streak_uniform_set, 0) + rd.compute_list_bind_uniform_set(compute_list, streak_uniform_set2, 1) + rd.compute_list_set_push_constant(compute_list, streak_push_constant, streak_push_constant.size()) + rd.compute_list_dispatch(compute_list, x_groups, y_groups, z_groups) + rd.compute_list_end() + + # Iteration 4 + streak_push_constant = PackedByteArray() + streak_push_constant.resize(32) + streak_push_constant.encode_float(0, size.x) + streak_push_constant.encode_float(4, size.y) + streak_push_constant.encode_float(8, direction.x * 1.0) # Direction + streak_push_constant.encode_float(12, direction.y * 1.0) + streak_push_constant.encode_s32(16, glare_samples) # Samples + streak_push_constant.encode_float(20, glare_attenuation) # Attenuation + streak_push_constant.encode_s32(24, 3) # Iteration + + streak_uniform_set = UniformSetCacheRD.get_cache(streak_shader, 0, [ping_uniform]) + streak_uniform_set2 = UniformSetCacheRD.get_cache(streak_shader, 1, [pong_uniform]) + + compute_list = rd.compute_list_begin() + rd.compute_list_bind_compute_pipeline(compute_list, streak_pipeline) + rd.compute_list_bind_uniform_set(compute_list, streak_uniform_set, 0) + rd.compute_list_bind_uniform_set(compute_list, streak_uniform_set2, 1) + rd.compute_list_set_push_constant(compute_list, streak_push_constant, streak_push_constant.size()) + rd.compute_list_dispatch(compute_list, x_groups, y_groups, z_groups) + rd.compute_list_end() + + # Blur onto color + var overlay_uniform = get_texture_uniform(overlay_white_texture) + + var overlay_uniform_set_1 = UniformSetCacheRD.get_cache(overlay_shader, 0, [ pong_uniform ]) + var overlay_uniform_set_2 = UniformSetCacheRD.get_cache(overlay_shader, 1, [ color_uniform ]) + var overlay_uniform_set_3 = UniformSetCacheRD.get_cache(overlay_shader, 2, [ overlay_uniform ]) + + var overlay_push_constant: PackedFloat32Array = PackedFloat32Array() + overlay_push_constant.push_back(size.x) + overlay_push_constant.push_back(size.y) + overlay_push_constant.push_back(0.0) # Padding + overlay_push_constant.push_back(0.0) + + compute_list = rd.compute_list_begin() + rd.compute_list_bind_compute_pipeline(compute_list, overlay_pipeline) + rd.compute_list_bind_uniform_set(compute_list, overlay_uniform_set_1, 0) + rd.compute_list_bind_uniform_set(compute_list, overlay_uniform_set_2, 1) + rd.compute_list_bind_uniform_set(compute_list, overlay_uniform_set_3, 2) + rd.compute_list_set_push_constant(compute_list, overlay_push_constant.to_byte_array(), overlay_push_constant.size() * 4) + rd.compute_list_dispatch(compute_list, x_groups, y_groups, 1) + rd.compute_list_end() + + # Step 3: Lens Flare + # Create ghosts and halos from the downsampled image + # (Note: the light streak result is not used in the lens flare processing) + + var color_ramp_uniform = get_texture_uniform(flare_color_ramp) + + var lens_flare_uniform_set_1 = UniformSetCacheRD.get_cache(lens_shader, 0, [ downsampled_uniform ]) + var lens_flare_uniform_set_2 = UniformSetCacheRD.get_cache(lens_shader, 1, [pong_uniform]) + var lens_flare_uniform_set_3 = UniformSetCacheRD.get_cache(lens_shader, 2, [color_ramp_uniform]) + + var lens_flare_push_constant := PackedByteArray() + lens_flare_push_constant.resize(32) + lens_flare_push_constant.encode_float(0, size.x) + lens_flare_push_constant.encode_float(4, size.y) + lens_flare_push_constant.encode_s32(8, flare_ghost_count) + lens_flare_push_constant.encode_float(12, flare_ghost_dispersal) + lens_flare_push_constant.encode_float(16, flare_chromatic_abberation_scale) + lens_flare_push_constant.encode_float(20, flare_halo_width) + lens_flare_push_constant.encode_float(24, flare_halo_weight_power) + + # Run lens flare + compute_list = rd.compute_list_begin() + rd.compute_list_bind_compute_pipeline(compute_list, lens_pipeline) + rd.compute_list_bind_uniform_set(compute_list, lens_flare_uniform_set_1, 0) + rd.compute_list_bind_uniform_set(compute_list, lens_flare_uniform_set_2, 1) + rd.compute_list_bind_uniform_set(compute_list, lens_flare_uniform_set_3, 2) + rd.compute_list_set_push_constant(compute_list, lens_flare_push_constant, lens_flare_push_constant.size()) + rd.compute_list_dispatch(compute_list, x_groups, y_groups, z_groups) + rd.compute_list_end() + + # Step 4: Blur + # Horizontal, then vertical blur of the lens flare result to make the ghosts less + # sharp + + # Horizontal pass + var blur_push_constant: PackedFloat32Array = PackedFloat32Array() + blur_push_constant.push_back(size.x) + blur_push_constant.push_back(size.y) + blur_push_constant.push_back(gaussian_blur_size) + blur_push_constant.push_back(0.0) + + var blur_color_uniform_set = UniformSetCacheRD.get_cache(blur_shader, 0, [ pong_uniform ]) + var blur_texture_uniform_set = UniformSetCacheRD.get_cache(blur_shader, 1, [ ping_uniform ]) + + compute_list = rd.compute_list_begin() + rd.compute_list_bind_compute_pipeline(compute_list, blur_pipeline) + rd.compute_list_bind_uniform_set(compute_list, blur_color_uniform_set, 0) + rd.compute_list_bind_uniform_set(compute_list, blur_texture_uniform_set, 1) + rd.compute_list_set_push_constant(compute_list, blur_push_constant.to_byte_array(), blur_push_constant.size() * 4) + rd.compute_list_dispatch(compute_list, x_groups, y_groups, 1) + rd.compute_list_end() + + rd.draw_command_end_label() + + # Vertical pass (using the horizontal result) + blur_push_constant = PackedFloat32Array() + blur_push_constant.push_back(size.x) + blur_push_constant.push_back(size.y) + blur_push_constant.push_back(0.0) + blur_push_constant.push_back(gaussian_blur_size) + + blur_color_uniform_set = UniformSetCacheRD.get_cache(blur_shader, 0, [ ping_uniform ]) + blur_texture_uniform_set = UniformSetCacheRD.get_cache(blur_shader, 1, [ pong_uniform ]) + + compute_list = rd.compute_list_begin() + rd.compute_list_bind_compute_pipeline(compute_list, blur_pipeline) + rd.compute_list_bind_uniform_set(compute_list, blur_color_uniform_set, 0) + rd.compute_list_bind_uniform_set(compute_list, blur_texture_uniform_set, 1) + rd.compute_list_set_push_constant(compute_list, blur_push_constant.to_byte_array(), blur_push_constant.size() * 4) + rd.compute_list_dispatch(compute_list, x_groups, y_groups, 1) + rd.compute_list_end() + + # Step 5: Overlay + # Blend the blurred lens flares onto the color buffer (which already includes the + # light streaks created in step 2) + + var overlay_uniform_set_1 = UniformSetCacheRD.get_cache(overlay_shader, 0, [ pong_uniform ]) + var overlay_uniform_set_2 = UniformSetCacheRD.get_cache(overlay_shader, 1, [ color_uniform ]) + + var dirt_uniform = get_texture_uniform(overlay_dirt_texture) + var overlay_uniform_set_3 = UniformSetCacheRD.get_cache(overlay_shader, 2, [ dirt_uniform ]) + + var overlay_push_constant = PackedByteArray() + overlay_push_constant.resize(16) + overlay_push_constant.encode_float(0, size.x) + overlay_push_constant.encode_float(4, size.y) + overlay_push_constant.encode_float(8, 0.0) # Padding + overlay_push_constant.encode_float(12, overlay_dirt_texture_power) + + compute_list = rd.compute_list_begin() + rd.compute_list_bind_compute_pipeline(compute_list, overlay_pipeline) + rd.compute_list_bind_uniform_set(compute_list, overlay_uniform_set_1, 0) + rd.compute_list_bind_uniform_set(compute_list, overlay_uniform_set_2, 1) + rd.compute_list_bind_uniform_set(compute_list, overlay_uniform_set_3, 2) + rd.compute_list_set_push_constant(compute_list, overlay_push_constant, overlay_push_constant.size()) + rd.compute_list_dispatch(compute_list, x_groups, y_groups, 1) + rd.compute_list_end() diff --git a/addons/compositor-lens-flare/post_process_shader.gd.uid b/addons/compositor-lens-flare/post_process_shader.gd.uid new file mode 100644 index 0000000..a148319 --- /dev/null +++ b/addons/compositor-lens-flare/post_process_shader.gd.uid @@ -0,0 +1 @@ +uid://0dlqdm6ci0xm diff --git a/addons/compositor-lens-flare/streak.glsl b/addons/compositor-lens-flare/streak.glsl new file mode 100644 index 0000000..356a4d5 --- /dev/null +++ b/addons/compositor-lens-flare/streak.glsl @@ -0,0 +1,43 @@ +#[compute] +#version 450 + +// Adapted from https://chrisoat.com/papers/Oat-ScenePostprocessing.pdf + +// Invocations in the (x, y, z) dimension +layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(rgba16f, set = 0, binding = 0) uniform image2D light_image; +layout(rgba16f, set = 1, binding = 0) uniform image2D out_image; + +// Our push constant +layout(push_constant, std430) uniform Params { + vec2 raster_size; + vec2 streak_direction; + int streak_samples; + float attenuation; + int iteration; +} params; + +// The code we want to execute in each invocation +void main() { + ivec2 uv = ivec2(gl_GlobalInvocationID.xy); + ivec2 size = ivec2(params.raster_size); + + if (uv.x >= size.x || uv.y >= size.y) { + return; + } + + vec4 new_color = vec4(0.0, 0.0, 0.0, 1.0); //imageLoad(light_image, uv); + + float b = pow(params.streak_samples, params.iteration); + + for (int sample_num = 0; sample_num < params.streak_samples; sample_num++) { + float weight = pow(params.attenuation, b * sample_num); + + ivec2 texture_coordinates_here = uv + ivec2(params.streak_direction * b * sample_num); + + new_color.rgb += clamp(weight, 0.0, 1.0) * imageLoad(light_image, texture_coordinates_here).rgb; + } + + imageStore(out_image, uv, new_color); +} diff --git a/addons/compositor-lens-flare/streak.glsl.import b/addons/compositor-lens-flare/streak.glsl.import new file mode 100644 index 0000000..f3c2d8c --- /dev/null +++ b/addons/compositor-lens-flare/streak.glsl.import @@ -0,0 +1,14 @@ +[remap] + +importer="glsl" +type="RDShaderFile" +uid="uid://c3wo2okvinjbs" +path="res://.godot/imported/streak.glsl-e84466ab4d8ec552c71d8362b0bf731b.res" + +[deps] + +source_file="res://addons/compositor-lens-flare/streak.glsl" +dest_files=["res://.godot/imported/streak.glsl-e84466ab4d8ec552c71d8362b0bf731b.res"] + +[params] + diff --git a/addons/rokojori_action_library b/addons/rokojori_action_library index fad61c7..eff4b5e 160000 --- a/addons/rokojori_action_library +++ b/addons/rokojori_action_library @@ -1 +1 @@ -Subproject commit fad61c7e9b38e69e0b27457ccb6dd5c8fd242b47 +Subproject commit eff4b5e146ebc6aceb90004a52cffd3121167661 diff --git a/assets/Fonts/Jost-Black.ttf b/assets/Fonts/Jost-Black.ttf new file mode 100644 index 0000000..bc5f272 Binary files /dev/null and b/assets/Fonts/Jost-Black.ttf differ diff --git a/assets/Fonts/Jost-Black.ttf.import b/assets/Fonts/Jost-Black.ttf.import new file mode 100644 index 0000000..8cd8a72 --- /dev/null +++ b/assets/Fonts/Jost-Black.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://b6ntdryo31qk6" +path="res://.godot/imported/Jost-Black.ttf-85d061fda6325d4206a92df6d9c9cc4b.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-Black.ttf" +dest_files=["res://.godot/imported/Jost-Black.ttf-85d061fda6325d4206a92df6d9c9cc4b.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-BlackItalic.ttf b/assets/Fonts/Jost-BlackItalic.ttf new file mode 100644 index 0000000..6f9cc01 Binary files /dev/null and b/assets/Fonts/Jost-BlackItalic.ttf differ diff --git a/assets/Fonts/Jost-BlackItalic.ttf.import b/assets/Fonts/Jost-BlackItalic.ttf.import new file mode 100644 index 0000000..f80113b --- /dev/null +++ b/assets/Fonts/Jost-BlackItalic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dlntbctqln32q" +path="res://.godot/imported/Jost-BlackItalic.ttf-7ec340e4b2db11d19c5641feefb4c30e.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-BlackItalic.ttf" +dest_files=["res://.godot/imported/Jost-BlackItalic.ttf-7ec340e4b2db11d19c5641feefb4c30e.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-Bold.ttf b/assets/Fonts/Jost-Bold.ttf new file mode 100644 index 0000000..7c6bb49 Binary files /dev/null and b/assets/Fonts/Jost-Bold.ttf differ diff --git a/assets/Fonts/Jost-Bold.ttf.import b/assets/Fonts/Jost-Bold.ttf.import new file mode 100644 index 0000000..16b38f0 --- /dev/null +++ b/assets/Fonts/Jost-Bold.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://co0dn0sxf3uw1" +path="res://.godot/imported/Jost-Bold.ttf-2e448402e1def28385efdbad4776272d.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-Bold.ttf" +dest_files=["res://.godot/imported/Jost-Bold.ttf-2e448402e1def28385efdbad4776272d.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-BoldItalic.ttf b/assets/Fonts/Jost-BoldItalic.ttf new file mode 100644 index 0000000..3799726 Binary files /dev/null and b/assets/Fonts/Jost-BoldItalic.ttf differ diff --git a/assets/Fonts/Jost-BoldItalic.ttf.import b/assets/Fonts/Jost-BoldItalic.ttf.import new file mode 100644 index 0000000..675b80d --- /dev/null +++ b/assets/Fonts/Jost-BoldItalic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cpbmrrpkm0s26" +path="res://.godot/imported/Jost-BoldItalic.ttf-6ebf904ee28b921dce9ebc2c7a106412.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-BoldItalic.ttf" +dest_files=["res://.godot/imported/Jost-BoldItalic.ttf-6ebf904ee28b921dce9ebc2c7a106412.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-ExtraBold.ttf b/assets/Fonts/Jost-ExtraBold.ttf new file mode 100644 index 0000000..8279783 Binary files /dev/null and b/assets/Fonts/Jost-ExtraBold.ttf differ diff --git a/assets/Fonts/Jost-ExtraBold.ttf.import b/assets/Fonts/Jost-ExtraBold.ttf.import new file mode 100644 index 0000000..cfd8139 --- /dev/null +++ b/assets/Fonts/Jost-ExtraBold.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://v48xitewij5b" +path="res://.godot/imported/Jost-ExtraBold.ttf-f4cf7083119f2789880e6b362048e7b5.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-ExtraBold.ttf" +dest_files=["res://.godot/imported/Jost-ExtraBold.ttf-f4cf7083119f2789880e6b362048e7b5.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-ExtraBoldItalic.ttf b/assets/Fonts/Jost-ExtraBoldItalic.ttf new file mode 100644 index 0000000..c4fa010 Binary files /dev/null and b/assets/Fonts/Jost-ExtraBoldItalic.ttf differ diff --git a/assets/Fonts/Jost-ExtraBoldItalic.ttf.import b/assets/Fonts/Jost-ExtraBoldItalic.ttf.import new file mode 100644 index 0000000..d54ca3a --- /dev/null +++ b/assets/Fonts/Jost-ExtraBoldItalic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bf8vamruspl5e" +path="res://.godot/imported/Jost-ExtraBoldItalic.ttf-8e6c26069b0af25383b312a68b662909.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-ExtraBoldItalic.ttf" +dest_files=["res://.godot/imported/Jost-ExtraBoldItalic.ttf-8e6c26069b0af25383b312a68b662909.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-ExtraLight.ttf b/assets/Fonts/Jost-ExtraLight.ttf new file mode 100644 index 0000000..cfccd2b Binary files /dev/null and b/assets/Fonts/Jost-ExtraLight.ttf differ diff --git a/assets/Fonts/Jost-ExtraLight.ttf.import b/assets/Fonts/Jost-ExtraLight.ttf.import new file mode 100644 index 0000000..4601738 --- /dev/null +++ b/assets/Fonts/Jost-ExtraLight.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://c03s2vo18r30l" +path="res://.godot/imported/Jost-ExtraLight.ttf-399ca308c2872b00339a7fe1a97eec70.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-ExtraLight.ttf" +dest_files=["res://.godot/imported/Jost-ExtraLight.ttf-399ca308c2872b00339a7fe1a97eec70.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-ExtraLightItalic.ttf b/assets/Fonts/Jost-ExtraLightItalic.ttf new file mode 100644 index 0000000..e5ad0a8 Binary files /dev/null and b/assets/Fonts/Jost-ExtraLightItalic.ttf differ diff --git a/assets/Fonts/Jost-ExtraLightItalic.ttf.import b/assets/Fonts/Jost-ExtraLightItalic.ttf.import new file mode 100644 index 0000000..4ce120b --- /dev/null +++ b/assets/Fonts/Jost-ExtraLightItalic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://3xcegb7jxi4g" +path="res://.godot/imported/Jost-ExtraLightItalic.ttf-b0d20f2fbe849d13296d10a1d12bf086.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-ExtraLightItalic.ttf" +dest_files=["res://.godot/imported/Jost-ExtraLightItalic.ttf-b0d20f2fbe849d13296d10a1d12bf086.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-Italic.ttf b/assets/Fonts/Jost-Italic.ttf new file mode 100644 index 0000000..5b38c72 Binary files /dev/null and b/assets/Fonts/Jost-Italic.ttf differ diff --git a/assets/Fonts/Jost-Italic.ttf.import b/assets/Fonts/Jost-Italic.ttf.import new file mode 100644 index 0000000..9a9b8f7 --- /dev/null +++ b/assets/Fonts/Jost-Italic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://fceaei4nqm6m" +path="res://.godot/imported/Jost-Italic.ttf-1832299fcb5f0091b0d9f2b48296d48c.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-Italic.ttf" +dest_files=["res://.godot/imported/Jost-Italic.ttf-1832299fcb5f0091b0d9f2b48296d48c.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-Light.ttf b/assets/Fonts/Jost-Light.ttf new file mode 100644 index 0000000..13e0e20 Binary files /dev/null and b/assets/Fonts/Jost-Light.ttf differ diff --git a/assets/Fonts/Jost-Light.ttf.import b/assets/Fonts/Jost-Light.ttf.import new file mode 100644 index 0000000..3efc781 --- /dev/null +++ b/assets/Fonts/Jost-Light.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://d25mwxvy1ff1c" +path="res://.godot/imported/Jost-Light.ttf-b309835fca0848d3bb23101df414ec2b.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-Light.ttf" +dest_files=["res://.godot/imported/Jost-Light.ttf-b309835fca0848d3bb23101df414ec2b.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-LightItalic.ttf b/assets/Fonts/Jost-LightItalic.ttf new file mode 100644 index 0000000..c0cf7c4 Binary files /dev/null and b/assets/Fonts/Jost-LightItalic.ttf differ diff --git a/assets/Fonts/Jost-LightItalic.ttf.import b/assets/Fonts/Jost-LightItalic.ttf.import new file mode 100644 index 0000000..c7db21a --- /dev/null +++ b/assets/Fonts/Jost-LightItalic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://77lgh7dokcf4" +path="res://.godot/imported/Jost-LightItalic.ttf-79ba290e0e86c578341ef0a19b1bc3a4.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-LightItalic.ttf" +dest_files=["res://.godot/imported/Jost-LightItalic.ttf-79ba290e0e86c578341ef0a19b1bc3a4.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-Medium.ttf b/assets/Fonts/Jost-Medium.ttf new file mode 100644 index 0000000..e6e8113 Binary files /dev/null and b/assets/Fonts/Jost-Medium.ttf differ diff --git a/assets/Fonts/Jost-Medium.ttf.import b/assets/Fonts/Jost-Medium.ttf.import new file mode 100644 index 0000000..9a9c582 --- /dev/null +++ b/assets/Fonts/Jost-Medium.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cbn0kkecpldco" +path="res://.godot/imported/Jost-Medium.ttf-a6bc156d3c3fbd39c51e447a4969ea30.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-Medium.ttf" +dest_files=["res://.godot/imported/Jost-Medium.ttf-a6bc156d3c3fbd39c51e447a4969ea30.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-MediumItalic.ttf b/assets/Fonts/Jost-MediumItalic.ttf new file mode 100644 index 0000000..12bd350 Binary files /dev/null and b/assets/Fonts/Jost-MediumItalic.ttf differ diff --git a/assets/Fonts/Jost-MediumItalic.ttf.import b/assets/Fonts/Jost-MediumItalic.ttf.import new file mode 100644 index 0000000..b0852ad --- /dev/null +++ b/assets/Fonts/Jost-MediumItalic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cvmav67frhacb" +path="res://.godot/imported/Jost-MediumItalic.ttf-69f7674f9cb6914f07d34bb9d02862b1.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-MediumItalic.ttf" +dest_files=["res://.godot/imported/Jost-MediumItalic.ttf-69f7674f9cb6914f07d34bb9d02862b1.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-Regular.ttf b/assets/Fonts/Jost-Regular.ttf new file mode 100644 index 0000000..94f0470 Binary files /dev/null and b/assets/Fonts/Jost-Regular.ttf differ diff --git a/assets/Fonts/Jost-Regular.ttf.import b/assets/Fonts/Jost-Regular.ttf.import new file mode 100644 index 0000000..4a967d8 --- /dev/null +++ b/assets/Fonts/Jost-Regular.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://0e4pwnojjcry" +path="res://.godot/imported/Jost-Regular.ttf-1ba1e8355be7e7075598b0d59ff64b79.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-Regular.ttf" +dest_files=["res://.godot/imported/Jost-Regular.ttf-1ba1e8355be7e7075598b0d59ff64b79.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-SemiBold.ttf b/assets/Fonts/Jost-SemiBold.ttf new file mode 100644 index 0000000..466a709 Binary files /dev/null and b/assets/Fonts/Jost-SemiBold.ttf differ diff --git a/assets/Fonts/Jost-SemiBold.ttf.import b/assets/Fonts/Jost-SemiBold.ttf.import new file mode 100644 index 0000000..b36da8f --- /dev/null +++ b/assets/Fonts/Jost-SemiBold.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bjyawglkdumep" +path="res://.godot/imported/Jost-SemiBold.ttf-d5ceb9d6040d44169d788b6db772873b.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-SemiBold.ttf" +dest_files=["res://.godot/imported/Jost-SemiBold.ttf-d5ceb9d6040d44169d788b6db772873b.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-SemiBoldItalic.ttf b/assets/Fonts/Jost-SemiBoldItalic.ttf new file mode 100644 index 0000000..6919c40 Binary files /dev/null and b/assets/Fonts/Jost-SemiBoldItalic.ttf differ diff --git a/assets/Fonts/Jost-SemiBoldItalic.ttf.import b/assets/Fonts/Jost-SemiBoldItalic.ttf.import new file mode 100644 index 0000000..b0781f4 --- /dev/null +++ b/assets/Fonts/Jost-SemiBoldItalic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://c6qdoaa86ss2l" +path="res://.godot/imported/Jost-SemiBoldItalic.ttf-f740d8a66375a9fe4ef0fa8e60a32622.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-SemiBoldItalic.ttf" +dest_files=["res://.godot/imported/Jost-SemiBoldItalic.ttf-f740d8a66375a9fe4ef0fa8e60a32622.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-Thin.ttf b/assets/Fonts/Jost-Thin.ttf new file mode 100644 index 0000000..c655ae7 Binary files /dev/null and b/assets/Fonts/Jost-Thin.ttf differ diff --git a/assets/Fonts/Jost-Thin.ttf.import b/assets/Fonts/Jost-Thin.ttf.import new file mode 100644 index 0000000..521547b --- /dev/null +++ b/assets/Fonts/Jost-Thin.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cyux1ymh474dd" +path="res://.godot/imported/Jost-Thin.ttf-1609f22ce95e7054ed65fa5eccfa96ca.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-Thin.ttf" +dest_files=["res://.godot/imported/Jost-Thin.ttf-1609f22ce95e7054ed65fa5eccfa96ca.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Fonts/Jost-ThinItalic.ttf b/assets/Fonts/Jost-ThinItalic.ttf new file mode 100644 index 0000000..7fd6c86 Binary files /dev/null and b/assets/Fonts/Jost-ThinItalic.ttf differ diff --git a/assets/Fonts/Jost-ThinItalic.ttf.import b/assets/Fonts/Jost-ThinItalic.ttf.import new file mode 100644 index 0000000..bfb2a1b --- /dev/null +++ b/assets/Fonts/Jost-ThinItalic.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cqq00pr53i2at" +path="res://.godot/imported/Jost-ThinItalic.ttf-b0e7d6efe12ec4f6370bdc406dc171b8.fontdata" + +[deps] + +source_file="res://assets/Fonts/Jost-ThinItalic.ttf" +dest_files=["res://.godot/imported/Jost-ThinItalic.ttf-b0e7d6efe12ec4f6370bdc406dc171b8.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/project.godot b/project.godot index 8952854..27ddd44 100644 --- a/project.godot +++ b/project.godot @@ -57,7 +57,6 @@ textures/decals/filter=5 textures/light_projectors/filter=5 environment/subsurface_scattering/subsurface_scattering_quality=3 environment/subsurface_scattering/subsurface_scattering_scale=0.02 -anti_aliasing/quality/use_debanding=true [shader_globals]