A dungeon delver roguelike using Pathfinder 2nd edition rules

Added noise to occlusion effect and removed objects behind character

+41 -18
+3 -2
dungeonRoom/dark_grey_toon.tres
··· 1 - [gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://bcrajpdxvudjm"] 1 + [gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://bcrajpdxvudjm"] 2 2 3 3 [ext_resource type="Shader" uid="uid://bctprfe3lxb5q" path="res://shader/toon.gdshader" id="1_pi516"] 4 4 [ext_resource type="Texture2D" uid="uid://8dsy7p7mnlae" path="res://shader/color-gradient.tres" id="2_d7tuu"] 5 5 [ext_resource type="Texture2D" uid="uid://cqtqj3c3voq11" path="res://shader/fresnel-gradient.tres" id="3_uxqct"] 6 + [ext_resource type="Texture2D" uid="uid://7qrb2gkufb4e" path="res://shader/shader_noise.tres" id="4_d7tuu"] 6 7 7 8 [resource] 8 9 render_priority = 0 ··· 22 23 shader_parameter/color_ramp3 = ExtResource("3_uxqct") 23 24 shader_parameter/outline_color = Color(0, 0, 0, 1) 24 25 shader_parameter/outline_factor = 0.0 25 - shader_parameter/mask_factor = 40.0 26 26 shader_parameter/player_pos = Vector3(0, 0, 0) 27 27 shader_parameter/camera_pos = Vector3(0, 0, 0) 28 + shader_parameter/noise_tex = ExtResource("4_d7tuu")
+3 -3
dungeonRoom/grey_toon.tres
··· 1 - [gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://c6k5o46j7lm7o"] 1 + [gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://c6k5o46j7lm7o"] 2 2 3 3 [ext_resource type="Shader" uid="uid://bctprfe3lxb5q" path="res://shader/toon.gdshader" id="1_tddeb"] 4 4 [ext_resource type="Texture2D" uid="uid://8dsy7p7mnlae" path="res://shader/color-gradient.tres" id="2_enua1"] 5 5 [ext_resource type="Texture2D" uid="uid://cqtqj3c3voq11" path="res://shader/fresnel-gradient.tres" id="3_rvn3b"] 6 + [ext_resource type="Texture2D" uid="uid://7qrb2gkufb4e" path="res://shader/shader_noise.tres" id="4_enua1"] 6 7 7 8 [resource] 8 9 render_priority = 0 ··· 22 23 shader_parameter/color_ramp3 = ExtResource("3_rvn3b") 23 24 shader_parameter/outline_color = Color(0, 0, 0, 1) 24 25 shader_parameter/outline_factor = 0.0 25 - shader_parameter/use_mask = true 26 - shader_parameter/mask_factor = 15.0 27 26 shader_parameter/player_pos = Vector3(0, 0, 0) 28 27 shader_parameter/camera_pos = Vector3(0, 0, 0) 28 + shader_parameter/noise_tex = ExtResource("4_enua1")
+3 -3
dungeonRoom/iron_toon.tres
··· 1 - [gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://bb5ocekjulied"] 1 + [gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://bb5ocekjulied"] 2 2 3 3 [ext_resource type="Shader" uid="uid://bctprfe3lxb5q" path="res://shader/toon.gdshader" id="1_08l6v"] 4 4 [ext_resource type="Texture2D" uid="uid://8dsy7p7mnlae" path="res://shader/color-gradient.tres" id="2_k1l1q"] 5 5 [ext_resource type="Texture2D" uid="uid://cqtqj3c3voq11" path="res://shader/fresnel-gradient.tres" id="3_bpgg8"] 6 + [ext_resource type="Texture2D" uid="uid://7qrb2gkufb4e" path="res://shader/shader_noise.tres" id="4_k1l1q"] 6 7 7 8 [resource] 8 9 render_priority = 0 ··· 22 23 shader_parameter/color_ramp3 = ExtResource("3_bpgg8") 23 24 shader_parameter/outline_color = Color(0, 0, 0, 1) 24 25 shader_parameter/outline_factor = 0.0 25 - shader_parameter/use_mask = true 26 - shader_parameter/mask_factor = 15.0 27 26 shader_parameter/player_pos = Vector3(0, 0, 0) 28 27 shader_parameter/camera_pos = Vector3(0, 0, 0) 28 + shader_parameter/noise_tex = ExtResource("4_k1l1q")
+3 -3
dungeonRoom/red_wood_toon.tres
··· 1 - [gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://db7fnrpcijd01"] 1 + [gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://db7fnrpcijd01"] 2 2 3 3 [ext_resource type="Shader" uid="uid://bctprfe3lxb5q" path="res://shader/toon.gdshader" id="1_i58me"] 4 4 [ext_resource type="Texture2D" uid="uid://8dsy7p7mnlae" path="res://shader/color-gradient.tres" id="2_66nmx"] 5 5 [ext_resource type="Texture2D" uid="uid://cqtqj3c3voq11" path="res://shader/fresnel-gradient.tres" id="3_dso3y"] 6 + [ext_resource type="Texture2D" uid="uid://7qrb2gkufb4e" path="res://shader/shader_noise.tres" id="4_66nmx"] 6 7 7 8 [resource] 8 9 render_priority = 0 ··· 22 23 shader_parameter/color_ramp3 = ExtResource("3_dso3y") 23 24 shader_parameter/outline_color = Color(0, 0, 0, 1) 24 25 shader_parameter/outline_factor = 0.0 25 - shader_parameter/use_mask = true 26 - shader_parameter/mask_factor = 15.0 27 26 shader_parameter/player_pos = Vector3(0, 0, 0) 28 27 shader_parameter/camera_pos = Vector3(0, 0, 0) 28 + shader_parameter/noise_tex = ExtResource("4_66nmx")
+3 -3
dungeonRoom/steel_toon.tres
··· 1 - [gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://dkpec0c7v35m0"] 1 + [gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://dkpec0c7v35m0"] 2 2 3 3 [ext_resource type="Shader" uid="uid://bctprfe3lxb5q" path="res://shader/toon.gdshader" id="1_u25mi"] 4 4 [ext_resource type="Texture2D" uid="uid://8dsy7p7mnlae" path="res://shader/color-gradient.tres" id="2_0xvvm"] 5 5 [ext_resource type="Texture2D" uid="uid://cqtqj3c3voq11" path="res://shader/fresnel-gradient.tres" id="3_4uitu"] 6 + [ext_resource type="Texture2D" uid="uid://7qrb2gkufb4e" path="res://shader/shader_noise.tres" id="4_0xvvm"] 6 7 7 8 [resource] 8 9 render_priority = 0 ··· 22 23 shader_parameter/color_ramp3 = ExtResource("3_4uitu") 23 24 shader_parameter/outline_color = Color(0, 0, 0, 1) 24 25 shader_parameter/outline_factor = 0.0 25 - shader_parameter/use_mask = true 26 - shader_parameter/mask_factor = 15.0 27 26 shader_parameter/player_pos = Vector3(0, 0, 0) 28 27 shader_parameter/camera_pos = Vector3(0, 0, 0) 28 + shader_parameter/noise_tex = ExtResource("4_0xvvm")
+12
shader/shader_noise.tres
··· 1 + [gd_resource type="NoiseTexture2D" load_steps=3 format=3 uid="uid://7qrb2gkufb4e"] 2 + 3 + [sub_resource type="Gradient" id="Gradient_f7yoh"] 4 + 5 + [sub_resource type="FastNoiseLite" id="FastNoiseLite_f7yoh"] 6 + noise_type = 3 7 + 8 + [resource] 9 + width = 1024 10 + height = 1024 11 + color_ramp = SubResource("Gradient_f7yoh") 12 + noise = SubResource("FastNoiseLite_f7yoh")
+14 -4
shader/toon.gdshader
··· 1 1 shader_type spatial; 2 - render_mode blend_mix,depth_draw_opaque,cull_disabled,diffuse_toon,specular_toon; 2 + render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_toon,specular_toon; 3 3 uniform vec4 albedo : source_color; 4 4 uniform sampler2D texture_albedo : source_color,filter_linear_mipmap,repeat_enable; 5 5 uniform float point_size : hint_range(0,128); ··· 29 29 uniform vec3 camera_pos; 30 30 varying vec3 world_pos; 31 31 32 + uniform sampler2D noise_tex; 33 + 32 34 float fresnel(float amount, vec3 normal, vec3 view) { 33 35 return pow((1.0 - clamp(dot(normalize(normal), normalize(view)), 0.0, 1.0)), amount); 34 36 } 35 37 36 - float mask(vec3 player, vec3 camera, vec3 world, float depth, float factor) { 37 - return clamp(((1.0 - dot(normalize(player - camera), normalize(world - camera)))) / factor, 0.0, 1.0); 38 + float mask(vec3 player, vec3 camera, vec3 world, float depth, float factor, vec2 base_uv) { 39 + float player_to_cam = distance(player, camera); 40 + float pixel_to_cam = distance(world, camera); 41 + 42 + if (pixel_to_cam >= player_to_cam) { 43 + return 1.0; 44 + } else { 45 + vec4 noise = texture(noise_tex, world_pos.xz); 46 + return clamp((((1.0 - dot(normalize(player - camera), normalize(world - camera)))) / factor) - (noise.r * 0.2), 0.0, 1.0); 47 + } 38 48 } 39 49 40 50 void vertex() { ··· 67 77 68 78 if (use_mask) { 69 79 float depth = FRAGCOORD.z; 70 - ALPHA = mask(player_pos, camera_pos, world_pos, depth, mask_factor); 80 + ALPHA = mask(player_pos, camera_pos, world_pos, depth, mask_factor, base_uv); 71 81 } else { 72 82 ALPHA = 1.0; 73 83 }