# SELENE · Notas de construcción

Concepto original de Laboratorio Fai: no es un producto contratado ni un caso de cliente.

## Qué hace

- `renderer.js` (WebGL2, un único shader) lee relieve y albedo de `assets/surface-rgba-lossless.webp`: R+G empaquetan una altura de 16 bits (el byte bajo cuantizado a 4 bits, sin diferencia visible), B es el albedo. El terreno es inventado: no es cartografía lunar ni una imagen de la NASA.
- Sombreado: reflectancia lunar-Lambert con el polinomio de McEwen (disco casi plano en llena), pequeño pico de oposición, sombras de contacto con penumbra del tamaño del disco solar, luz cenicienta azulada solo en la cara nocturna (crece cuando la fase es fina), grano de regolito y moteado procedurales, un sistema de rayos analítico y tonemapping ACES con tramado. Es una interpretación artística, no una simulación astronómica calibrada.
- `main.js` arranca la escena tras el evento `load`, en tiempo ocioso y solo si el escenario está a la vista; hasta entonces se ve `assets/moon-poster.webp` (render del mismo shader). Arrastrar en horizontal solo gira; la iluminación va en el deslizador y en las fases rápidas.
- `clock.mjs` detiene la animación con movimiento reducido, pestaña oculta, escena fuera de vista o pausa; los cambios de control siguen repintando. Sin WebGL2 queda el póster.

Las fuentes y la cabecera vienen del kit compartido (`../_kit/kit.css`, `/fonts/`).

## Licencias

Código bajo licencia MIT; terreno e imágenes bajo CC BY 4.0, citando a FAI ([detalle](../LICENSE.txt)). Fuentes con SIL Open Font License 1.1: [Archivo](../licenses/fai-archivo-OFL.txt), [Big Shoulders](../licenses/fai-bigshoulders-OFL.txt), [JetBrains Mono](../licenses/fai-jetbrainsmono-OFL.txt).

[Volver a SELENE](./) · [Todas las demos](../) · [Contacto con Fernando](https://fjmn.vercel.app/#deploy)
