commit 32e47a1dec694729df6a2d032840b3be9f9e9416
parent df450e75206b25f114e547eed4a0ea42eab448e3
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Fri, 13 Jan 2017 14:16:09 +0100
Fix quadric intersection
The quadric transformation was wrong on ray intersection.
Diffstat:
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/ssol_shape.c b/src/ssol_shape.c
@@ -802,9 +802,9 @@ punched_shape_project_point
ASSERT(shape->type == SHAPE_PUNCHED);
/* Compute world<->quadric space transformations */
- d33_muld33(R, shape->quadric.transform, transform);
- d33_muld3 (T, shape->quadric.transform, transform+9);
- d3_add(T, shape->quadric.transform + 9, T);
+ d33_muld33(R, transform, shape->quadric.transform);
+ d33_muld3(T, transform, shape->quadric.transform+9);
+ d3_add(T, T, transform + 9);
d33_invtrans(R_invtrans, R);
d3_minus(T_inv, T);
@@ -848,9 +848,9 @@ punched_shape_trace_ray
ASSERT(shape->type == SHAPE_PUNCHED);
/* Compute world<->quadric space transformations */
- d33_muld33(R, shape->quadric.transform, transform);
- d33_muld3 (T, shape->quadric.transform, transform+9);
- d3_add(T, shape->quadric.transform + 9, T);
+ d33_muld33(R, transform, shape->quadric.transform);
+ d33_muld3(T, transform, shape->quadric.transform+9);
+ d3_add(T, T, transform + 9);
d33_invtrans(R_invtrans, R);
d3_minus(T_inv, T);