レイとトーラスの交差判定はGraphics Gems IIの Intersecting a Ray with An Elliptical Torus (Cychosz, Joseph M) に、 その中で使ってる、4次方程式を解くSolveQuarticは、Graphics Gems Iの Cubic and Quartic Roots (Schwarze, Jochen) にソースがある。
法線ベクトルは偏微分を使って求めると、 $$ \begin{pmatrix} 4x(x^2 + y^2 + z^2 - (a^2 + b^2)) \\ 4y(x^2 + y^2 + z^2 - (a^2 + b^2) + 2a^2) \\ 4z(x^2 + y^2 + z^2 - (a^2 + b^2)) \end{pmatrix} $$ だそうだ。 試してはない。