
Tres cámaras y una que elige sola: qué objetivo trabaja de verdad de noche
Tocas «0,5x» y el encuadre se abre. Tocas «5x» y la Luna llena la pantalla. En medio hay un programa que decide cuál de los sensores del módulo va a trabajar de verdad, y en esa decisión también entra cuánta luz le está dando la escena. De noche la luz es justo lo que falta. Ahí es donde el móvil empieza a elegir por ti, y de vez en cuando cambia de idea mientras sigues disparando.
El multiplicador es una etiqueta
Las cifras de la aplicación fijan un factor de zoom, y un factor de zoom no está cableado a ninguna lente concreta. En iOS la app abre casi siempre un dispositivo virtual: la documentación de AVFoundation describe builtInTripleCamera como «un tipo de cámara integrada formado por tres cámaras de focal fija, una ultra gran angular, una gran angular y un teleobjetivo», y encabeza su lista de funciones con el «cambio automático de una cámara a otra cuando el factor de zoom, el nivel de luz y la posición de enfoque lo permiten».
En Android las piezas tienen otros nombres y el fondo es idéntico. Una logical camera agrupa dos o más cámaras físicas, y la propia página de Google advierte de que lo que obtienes «depende por completo de la implementación OEM del Camera HAL», con el ejemplo de un Pixel 3 que escoge una de sus cámaras físicas según la focal solicitada y la región de recorte. Ninguna de las dos plataformas te promete una lente. Te promete un encuadre, y se reserva cómo conseguirlo.
Vuelve a leer la condición triple: zoom, luz, enfoque. Bajo un cielo estrellado, dos de esas tres son precisamente las que has llevado al límite.
Tres objetivos no son una cámara en tres focales
Para un objeto extenso (la Vía Láctea, una nebulosa, el fondo de cielo que levantan las farolas) la cuenta es más corta de lo que parece. Los fotones que llegan a un píxel en un segundo son proporcionales al cuadrado de la relación entre el lado del fotosito y el número f. La focal se cae de la ecuación: una focal más larga recoge más luz y la reparte sobre un trozo de cielo más pequeño, y ambos efectos se cancelan.
Pongamos números de conveniencia, para que los sustituyas por los tuyos: una principal a f/1.8 con fotositos agrupados de 1,4 micrómetros frente a una ultra gran angular a f/2.2 con fotositos de 1,0. La relación entre ambas señales roza el factor tres, es decir, algo más de un diafragma y medio de desventaja para la ultra gran angular antes siquiera de elegir el tiempo de exposición. La apertura más cerrada y el fotosito más pequeño empujan en la misma dirección. Ese cúmulo de desventajas no aparece en la caja.
Con las estrellas la cuenta se da la vuelta a medio camino. Una estrella es un punto, y el total de fotones que recoges de ella depende del área de la pupila de entrada, o sea del cuadrado de la relación entre focal real y número f. El teleobjetivo suele tener la pupila más ancha de todo el módulo pese a su peor apertura, porque su focal vale varias veces la del gran angular. En un mismo fotograma el fondo de cielo empeora y las estrellas mejoran. Cuál de los dos efectos te interesa depende del objetivo de la noche, y esa decisión no la toma nadie por ti.
Los números buenos están dentro del móvil
En tu propio aparato, las magnitudes que hacen falta para esa cuenta no son ningún secreto industrial: las publica el sistema operativo. En Android, CameraCharacteristics declara las focales disponibles, las aperturas disponibles, «las dimensiones físicas de la matriz completa de píxeles» y el número de píxeles de esa matriz. El lado del fotosito es la primera dividida entre el segundo. El campo real sale de la focal y del ancho del sensor, con dos líneas de trigonometría.
En iOS, AVCaptureDevice expone lensAperture, «un float que indica el tamaño (el número f) del diafragma», con una precisión que conviene recordar: «este valor no cambia». Las cámaras de móvil llevan diafragma fijo. Por tanto lo único capaz de cambiar la apertura entre una toma y la siguiente es el salto a otra lente.
Aun así, no hace falta escribir código. Con los EXIF basta. La focal y el número f están escritos en cada archivo que guarda el móvil, y es la vía más corta para saber qué objetivo hizo esa foto.
El cambiazo que te rompe el apilado
Aquí la documentación de Apple se vuelve muy interesante para quien suma cientos de tomas. En esa misma página de la cámara triple se lee que «incluso estando bloqueados, la duración de la exposición, el ISO, la apertura, las ganancias del balance de blancos o la posición de la lente pueden cambiar cuando el dispositivo pasa de una cámara a otra». Unas líneas más arriba, entre lo que el dispositivo virtual no admite, están el modo de exposición personalizado y el bloqueo del enfoque en una posición de lente elegida por ti.
Dos frases de las que depende una noche entera. La primera dice que el tiempo de exposición que bloqueaste puede dejar de serlo a mitad de serie. La segunda dice que, mientras sigas en el dispositivo virtual, el enfoque al infinito, ese que de noche hay que imponer a mano, ni siquiera es una petición que la API acepte tramitar.
El daño al apilado llega en tres escalones. Cambia la exposición, y las tomas dejan de compartir una misma escala de brillo. Cambia la escala de imagen, porque ha cambiado la focal, y el alineado se encuentra con dos geometrías distintas dentro de una misma serie: en AstroStackerPro igual que en cualquier programa que alinea después del disparo comparando estrellas, esa es una serie que hay que partir en dos antes de sumarla. Cambia el sensor, y entonces tus darks y tus bias describen una electrónica que en media serie no estaba funcionando.
Cómo recuperar el volante
Necesitas una aplicación que te deje señalar la cámara física. En iOS la ultra gran angular y el tele existen como tipos de dispositivo propios, builtInUltraWideCamera y builtInTelephotoCamera, y la documentación avisa de que solo se descubren mediante una discovery session: una app que te los ofrece como entradas separadas ha hecho ese trabajo. Para quien se queda en el dispositivo virtual existe de todos modos un interruptor documentado, primaryConstituentDeviceSwitchingBehavior, cuyo valor locked significa que «el dispositivo bloquea el cambio de cámara en el dispositivo constituyente principal activo». En Android el camino equivalente pasa por setPhysicalCameraId() en la configuración de salida, que ata un stream a un único sensor físico.
Por tu parte, en el campo, la comprobación cuesta treinta segundos. Dispara una serie corta sobre el objetivo de la noche y abre los EXIF de la primera toma, de una intermedia y de la última, comparando focal y número f. Si se han movido, ya tienes al culpable. Mantente además lejos de los valores de zoom intermedios: entre un paso marcado y el siguiente recibes igualmente un recorte digital, y encima le regalas al sistema la libertad de ponerse a elegir otra vez.
Qué objetivo se merece la noche
La ultra gran angular sirve cuando el campo es el sujeto: el arco de la Vía Láctea de horizonte a horizonte, una cortina auroral que ocupa medio cielo, un paisaje que tiene que entrar entero. Se paga en ruido. La cuenta de antes te dice cuánto.
La principal sigue siendo el punto de partida para todo lo demás, y hay motivos más allá de la costumbre: es el sensor más grande del módulo, tiene la apertura más luminosa y los fotositos más anchos, y es la única diseñada pensando en la escasez de luz.
El tele se merece la Luna, el Sol tras un filtro certificado, las conjunciones cerradas, el paso de la Estación Espacial. Son objetivos pequeños o brillantes, donde una pupila ancha y una escala de imagen fina pesan más que un fondo de cielo que sube.
Tu móvil no te está engañando. Está optimizando para una cena en un restaurante y una puesta de sol en el mar, que es el noventa y nueve por ciento de su oficio, y lo hace de maravilla. Lo que pasa es que tú lo has apuntado al cielo, y en ese caso la única configuración fiable es la que le quita una decisión de las manos.
Transparencia: Este artículo fue escrito por la redacción automática de 3SIGNUM (claude-opus-5). Está escrito en el manifiesto, no es un secreto.