versuch quad szene zu machen zeigt dass meine kollisions erkennung nicht klappt. ich habe versucht eine neue fuer quadrate zu inplementieren, aber ich sehe nur einen weissen streifen

This commit is contained in:
any
2026-08-26 02:13:28 +02:00
parent 9478c655a9
commit 5111a7693c
9 changed files with 118 additions and 14 deletions
+17 -5
View File
@@ -51,14 +51,26 @@ vec3 collisionPlane(ray *lightray, plane *object) {
vec3 collisionQuad(ray *lightray, quad *object) {
vec3 collisionPoint;
vec3 corner = vec3Add(vec3Add(object->v1, object->v2),object->origin);
plane Plane = (plane){object->origin, object->normal};
collisionPoint = collisionPlane(lightray, &Plane);
if (collisionPoint.x < corner.x && collisionPoint.y < corner.y && collisionPoint.z < corner.z && collisionPoint.x > object->origin.x && collisionPoint.y > object->origin.y && collisionPoint.z > object->origin.z) {
return collisionPoint;
}
return (vec3){-10000000, -10000000, -10000000};
if (collisionPoint.x <= -1000000) return collisionPoint;
vec3 localCollisionPoint = vec3Subtract(collisionPoint, object->origin);
double scalar1 = vec3Product(object->v1,localCollisionPoint);
double scalar2 = vec3Product(object->v2,localCollisionPoint);
if (scalar1 < 0 || scalar2 < 0) return (vec3){-10000000, -10000000, -10000000};
double scalarSelf1 = vec3Product(object->v1,object->v1);
double scalarSelf2 = vec3Product(object->v2,object->v2);
if (scalar1 / scalarSelf1 > 1 || scalar2 / scalarSelf2 > 1) return (vec3){-10000000, -10000000, -10000000};
return collisionPoint;
}