Relación entre fase y magnitud

Dada la fase de un planeta o satélite, puedo encontrar el área iluminada visible para nosotros, si consideramos una superficie 2D. Pero, ¿cómo encuentro el porcentaje de área iluminada visible considerándolo una superficie 3D y así encontrar la magnitud del planeta/satélite parcialmente iluminado?

github.com/skyfielders/python-skyfield/issues/210 puede o no ayudar. Resumen: está cerca de la reflectancia lambertiana, pero no del todo.
Hay algunas matemáticas útiles en esta respuesta . Véase también 1 , 2 , 3 , 4 , 5

Respuestas (1)

En general, tendría que proyectar la luz del sol (suponiendo que estemos hablando de objetos en nuestro sistema solar) sobre la superficie 3D y proyectarla sobre una superficie 2D. Esto se puede lograr a través de un algoritmo de trazado de rayos.

Este procedimiento le dará la fracción de la superficie iluminada.

Ahora bien, si le preocupa la fracción de la superficie iluminada que se refleja directamente en un lugar específico, de modo que sea "visible" desde esa dirección, debe realizar el trazado de rayos en 3D desde la fuente (el Sol) hasta el objeto y al espectador. Hay paquetes que puedes buscar en Google que harán este tipo de trazado de rayos si puedes modelar los objetos en 3D...

La versión más simple de esto no funcionará ya que los planetas no son espejos perfectos. Una versión modificada funcionaría si considera que las superficies planetarias reflejan la luz en todas las direcciones por igual (también conocida como reflectancia lambertiana)
Es cierto que tendría que modelar la reflexión especular para modelar con precisión, pero solo atenuando su solución al procedimiento anterior lo llevará allí. Hay valores atenuantes que puede usar para su mejor estimación en cuanto a la composición de la superficie.
Si la gente tiene una mejor manera de hacer este modelado, me gustaría escucharlo...