El desplazamiento de paralaje es una técnica de computación gráfica en la que las imágenes de fondo se mueven frente a la cámara más lentamente que las imágenes en primer plano, lo que crea una ilusión de profundidad en una escena 2D con distancia.[1] Esta técnica surgió de la cámara multiplano utilizada en la animación tradicional[2] en la década de 1930.
El desplazamiento de paralaje se popularizó en la computación gráfica 2D con su introducción en los videojuegos a principios de la década de 1980. En el videojuego arcadeJump Bug (1981) se utilizó algo de desplazamiento de paralaje.[3] Se utilizó una forma limitada de desplazamiento de paralaje donde la escena principal se desplaza mientras el cielo nocturno estrellado está fijo y las nubes se mueven lentamente, dando profundidad al paisaje. Al año siguiente, Moon Patrol (1982) implementó una forma completa de desplazamiento de paralaje, con tres capas de fondo separadas desplazándose a diferentes velocidades, simulando la distancia entre ellas.[4] A Moon Patrol se le atribuye la popularización del desplazamiento de paralaje.[5][6] Jungle King (1982), posteriormente llamado Jungle Hunt, también tenía desplazamiento de paralaje,[7] y fue lanzado un mes después de Moon Patrol en junio de 1982.[8]
Métodos
Hay cuatro métodos principales para realizar un desplazamiento de paralaje que se emplean en títulos arcade, de consola y PC.
Método de capas
Demostración del método de capas
Vista lateral de las capas usadas en el desplazamiento de paralaje de The Whispered World.
El mismo escenario que arriba, visto de frente.
Algunos sistemas de visualización admiten varias capas de fondo que pueden desplazarse independientemente en direcciones horizontales y verticales y combinarse entre sí, simulando una cámara multiplano. En un sistema de visualización de este tipo, un juego puede producir paralaje simplemente cambiando la posición de cada capa en una cantidad diferente en la misma dirección. Las capas que se mueven más rápido se perciben como más cercanas a la cámara virtual. Se pueden colocar capas delante del campo de juego (la capa que contiene los objetos con los que interactúa el jugador) por diversas razones, como para proporcionar mayor dimensión, ocultar parte de la acción del juego o distraer al jugador.
Método de sprites
Los programadores también pueden crear pseudocapas de sprites (objetos en movimiento controlables individualmente dibujados por hardware sobre capas o detrás de ellas) si están disponibles en el sistema de visualización. Por ejemplo, Star Force, un juego de disparos con desplazamiento vertical y vista aérea para NES, utilizó esto para su campo estelar, y Final Fight para Super NES utilizó esta técnica para la capa inmediatamente delante del campo de juego principal.
El Amiga tiene sprites que pueden tener cualquier altura y pueden colocarse en posición horizontal con el coprocesador de cobre, lo que los hace ideales para este propósito.
Risky Woods de Amiga utiliza sprites multiplexados con el cobre para crear una capa de fondo de paralaje a pantalla completa[9] como alternativa al modo de campo de juego dual del sistema.
Método de animación/patrón repetitivo
Es posible hacer que las pantallas de desplazamiento formadas por mosaicos individuales «floten» sobre una capa de fondo repetida animando los mapas de bits de los mosaicos individuales para representar el efecto de paralaje. Se puede emplear un ciclo de color para animar mosaicos rápidamente en toda la pantalla. Este efecto de software da la ilusión de otra capa (de hardware). Muchos juegos utilizan esta técnica para crear un campo de estrellas desplazable, pero a veces se consigue un efecto más complejo o multidireccional, como en el juego Parallax de Sensible Software.
Método de rasterizado
En los gráficos rasterizados, las líneas de píxeles de una imagen normalmente se componen y se actualizan en orden de arriba abajo con un ligero retardo (llamado intervalo de borrado horizontal) entre el dibujo de una línea y el de la siguiente. Los juegos diseñados para chips gráficos más antiguos (como los de tercera y cuarta generación de consolas de videojuegos, los de juegos de televisión dedicados o los de sistemas portátiles similares) aprovechan las características de trama para crear la ilusión de más capas.
Algunas plataformas (como Commodore 64, Amiga, Master System,[10] PC/TurboGrafx-16,[11] Sega Mega Drive/Genesis, Super NES, Game Boy, Game Boy Advance y Nintendo DS) proporcionan una interrupción de borrado horizontal para configurar automáticamente los registros independientemente del resto del programa. Otras, como NES, requieren el uso de código cronometrado en ciclos, que está escrito especialmente para tardar exactamente lo mismo en ejecutarse que el chip de vídeo tarda en dibujar una línea de escaneo, o temporizadores dentro de los cartuchos de juego que generan interrupciones después de dibujar una cantidad determinada de líneas de escaneo. Muchos juegos de NES utilizan esta técnica para dibujar sus barras de estado, y Teenage Mutant Ninja Turtles II: The Arcade Game y Vice: Project Doom para NES la utilizan para desplazarse por las capas de fondo a diferentes velocidades.
Las técnicas de rasterizado más avanzadas pueden producir efectos interesantes. Un sistema puede lograr una profundidad de campo muy efectiva si se combinan capas con rasterizados; Sonic the Hedgehog, Sonic The Hedgehog 2, ActRaiser, Lionheart, Kid Chaos y Street Fighter II utilizaron bien este efecto. Si cada línea de escaneo tiene su propia capa, se produce el efecto de Pole Position, que crea una carretera pseudo3D (o una cancha pseudo3D como en NBA Jam) en un sistema 2D.
Si el sistema de visualización admite rotación y escala además del desplazamiento (un efecto conocido popularmente como Modo 7), cambiar los factores de rotación y escala puede dibujar una proyección de un plano (como en F-Zero y Super Mario Kart) o deformar el campo de juego para crear un factor de desafío adicional.
En la siguiente animación, tres capas se mueven hacia la izquierda a diferentes velocidades. Sus velocidades disminuyen de adelante hacia atrás y se corresponden al aumento de la distancia relativa del espectador. La capa del suelo se mueve 8 veces más rápido que la capa de vegetación. La capa de vegetación se mueve dos veces más rápido que la capa de nubes.
Capa de nubes (fondo).
Capa de vegetación (intermedio).
Capa base (frontal).
Animación.
Desplazamiento de paralaje en el diseño web
Una de las primeras implementaciones del desplazamiento de paralaje en el navegador fue creada y compartida en una publicación de blog por el desarrollador web Glutnix en 2007, que incluía un código de ejemplo y una demostración usando JavaScript y CSS 2, compatible con Internet Explorer 6 y otros navegadores de la época.[18][19]
En febrero de 2008, un tutorial del blog de diseño web «Think Vitamin», el diseñador web Paul Annett explicó cómo había creado un efecto de paralaje utilizando CSS y sin JavaScript para la web de Silverback, una aplicación de pruebas de uso.[20] Demostró el efecto en SXSW Interactive 2009, con la ayuda de la participación del público y un hombre con un traje de gorila.[21][22]