@@ -91,6 +91,12 @@ test perspectiveProjection {
91
91
const clip_space_left : vector.vec4 = .{ 1 , 0 , 0 , 1 };
92
92
const perspective_transformed_left = vector .normalize (transformVector (p , clip_space_left ));
93
93
94
+ try std .testing .expect (float .equal (plane_extracted_left [0 ], perspective_transformed_left [0 ], 0.000001 ));
95
+ try std .testing .expect (float .equal (plane_extracted_left [1 ], perspective_transformed_left [1 ], 0.000001 ));
96
+ try std .testing .expect (float .equal (plane_extracted_left [2 ], perspective_transformed_left [2 ], 0.000001 ));
97
+ try std .testing .expect (float .equal (plane_extracted_left [3 ], perspective_transformed_left [3 ], 0.000001 ));
98
+
99
+ // This doesn't really test the perspective function, it's testing camera math using perspective values.
94
100
var cam = identity ();
95
101
cam = transformMatrix (cam , translate (10 , -3 , 9 ));
96
102
cam = transformMatrix (cam , rotationX (std .math .pi * 0.2 ));
@@ -105,8 +111,10 @@ test perspectiveProjection {
105
111
const f_camera = vector .mul (1.0 / @sqrt (g * g + s * s ), camera_space_left );
106
112
const f_world = transformVector (transpose (inverse (cam )), f_camera );
107
113
108
- try std .testing .expect (float .equal (plane_extracted_left [0 ], perspective_transformed_left [0 ], 0.000001 ));
109
114
try std .testing .expect (float .equal (left_plane .parameterized [0 ], f_world [0 ], 0.000001 ));
115
+ try std .testing .expect (float .equal (left_plane .parameterized [1 ], f_world [1 ], 0.000001 ));
116
+ try std .testing .expect (float .equal (left_plane .parameterized [2 ], f_world [2 ], 0.000001 ));
117
+ try std .testing .expect (float .equal (left_plane .parameterized [3 ], f_world [3 ], 0.000001 ));
110
118
}
111
119
112
120
pub inline fn perspectiveProjectionCamera (perspective_plane_distance_g : f32 , aspect_ratio_s : f32 , near : f32 , far : f32 ) matrix {
0 commit comments