Cómo lidiar con la refracción cuando los rayos comienzan dentro de un objeto anidado

Estoy construyendo un trazador de rayos simple con fines educativos y quiero agregar refracción a los objetos. Utilizando la Ley de Snells, puedo crear un nuevo rayo recursivamente en los puntos de intersección. Actualmente, el rastreador solo admite esferas y utilizo una escena en la que tengo varias esferas anidadas una dentro de otra con diferentes índices de refracción.

Si comienzo un rayo desde fuera de las esferas, todo parece simple. Comienzas con el índice de refracción de la escena, y tan pronto como golpeas la primera esfera, refracta el rayo usando el índice de refracción anterior y el índice de refracción del material de la esfera hasta que golpeas la siguiente esfera y así sucesivamente. Usando las normales de la intersección puedo determinar si entro o salgo de la esfera.

Sin embargo, no entiendo cómo debo manejar las hojas de esfera y qué hacer si el rayo no comienza en la parte exterior de la escena.

¿Puedo tomar una pila de los índices de refracción y subir una capa tan pronto como salga de una esfera?¿Cómo puedo determinar con qué índice de refracción tengo que comenzar si empiezo dentro de las esferas?

Ejemplo

Tiene tres esferas, con índices de refracción 0.9, 1.1 y 0.8 de exterior a interior. El índice de aire es 1.0

Su cámara está fuera de la esfera y apunta al centro de la esfera:

el índice de inicio es 1.0, primero golpeas la esfera externa con el índice 0.9 y refractas de 1.0 a 0.9 y guardas que tu rayo ahora está en material 0.9golpeas la esfera media y notas la constante de material de 1.1, ya que has guardado el 0.9, sabes que debes refractar de 0.9 a 1.1 y guardar el 1.1 además del 0.9golpeas la esfera interna y refractas de 1.1 a 0.8 y has guardado hasta ahora 0.9, 1.1 y 0.8golpeas la esfera interna nuevamente (esta vez la sales, así que verificas tus valores guardados y sabes que tienes que volver a 1.1)... hasta que estés afuera

Problema ahora, cuando la cámara está dentro de la esfera. No sabrá a qué índice de refracción debe cambiar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta