From 627e31820e3ccf62e17ed99ec358d89def6ab521 Mon Sep 17 00:00:00 2001 From: hodasemi Date: Wed, 12 Mar 2025 08:27:36 +0100 Subject: [PATCH] Attempt to fix transparency problem --- .../shaders/raytracing/hardware/default/closesthit.rchit | 5 ++++- .../shaders/raytracing/hardware/default/raygen.rgen | 2 -- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/engine/src/scene/rendering/shaders/raytracing/hardware/default/closesthit.rchit b/engine/src/scene/rendering/shaders/raytracing/hardware/default/closesthit.rchit index 517bcca..ae8d8d5 100644 --- a/engine/src/scene/rendering/shaders/raytracing/hardware/default/closesthit.rchit +++ b/engine/src/scene/rendering/shaders/raytracing/hardware/default/closesthit.rchit @@ -34,6 +34,7 @@ void own_implementation() { vec3 diffuse = tmp.xyz; float alpha = tmp.w; + float max_alpha = alpha; // get normal vec3 normal = normal(triangle); @@ -165,12 +166,14 @@ void own_implementation() { pay_load.depth--; object_color = mix(pay_load.color.xyz, object_color, alpha); + alpha = pay_load.color.w; + max_alpha = max(max_alpha, alpha); } // color is at least emissive factor color vec3 resulting_color = max(object_color, diffuse * emissive_factor); - pay_load.color = vec4(resulting_color, alpha); + pay_load.color = vec4(resulting_color, max_alpha); pay_load.distance = gl_HitTEXT; } diff --git a/engine/src/scene/rendering/shaders/raytracing/hardware/default/raygen.rgen b/engine/src/scene/rendering/shaders/raytracing/hardware/default/raygen.rgen index d0022b6..60fdef6 100644 --- a/engine/src/scene/rendering/shaders/raytracing/hardware/default/raygen.rgen +++ b/engine/src/scene/rendering/shaders/raytracing/hardware/default/raygen.rgen @@ -59,8 +59,6 @@ void main() pay_load_index ); - - vec3 position; if (pay_load.distance == -1.0) {