   transforming vectors to different basis
  Hi, I have a method that randomly samples a point on the hemisphere, I use that in my raytracer to sample the incoming light from sky. The sampled direction is created with an 'up' vector of (0,1,0), but now I must convert it using the normal of the intersection point, so that the hemisphere is relative to the surface orientation.At first I thought to create a transformation matrix, but this would require me to first calculate x and y vectors (I don't have tangent and bitangent available in this part of code), then multiply my sampled direction with the matrix. Is there a faster way to do this?Thank you!   