Are the normals correct ? I think they are causing this. Maybe try Stevies MeshNormal function in this topic:
http://www.blitzbasic.com/Community/posts.php?topic=64797
It needs the mesh to be unwelded, he posted another function for that further below.
http://www.blitzbasic.com/Community/posts.php?topic=64797
It needs the mesh to be unwelded, he posted another function for that further below.