It seems weird that you're getting coordinates outside the triangle. I'm using btBvhTriangleMesh shape, and I get valid positions.
Same here, the collision shape is a btBvhTriangleMeshShape that I feed using a btTriangleIndexVertexArray from a custom source. That same custom source is used for lookup of the triangles in the ray caster.
Hmm.... now that I mention it, when rendering, I have to offset the visible mesh by -4.52 on the y-axis to make it match the collision shape - yup, a real wtf, and something I'll have to resolve, sooner or later. The same probably applies to the ray cast result! Didn't think of that, until now... I'll have to try that
Maybe it would be more correct to use the btTriangleIndexVertexArray instead (for positions)...
The main advantage from modifying the normal is smoothing out the seams between triangle edges, so it'd only help that if your normals were continuous across edges.
Yup, that's something I'll have to do correctly as well... not yet complete. However, I was thinking if I add interpolation now when the normals are hard there should at least be no difference in behaviour
It might be useful for an off-road game, or for when you drive outside the optimal parts of the track.
Yeah, I realise it's usefulness is quite limited and most probably not worth the effort