05 Capítulo 5 · Lección 3

Cámaras

Redactado por
Author Sebastian V.
Fecha de publicación

21/01/2026

Tiempo de lectura

7 min

Tema

Three.js

¿Qué es una Cámara?

En la vida real, lo que ves de una habitación depende de dónde estás parado y a dónde apuntas tus ojos. En Three.js, la Cámara es el ojo humano. Todo lo que esté delante de ella y dentro de su rango de visión, será dibujado en la pantalla.

PerspectiveCamera vs OrthographicCamera

Existen dos tipos principales de cámara, y elegir una u otra cambia drásticamente cómo se siente tu experiencia web:

1. PerspectiveCamera (La Realista)

Imagina que estás en una autopista. Los coches que están cerca se ven grandes, y los que están lejos se ven pequeñitos hasta desaparecer en el horizonte. Esa es la perspectiva. Esta cámara imita cómo funciona el ojo humano y se usa en el 95% de las experiencias 3D.

2. OrthographicCamera (La Técnica)

Imagina un juego isométrico (como SimCity clásico o Monument Valley). El tamaño de los objetos se mantiene constante sin importar qué tan lejos estén. Es ideal para interfaces de usuario en 3D, mapas arquitectónicos o juegos de estrategia.

Parámetros de PerspectiveCamera

Cuando creas tu cámara: new THREE.PerspectiveCamera(fov, aspect, near, far), le estás pasando cuatro datos vitales:

  • FOV (Field of View): Campo de visión en grados. Como hacer zoom con una lente. 75 es lo estándar. Un FOV muy alto (120) crea efecto ojo de pez.
  • Aspect Ratio: La relación de aspecto (ancho dividido por alto de tu pantalla). Si no coincide con tu pantalla, todo se verá aplastado.
  • Near y Far: Es el rango de renderizado. Los objetos más cerca del valor "near" (ej. 0.1) o más lejos del "far" (ej. 1000) no se dibujarán. Esto se llama "clipping" y ahorra memoria.

Consejo profesional

Si sientes que tus objetos desaparecen misteriosamente cuando se acercan mucho a la pantalla o cuando se alejan demasiado, revisa los valores Near y Far de tu cámara. Aumentar el 'far' a 10000 te dará más profundidad, pero bajará el rendimiento.

Posicionando la cámara en el espacio

> _
const fov = 75;
const aspect = window.innerWidth / window.innerHeight;
const near = 0.1;
const far = 1000;

// Crear cámara
const camera = new THREE.PerspectiveCamera(fov, aspect, near, far);

// Posicionar la cámara
// [x: izquierda/derecha, y: arriba/abajo, z: adelante/atrás]
camera.position.set(2, 2, 5);

// IMPORTANTE: Por defecto, la cámara mira hacia -Z.
// Si la movimos, debemos ordenarle que mire de nuevo al centro.
camera.lookAt(0, 0, 0); // O camera.lookAt(scene.position);
> _

Una cámara moviéndose en órbita alrededor de un objetivo central.

Errores comunes

01
Olvidar el Aspect Ratio en Resize Cuando redimensionas la ventana, tu aspect ratio cambia. Si no actualizas camera.aspect y llamas a camera.updateProjectionMatrix(), el 3D se deformará.
02
Mover la cámara y perder de vista los objetos Si elevas la cámara en el eje Y, dejará de mirar hacia adelante y no verás nada. Usa siempre camera.lookAt() después de moverla.

Practica lo aprendido

Juega con la posición de la cámara y su punto de enfoque.

01 Instancia una PerspectiveCamera con FOV de 75.
02 Posiciónala en [0, 5, 5] (arriba y atrás).
03 Usa camera.lookAt(0,0,0) para apuntar hacia abajo, al centro de la escena.