From 1744e6a72735d699d708b1c6dfcc30ea18a4aff7 Mon Sep 17 00:00:00 2001 From: Spencer Killen Date: Sat, 11 Nov 2023 13:08:24 -0700 Subject: [PATCH] occlusion --- attribution.txt | 3 + blends/.gitignore | 6 ++ blends/small_room.blend | 4 +- blends/small_room.blend1 | Bin 959896 -> 1003500 bytes .../control_target_overlay.gdshader | 19 +++++ .../control_target_overlay.material | 4 +- godot/control_scheme/controller.gd | 58 ++++----------- godot/control_scheme/is_targetable.gd | 69 ++++++++++++++++++ godot/control_scheme/is_targetable.tscn | 6 ++ godot/shaders/noise.gdshaderinc | 31 ++++++++ godot/small_room.glb | 4 +- .../control_scheme/test_basic_controls.tscn | 9 ++- 12 files changed, 160 insertions(+), 53 deletions(-) create mode 100644 blends/.gitignore create mode 100644 godot/control_scheme/control_target_overlay.gdshader create mode 100644 godot/control_scheme/is_targetable.gd create mode 100644 godot/control_scheme/is_targetable.tscn create mode 100644 godot/shaders/noise.gdshaderinc diff --git a/attribution.txt b/attribution.txt index 7e65028..a46e1d3 100644 --- a/attribution.txt +++ b/attribution.txt @@ -6,3 +6,6 @@ Shaders: Watercolor: https://c-chen99.github.io/watercolorShader/final.html CMKY: https://www.shadertoy.com/view/MltBW4 Fresnel: https://godotshaders.com/snippet/fresnel/ + +Code: +occlussion shader: https://www.reddit.com/r/godot/comments/rww6e9/comment/hrfa51g/?utm_source=share&utm_medium=web2x&context=3 \ No newline at end of file diff --git a/blends/.gitignore b/blends/.gitignore new file mode 100644 index 0000000..989f160 --- /dev/null +++ b/blends/.gitignore @@ -0,0 +1,6 @@ +*.blend1 +*.blend2 +*.blend3 +*.blend4 +*.blend5 + diff --git a/blends/small_room.blend b/blends/small_room.blend index b830aaf..4f65553 100644 --- a/blends/small_room.blend +++ b/blends/small_room.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a7ca326bee07aee490ffc0c13074af5848a16afe08f0d933354b25181fef8eb2 -size 959896 +oid sha256:c6e3a6002d6f2611ab0741f65e74627d3f9aa36cd5f41ff9b1738ca35851c66d +size 1003500 diff --git a/blends/small_room.blend1 b/blends/small_room.blend1 index 36d92e6b07e0724d3d83e44eb3cad514af01f470..ba196300e3ac968af4b9f525cde8741dad1b9ef0 100644 GIT binary patch delta 149403 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 delta 128767 zcmeEv34B$>^?&YL@CJi`Boash2_zvQ2_$48WDn~DQ9%$vQ9(uHhJdJX!QfV(JMpO( zYpbHI#%isU+DBVuaeda6_ScrS+MiV0raw`kww7A;{?GT!IWO;Bf@rJt_y7ON=W{c6 z=ALcNnK^T2?#z8V?`~ZCLfxA5VD9^m|Kg+0AqxxJ&OGR)juig0=>KZErqWeZROA*G z7P=)RC2nqRZl{~$FD)(YbPGD)2>9t?r~8M<0IO(xUS1x<0GeQ)jC=_yATU*_+W5<4utK;(ke+jT1pG(^P3jkB+ z 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 Z(==@Oo~U8Q{hwl6LuavV`@cT>e*wC3hA#jB diff --git a/godot/control_scheme/control_target_overlay.gdshader b/godot/control_scheme/control_target_overlay.gdshader new file mode 100644 index 0000000..be794fe --- /dev/null +++ b/godot/control_scheme/control_target_overlay.gdshader @@ -0,0 +1,19 @@ +shader_type spatial; + +#include "res://shaders/noise.gdshaderinc" + +render_mode depth_prepass_alpha, depth_test_disabled; + +void vertex() { + VERTEX *= 0.999; +} + +void fragment() { + float scale = 50.0; + float speed = 1000.0; + float f = random2(round(UV * scale)/scale + round(TIME*speed)/speed); + if (f > 0.1) { + discard; + } + ALBEDO = vec3(0.0); +} diff --git a/godot/control_scheme/control_target_overlay.material b/godot/control_scheme/control_target_overlay.material index fcdc96e..cfaaf59 100644 --- a/godot/control_scheme/control_target_overlay.material +++ b/godot/control_scheme/control_target_overlay.material @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83a5adc4b833fc7a42cad6a04f5b3d502ca33fc2c0545d350f546aa998cb8117 -size 175 +oid sha256:9dc4b0e289692491a6dfe242e569fc0891cdd83a85220fc7e81b5cdabec140e9 +size 286 diff --git a/godot/control_scheme/controller.gd b/godot/control_scheme/controller.gd index bcf102e..0f6d6b1 100644 --- a/godot/control_scheme/controller.gd +++ b/godot/control_scheme/controller.gd @@ -1,9 +1,13 @@ extends Node3D @export var camera: Camera3D -@export var target: Node3D +@export var initial_target: Node3D +var target: Targetable = null @export var sensitivity := 0.01 +func _ready(): + set_target(initial_target) + func _input(event): if event is InputEventMouseMotion: rotate_view(event.relative*sensitivity) @@ -18,46 +22,12 @@ func rotate_view(amount: Vector2): %rotate_helper.rotate_z(amount.y) %rotate_helper.rotation_degrees.z = clampf(%rotate_helper.rotation_degrees.z, -77, 77) -func set_target(node: Node3D, should_unset=true): - if target != null and should_unset: - pass - -var old_material_props = null - -func change_material(mesh: MeshInstance3D): - if old_material_props != null: - push_error("UH OOH!!! 628") - old_material_props = [] - for i in range(mesh.get_surface_override_material_count()): - var mat := mesh.get_active_material(i) - if mat is BaseMaterial3D: - old_material_props.append(mat.depth_draw_mode) - mat.depth_draw_mode = BaseMaterial3D.DEPTH_DRAW_DISABLED - push_next_pass(mat, preload("control_target_overlay.material")) - else: - old_material_props.append(null) - push_error("Don't know how to handle shader material for", mesh) - -func unchange_material(mesh: MeshInstance3D): - if old_material_props == null: - push_error("UH OOH!!! 629") - for i in range(mesh.get_surface_override_material_count()): - var mat := mesh.get_active_material(i) - if mat is BaseMaterial3D: - mat.depth_draw_mode = old_material_props[i] - pop_next_pass(mat) - else: - push_error("Don't know how to handle shader material for", mesh) - -func push_next_pass(m: Material, with: Material): - if m.next_pass != null: - push_next_pass(m.next_pass, with) - else: - m.next_pass = with - -func pop_next_pass(m: Material): - if m == null: - return true - if pop_next_pass(m.next_pass): - m.next_pass = null - return false +func set_target(node: Node3D): + var ntarget = Targetable.is_targetable(node) + if ntarget == null: + push_error("Node is node targetable", node) + return + if target != null: + target.unmake_target() + ntarget.make_target() + target = ntarget diff --git a/godot/control_scheme/is_targetable.gd b/godot/control_scheme/is_targetable.gd new file mode 100644 index 0000000..846a38e --- /dev/null +++ b/godot/control_scheme/is_targetable.gd @@ -0,0 +1,69 @@ +extends Node3D +class_name Targetable + +@export var attached_to: Node3D = owner + +static func is_targetable(node: Node3D) -> Targetable: + return node.get_node_or_null("is_targetable") + +func make_target(): + walk_meshes_post_order(self.get_parent(), change_all_materials) + +func unmake_target(): + walk_meshes_post_order(self.get_parent(), unchange_all_materials) + +func walk_meshes_post_order(parent: Node3D, f: Callable): + for child in parent.get_children(): + walk_meshes_post_order(child, f) + if parent is MeshInstance3D: + f.call(parent) + +func change_all_materials(mesh: MeshInstance3D): + for i in range(mesh.get_surface_override_material_count()): + var original_mat: BaseMaterial3D = mesh.get_active_material(i) + var layer0 = original_mat.duplicate() + var layer1 = preload("control_target_overlay.material").duplicate() + # Non-occlused + var layer2 = original_mat.duplicate() + layer0.next_pass = layer1 + layer1.next_pass = layer2 + + layer0.render_priority = 0 + layer1.render_priority = 1 + layer2.render_priority = 2 + + + + layer0.no_depth_test = true + layer0.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA_DEPTH_PRE_PASS + layer0.grow = true + layer0.grow_amount = -0.001 + layer0.albedo_color = layer0.albedo_color.darkened(0.5) + + layer2.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA_DEPTH_PRE_PASS + layer2.depth_draw_mode = BaseMaterial3D.DEPTH_DRAW_ALWAYS + + mesh.set_surface_override_material(i, layer0) + #mesh.set_surface_override_material(i, mat) + #mat.next_pass = preload("control_target_overlay.material") + + +func unchange_all_materials(mesh: MeshInstance3D): + for i in range(mesh.get_surface_override_material_count()): + var mat := mesh.get_active_material(i) + unchange_material(mat) + while mat.next_pass != null: + unchange_material(mat.next_pass) + mat = mat.next_pass + mat.next_pass = null + +func change_material(mat: BaseMaterial3D) -> BaseMaterial3D: + mat = mat.duplicate() + mat.render_priority = 100 + mat.no_depth_test = true + return mat + +func unchange_material(mat: BaseMaterial3D) -> BaseMaterial3D: + mat.render_priority = 0 + mat.no_depth_test = false + return mat diff --git a/godot/control_scheme/is_targetable.tscn b/godot/control_scheme/is_targetable.tscn new file mode 100644 index 0000000..ab49342 --- /dev/null +++ b/godot/control_scheme/is_targetable.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://w6cldokq87k0"] + +[ext_resource type="Script" path="res://control_scheme/is_targetable.gd" id="1_108lw"] + +[node name="is_targetable" type="Node3D"] +script = ExtResource("1_108lw") diff --git a/godot/shaders/noise.gdshaderinc b/godot/shaders/noise.gdshaderinc new file mode 100644 index 0000000..0304814 --- /dev/null +++ b/godot/shaders/noise.gdshaderinc @@ -0,0 +1,31 @@ + +/* https://www.shadertoy.com/view/XsX3zB + * + * The MIT License + * Copyright © 2013 Nikita Miropolskiy + * + * ( license has been changed from CCA-NC-SA 3.0 to MIT + * + * but thanks for attributing your source code when deriving from this sample + * with a following link: https://www.shadertoy.com/view/XsX3zB ) + * + */ + +/* discontinuous pseudorandom uniformly distributed in [-0.5, +0.5]^3 */ +vec3 random3(vec3 c) { + float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0))); + vec3 r; + r.z = fract(512.0*j); + j *= .125; + r.x = fract(512.0*j); + j *= .125; + r.y = fract(512.0*j); + return r-0.5; +} + +// https://godotshaders.com/snippet/random-value/ +float random2(vec2 uv) { + return fract(sin(dot(uv.xy, + vec2(12.9898,78.233))) * 43758.5453123); +} + diff --git a/godot/small_room.glb b/godot/small_room.glb index ba1e75e..aae427b 100644 --- a/godot/small_room.glb +++ b/godot/small_room.glb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aa4ad5b52dd06febea07af3f68b655f620cd3356345bd41e8de28925bda52962 -size 13732 +oid sha256:06bb29dbd079ac6490365519f6672713690f9bc5ec6ce36fc48ed9d6bb22d8cb +size 17928 diff --git a/godot/tests/control_scheme/test_basic_controls.tscn b/godot/tests/control_scheme/test_basic_controls.tscn index 0d5bc9e..903d29d 100644 --- a/godot/tests/control_scheme/test_basic_controls.tscn +++ b/godot/tests/control_scheme/test_basic_controls.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=4 format=3 uid="uid://70bb2yncbl"] +[gd_scene load_steps=5 format=3 uid="uid://70bb2yncbl"] [ext_resource type="PackedScene" uid="uid://bua7f25rpewkp" path="res://small_room.glb" id="1_2ticn"] [ext_resource type="PackedScene" uid="uid://drmb4sitb74fx" path="res://control_scheme/controller.tscn" id="2_dcvuq"] +[ext_resource type="PackedScene" uid="uid://w6cldokq87k0" path="res://control_scheme/is_targetable.tscn" id="2_y2131"] [sub_resource type="Environment" id="Environment_f0m14"] ambient_light_source = 2 @@ -10,14 +11,16 @@ ambient_light_energy = 0.5 [node name="small_room" instance=ExtResource("1_2ticn")] +[node name="is_targetable" parent="grape" index="0" instance=ExtResource("2_y2131")] + [node name="WorldEnvironment" type="WorldEnvironment" parent="." index="3"] environment = SubResource("Environment_f0m14") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="WorldEnvironment" index="0"] transform = Transform3D(1, 0, 0, 0, 0.933762, 0.357895, 0, -0.357895, 0.933762, 0, 1.43864, 1.81738) -[node name="controller" parent="." index="4" node_paths=PackedStringArray("camera", "target") instance=ExtResource("2_dcvuq")] +[node name="controller" parent="." index="4" node_paths=PackedStringArray("camera", "initial_target") instance=ExtResource("2_dcvuq")] camera = NodePath("Camera3D") -target = NodePath("../grape") +initial_target = NodePath("../grape") [node name="Camera3D" type="Camera3D" parent="controller" index="1"]