when fed with ray origin glm::vec3(0,0,0); ray direction glm::vec3(0,0,-1); and 3 vertices (already transformed to world coordinates): v0 = glm::vec3(0.5,0.5,-4.5); v1 = glm::vec3(-0.5,-0.5,-4.5); v2 = glm::vec3(0.5,-0.5,-4.5); It returns barycentric coordinates a = 0, b = 0.5 , c = 4.5 If I understand correctly, a+b+c should equal to 1. They don't seem to be barycentric coordinates, they seem like.. normal cartesian coordinates of the intersection point.