Pues tratandose de una bola, lo mejor sería hacer esto:
Supongamos que la bola mide 8 de diametro, tienes la posicion en el espacio, el vector de direccion (vector unidad) y el incremento por velocidad (el valor que multiplicarias por el vector de direccion para obtener la nueva posicion, vamos).
Imagina ahora que ese incremento, tiene un valor de 18.0f. Como el valor del diametro de la bola mide 8, lo que hacemos es pillar el valor del radio (4) y dividir el incremento de velocidad entre el valor de radio, lo que nos dará el numero de pasos de comprobación que deberias utilizar (en este caso, serían 4,pasandolo a valor entero). Luego, solo sería usar un bucle que dosificara el incremento a 4 pasos (que en este caso, serían 4.5f, 9.0f, 13.5f, 18.0f, puesto que el primer paso, 0.0f, se supone que ya lo conocemos y no lo comprobamos) y comprobar si la bola choca desde las nuevas posiciones que te de. Este incremento fino se obtiene de dividir 18.0f entre 4 pasos (4.5f), como es evidente.
Esto tambien te puede servir para hacer predicciones y situar la bola en una posicion que no esté atravesando el plano una vez colisiona, si no en un punto mas alla despues de la colision.