X-Git-Url: https://harrygodden.com/git/?p=vg.git;a=blobdiff_plain;f=vg_m.h;h=2de095eb544c3508af92b147dddafdbdc2c5eae6;hp=68e2304a339c13013eae62c3dd3644a62ae6118e;hb=49cbd13560a41b254f9b17d84c4667ae75ab71a9;hpb=44847e656f2bded5d2c4be87eb5a1ae8e598c798 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; }