selbe checks wie bei sphere (shadowachne und co.) eingebaut und das hat es gefixxt

This commit is contained in:
any
2026-08-26 03:32:22 +02:00
parent a9d83e82ff
commit 0712e988df
4 changed files with 4 additions and 2 deletions
+2
View File
@@ -44,6 +44,7 @@ vec3 collisionPlane(ray *lightray, plane *object) {
if (vec3Product(lightray->direction, object->normal) >= 0) return (vec3){-10000000, -10000000, -10000000};
r = vec3Product(object->normal, vec3Subtract(object->origin, lightray->origin)) * 1/(vec3Product(lightray->direction, object->normal));
if (r <= 1e-6) return (vec3){-10000000, -10000000, -10000000};
collisionPoint = vec3Add(lightray->origin, vec3Scale(lightray->direction, r));
return collisionPoint;
@@ -55,6 +56,7 @@ vec3 collisionQuad(ray *lightray, quad *object) {
collisionPoint = collisionPlane(lightray, &Plane);
if (collisionPoint.x <= -1000000) return collisionPoint;
if (epsilonCheck(lightray->origin, collisionPoint) == 0) return (vec3){-10000000, -10000000, -10000000};
vec3 localCollisionPoint = vec3Subtract(collisionPoint, object->origin);