箱の中に水を張って水面の反射と屈折をシミュレートするプログラムを作成しています。
水面にマルチテクスチャで反射と屈折のテクスチャを合成して張っています。

で、反射はキューブマップを使って求めているのですが、屈折の描画方法で詰まっています。
屈折したベクトルと箱の交点を求めることでテクスチャ座標は求まるのですが、
箱の底面で交わるとは限らず、側面と交わることもあります。また、水中に物体を沈めた場合、
その物体と交わる場合もあります。

そういうような底面以外で交わった場合には、底面のテクスチャだけではどうしようもなくなってしまうのですが、
どうすればいいのでしょうか?