Hello, I seem to be getting something wrong, or I’m missing some detail on calculating the angle to the camera to skip drawing faces. But only when the camera DOES NOT look at the models directly. And I’m not being able to determine if it’s something wrong in the way I use nalgebra, or the way I understood the algorithm

I have this algorithm to perform culling before projecting the points:

for each mesh…

```
let world_isometry : Isometry3<f32> =
Translation3::new(mesh.position.x,mesh.position.y,mesh.position.z) *
UnitQuaternion::from_euler_angles(mesh.rotation.x, mesh.rotation.y, mesh.rotation.z);
```

for each face on the mesh

```
if !self.is_backface_b(&mesh.vertices[face.a], &camera, &face, &world_isometry) {
// draw face
}
```

This is the culling algorithm:

```
fn is_backface_b(&self,face_vertex : &Vertex, camera : &Camera, face:&Face, world_mat : &Isometry3<f32>) -> bool {
let cam_pos : Point3<f32> = &camera.position;
let view_vector : Point3<f32> = cam_pos - face_vertex.coordinates;
let normal : Point3<f32> = world_mat.transform_point(&face.normal);
let result : f32 = view_vector.dot(&normal.coords);
result < 0.0
}
```

This seems to work OK when the camera is looking directly at the meshes, but draws extra triangles (and hides others) if the camera actually looks at the center of the screen. I’m pretty sure I’m missing something.

Any help is greatly appreciated.