Bug fixes and polishing

Co-authored-by: m.sonaglioni <m.sonaglioni@jmpgames.it>
Co-committed-by: m.sonaglioni <m.sonaglioni@jmpgames.it>
This commit was merged in pull request #29.
This commit is contained in:
2026-06-05 13:46:28 +00:00
committed by Michele Rossi
parent f97af73de6
commit cd3a40287c
182 changed files with 3475 additions and 452 deletions

View File

@@ -1,6 +1,9 @@
class_name EdgeDetectionCompositor
extends CompositorEffect
# --- MODIFICATO: Parametro esportato per l'Inspector ---
@export_range(0.0, 5.0, 0.1) var line_thickness: float = 1.0
var rd: RenderingDevice
var shader: RID
var pipeline: RID
@@ -78,8 +81,8 @@ func _render_callback(p_effect_callback_type: EffectCallbackType, p_render_data:
var texture_sampler = RDSamplerState.new()
texture_sampler = rd.sampler_create(texture_sampler)
var parameters := PackedFloat32Array([size.x, size.y, 0.0, 0.0])
# --- MODIFICATO: Inviato il parametro line_thickness nel buffer GPU ---
var parameters := PackedFloat32Array([size.x, size.y, line_thickness, 0.0])
var inv_proj_mat := p_render_data.get_render_scene_data().get_cam_projection().inverse()
var inv_proj_mat_array := PackedVector4Array([inv_proj_mat.x, inv_proj_mat.y, inv_proj_mat.z, inv_proj_mat.w])

View File

@@ -4,9 +4,11 @@
layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
// --- MODIFICATO: Inserito line_thickness e mantenuto il padding (reserved) ---
layout(set = 0, binding = 0, std430) readonly buffer Params {
vec2 raster_size;
vec2 reserved;
float line_thickness;
float reserved;
mat4 inv_proj_mat;
} params;
@@ -89,12 +91,13 @@ void main() {
// Da qui in poi, il codice prosegue normalmente solo per gli altri oggetti
// UV ofssets
// --- MODIFICATO: Aggiunto multiplier "thickness" agli UV offsets ---
float thickness = params.line_thickness;
vec2 uv_offsets[4];
uv_offsets[0] = uv_normalized + vec2(0.0, -1.0) * texel_size + offset;
uv_offsets[1] = uv_normalized + vec2(0.0, 1.0) * texel_size + offset;
uv_offsets[2] = uv_normalized + vec2(1.0, 0.0) * texel_size + offset;
uv_offsets[3] = uv_normalized + vec2(-1.0, 0.0) * texel_size + offset;
uv_offsets[0] = uv_normalized + vec2(0.0, -1.0) * texel_size * thickness + offset;
uv_offsets[1] = uv_normalized + vec2(0.0, 1.0) * texel_size * thickness + offset;
uv_offsets[2] = uv_normalized + vec2(1.0, 0.0) * texel_size * thickness + offset;
uv_offsets[3] = uv_normalized + vec2(-1.0, 0.0) * texel_size * thickness + offset;
float mask = ceil(raw_roughness);