add func to calc tangent
change gemoetry append func to std::function, so we can change it easier
add NormalMap test