From 49cbd13560a41b254f9b17d84c4667ae75ab71a9 Mon Sep 17 00:00:00 2001 From: hgn Date: Mon, 11 Dec 2023 16:03:31 +0000 Subject: [PATCH] allow option for backfaces in ray_triangle --- vg_m.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vg_m.h b/vg_m.h index 68e2304..2de095e 100644 --- a/vg_m.h +++ b/vg_m.h @@ -2017,7 +2017,7 @@ int ray_aabb1( boxf box, v3f co, v3f dir_inv, f32 dist ) /* Time of intersection with ray vs triangle */ static int ray_tri( v3f tri[3], v3f co, - v3f dir, f32 *dist ) + v3f dir, f32 *dist, int backfaces ) { f32 const kEpsilon = 0.00001f; @@ -2033,7 +2033,7 @@ static int ray_tri( v3f tri[3], v3f co, v3_cross( dir, v1, h ); v3_cross( v0, v1, n ); - if( v3_dot( n, dir ) > 0.0f ) /* Backface culling */ + if( (v3_dot( n, dir ) > 0.0f) && !backfaces ) /* Backface culling */ return 0; /* Parralel */ @@ -2171,7 +2171,7 @@ static int spherecast_triangle( v3f tri[3], f32 t_min = INFINITY, t1; - if( ray_tri( sum, co, dir, &t1 ) ){ + if( ray_tri( sum, co, dir, &t1, 0 ) ){ t_min = vg_minf( t_min, t1 ); hit = 1; } -- 2.25.1