コサイン加重半球を使用してアンビエント オクルージョンを実装しています。これまでのところ、半球は正の z 方向を指している法線 (0,0,1) を中心にしていると想定しています。天頂角と方位角 $$0 < \theta < \pi/2, 0 < \phi < 2\pi$$ を使用して、この半球に光線を投射します。ここで、光線の方向は次のように計算されます (sin theta cos phi, sin theta sin phi、cos シータ)。
これを一般化して、任意の法線に対して機能させるにはどうすればよいですか?