# Rolagem paralaxe

Rolagem paralaxe é uma técnica em computação gráfica em que as imagens de plano de fundo movem-se mais lentamente que as imagens em primeiro plano, criando uma ilusão de profundidade em uma cena 2D e aumentando a sensação de imersão na experiência virtual. A técnica surgiu a partir da técnica da câmera multiplano usada na animação tradicional desde a década de 1930. A rolagem paralaxe foi popularizada em computação gráfica 2D e jogos eletrônicos pelos jogos de arcade Moon Patrol e Jungle Hunt, ambos lançados em 1982. Um pouco de rolagem paralaxe já havia sido usada pelo jogo de arcade de 1981 Jump Bug.

## Métodos

Existem quatro métodos principais de rolagem paralaxe usados em títulos para placa de sistema arcade, console de jogos eletrônicos e sistemas de computadores pessoais.$^[$

### Método de camada

Alguns sistemas de exibição suportam várias camadas de plano de fundo que podem ser roladas independentemente nas direções horizontal e vertical e compostas umas nas outras, simulando uma câmera multiplano. Em tal sistema de exibição, um jogo pode produzir paralaxe simplesmente mudando a posição de cada camada por uma quantidade diferente na mesma direção. Camadas que se movem mais rapidamente são percebidas como mais próximas da câmera virtual. Camadas podem ser colocadas na frente do campo de jogo - a camada contendo os objetos com os quais o jogador interage - por várias razões, como para fornecer uma dimensão maior, obscurecer parte da ação do jogo ou distrair o jogador.

### Método Sprite

Os programadores também podem criar pseudo-camadas de sprites - objetos móveis controláveis individualmente, desenhados por hardware em cima ou atrás das camadas - se estiverem disponíveis no sistema de exibição. Por exemplo, Star Force, um shooter de rolagem vertical de visão aérea para NES, usou isso para seu campo estelar, e Final Fight para o Super Nintendo usou essa técnica para a camada imediatamente à frente do campo de jogo principal.
O computador Amiga possui sprites que podem ter qualquer altura e podem ser ajustados horizontalmente com o coprocessador copper, o que os torna ideais para este propósito.
Risky Woods no Amiga usa sprites multiplexados com o copper para criar uma camada de fundo de paralaxe de tela inteira como uma alternativa ao modo dual playfield do sistema.

### Repeating pattern/método de animação

As exibições de rolagem de blocos individuais podem ser feitas para 'flutuar' sobre uma camada de fundo repetida animando os bitmaps dos blocos individuais para retratar o efeito paralaxe. O ciclo de cores pode ser usado para animar as peças rapidamente em toda a tela. Este efeito de software dá a ilusão de outra camada (hardware). Muitos jogos usaram esta técnica para um campo estrela de rolagem, mas às vezes um efeito mais intrincado ou multidirecional é alcançado, como no jogo Parallax da Sensible Software.

### Método raster

Em gráficos raster, as linhas de pixels em uma imagem são geralmente compostas e atualizadas na ordem de cima para baixo com um pequeno atraso (chamado de intervalo de moldagem horizontal) entre desenhar uma linha e desenhar a próxima linha. Os jogos projetados para chipsets gráficos mais antigos - como os da terceira e quarta geração de consoles de videogame, de jogos de TV dedicados ou de sistemas portáteis semelhantes - aproveitam as características raster para criar a ilusão de mais camadas.
Alguns sistemas de exibição têm apenas uma camada. Estes incluem a maioria dos sistemas clássicos de 8 bits (como o Commodore 64, o Nintendo Entertainment System, o Master System, o PC Engine/TurboGrafx-16 e o Game Boy original). Os jogos mais sofisticados em tais sistemas geralmente dividem a camada em faixas horizontais, cada uma com uma posição diferente e taxa de rolagem. Normalmente, as faixas mais altas na tela representam as coisas mais distantes da câmera virtual ou uma tira será mantida estacionária para exibir informações de status. O programa aguardará o espaço em branco horizontal e alterará a posição de rolagem da camada antes que o sistema de exibição comece a desenhar cada linha de varredura. Isso é chamado de "efeito raster" e também é útil para alterar a paleta do sistema para fornecer um segundo plano gradiente.
Algumas plataformas (como o Commodore 64, Amiga, Master System, PC Engine/TurboGrafx-16, Mega Drive/Genesis, Super Nintendo, Game Boy, Game Boy Advance e Nintendo DS) fornecem uma interrupção horizontal em branco para definir automaticamente registra-se independentemente do resto do programa. Outros, como o NES, exigem o uso de um código de ciclo, que é especialmente escrito para levar exatamente o mesmo tempo de execução do chip de vídeo para desenhar um scanline ou timers dentro de cartuchos de jogos que geram interrupções após um determinado número de scanlines foram desenhados. Muitos jogos NES usam essa técnica para desenhar suas barras de status, Teenage Mutant Ninja Turtles II: The Arcade Game e Vice: Project Doom para NES usá-lo para rolar camadas de fundo em diferentes taxas.
Técnicas raster mais avançadas podem produzir efeitos interessantes. Um sistema pode alcançar uma profundidade de campo muito efetiva se camadas com rasters forem combinadas; Sonic the Hedgehog, Sonic The Hedgehog 2, ActRaiser, Lionheart e Street Fighter II usaram bem este efeito. Se cada linha de varredura tiver sua própria camada, o efeito é produzido, o que cria uma estrada pseudo-3D em Pole Position (ou uma quadra de bola pseudo-3D como no NBA Jam) em um sistema 2D.
Se o sistema de exibição oferecer suporte a rotação e dimensionamento além da rolagem - um efeito popularmente conhecido como Mode 7 - alterar os fatores de rotação e dimensionamento pode desenhar uma projeção de um plano (como em F-Zero e Super Mario Kart ) ou pode distorcer o campo de jogo para criar um fator de desafio extra.
Outra técnica avançada é a rolagem de linha/coluna, onde linhas/colunas de blocos em uma tela podem ser roladas individualmente. Esta técnica é implementada nos chips gráficos de várias placas de sistema de arcade da Sega desde o Sega Space Harrier e System 16, o console Mega Drive, e o sistema Capcom CP, Irem M-92 e as placas do jogo arcade Taito F3 System.

## Exemplo

Na animação a seguir, três camadas estão se movendo para a esquerda em diferentes velocidades. Suas velocidades diminuem de frente para trás e correspondem a aumentos na distância relativa do espectador. A camada do solo está se movendo 8 vezes mais rápido que a camada de vegetação. A camada de vegetação está se movendo duas vezes mais rápido que a camada de nuvens.
* Camada de nuvens - Atrás
* Camada de Vegetação - Meio
* Camada de Solo - Frente
* Animação (clique para executar)

## Rolagem paralaxe em Web design

Uma das primeiras implementações de rolagem paralaxe no navegador foi criada e compartilhada em um post de blog do desenvolvedor web Glutnix em 2007, isso incluiu um código de exemplo e uma demonstração usando Javascript e CSS2 que suportavam o IE6 e outros navegadores daquela época. No entanto, não foi até 2011 e a introdução do código HTML5 e CSS3 que a técnica se tornou popular entre os designers da Web. Os defensores argumentam que é uma maneira simples de abraçar a fluidez da Web. Os proponentes usam planos de fundo paralaxe como uma ferramenta para envolver melhor os usuários e melhorar a experiência geral que um site oferece. No entanto, um estudo da Purdue University, publicado em 2013, revelou as seguintes descobertas: "... embora a rolagem paralaxe tenha melhorado certos aspectos da experiência do usuário, isso não necessariamente melhorou a experiência geral do usuário".