Table of Contents
Ray vs. sphere
In $\mathbb{R}^N$, a ray of origin $\mathbf{x_r}$ and direction $\mathbf{v}$ and an N-sphere of origin $\mathbf{x_s}$ and radius $r$ intersect at $\mathbf{x}_I$ given by:
$ \mathbf{x}_I = \mathbf{x_r} + t_\pm\mathbf{v} $
where:
$$ \begin{align}
t_\pm &= \frac{\mathbf{v} \cdot \mathbf{u} \pm \sqrt{(\mathbf{v} \cdot \mathbf{u})^2 - v^2(u^2 - r^2)}}{v^2}
\mathbf{u} &= \mathbf{x_s} - \mathbf{x_r}
\end{align} $$
If the expression under the square root is negative, there is no intersection. If it's zero, $t_+ = t_-$ and there is only one intersection.
Notice that since $tv$ is the distance to intersection, $t_-$ corresponds to the closer one and $t_+$ to the further. Depending on the application, you might want to discard negative $t$'s (intersections “behind” the ray).
Surface normal
The surface normal $\mathbf{\hat{n}}$ at an intersection is given by:
$$ \begin{align}
\mathbf{r} &= t_\pm\mathbf{v} - \mathbf{u}
\mathbf{\hat{n}} &= \mathbf{\hat{r}}
\end{align} $$
Normalized v
Notice that the expression for $t_\pm$ becomes appreciably simpler if $v = 1$:
$ t_\pm &= \mathbf{v} \cdot \mathbf{u} \pm \sqrt{(\mathbf{v} \cdot \mathbf{u})^2 - (u^2 - r^2)} $
Derivation
Notice that the point of intersection lies somewhere on the line defined by the ray:
$ \mathbf{x_I} = \mathbf{x_r} + t\mathbf{v}$
for some real $t$. It also lies somewhere on the sphere:
$ \mathbf{x_I} = \mathbf{x_s} + \mathbf{r} $
for some vector $\mathbf{r}$ of length $r$. Combining the two equations and solving for $\mathbf{r}$ yields:
$ \mathbf{x_r} + t\mathbf{v} - \mathbf{x_s} = \mathbf{r} $
To simplify the algebra, substitute $\mathbf{x}_s - \mathbf{x_r} = \mathbf{u}$:
$ t\mathbf{v} - \mathbf{u} = \mathbf{r} $
Since only the length of $\mathbf{r}$ is known, the only thing that can be done at this point is equating the norms of both sides. Squared norms are more convenient in this particular case:
$$ \begin{align}
(t\mathbf{v} - \mathbf{u})^2 &= r^2
t^2v^2 + u^2 - 2t\mathbf{v} \cdot \mathbf{u} &= r^2
v^2t^2 - 2\mathbf{v} \cdot \mathbf{u}t + u^2 - r^2 &= 0
\end{align} $$
Solving the quadratic equation and simplifying:
$$ \begin{align}
t_\pm &= \frac{2\mathbf{v} \cdot \mathbf{u} \pm \sqrt{4(\mathbf{v} \cdot \mathbf{u})^2 - 4 v^2(u^2 - r^2)}}{2v^2}
t_\pm &= \frac{\mathbf{v} \cdot \mathbf{u} \pm \sqrt{(\mathbf{v} \cdot \mathbf{u})^2 - v^2(u^2 - r^2)}}{v^2}
\end{align} $$
As with any quadratic equation, there is no real solution if the expression under the square root is negative and if it's zero, the solutions coincide.
Notice that $\mathbf{r}$ is perpendicular to the sphere at an intersection. Normalizing this vector yields the surface normal $\mathbf{\hat{n}}$.