I'm working on this now. After a collision is detected (this is all in 3d, by the way), simply sample 3 terrain points centered around the point where the collision was detected. That will give a triangle, which you then find the normal of. The normal of the triangle, combined with the current vector of the projectile, is all you need for realistic and accurate 3d collision resolution between cliffs and projectiles.
0
I'm working on this now. After a collision is detected (this is all in 3d, by the way), simply sample 3 terrain points centered around the point where the collision was detected. That will give a triangle, which you then find the normal of. The normal of the triangle, combined with the current vector of the projectile, is all you need for realistic and accurate 3d collision resolution between cliffs and projectiles.