Translate

terça-feira, 4 de outubro de 2016

NES Parallax

O que é parallax? Simplificando, é quando o "fundo" de uma imagem 2D se move mais lentamente do que o seu "primeiro plano", criando um efeito de profundidade. Pense em quando você está olhando para fora do lado de uma janela do carro: Árvores na distância, mais longe de você, parecem estar se movendo mais lento do que a estrada mais perto de você. E o horizonte mal parece estar se movendo em tudo. No exemplo abaixo (do jogo Sword Master ), as árvores estão se movendo mais lento do que no chão, e as montanhas no muito a trás estão se movendo ainda bem mais lento,Na sequência de animação, três camadas estão movendo-se para a esquerda a velocidades diferentes. Sua velocidade diminuir da frente para trás e correspondem a aumentos na distância relativa do personagem.

 A técnica surgiu da câmara de múltiplos técnica utilizada na animação tradicional desde 1930. Parallax scrolling foi popularizado em computação gráfica 2D e jogos de vídeo pelos jogos de arcade Moon Patrol e Jungle Hunt , ambos lançados em 1982. Alguns rolagem de paralaxe já havia sido usado pelo 1981 jogo de arcade Jump Bug .

Mas se vocês olharem bem mais profundo em alguns jogos de NES final, vocês vão encontrar a história de paralaxe não é tão simples como parece, e um seleto poucos jogos de NES quebrar essa regra "separação vertical" para criar fundos mais avançados também. Um dos exemplos mais ilustrativos está na primeira fase de Batman: O Retorno do Coringa :

Os programadores utilizam pseudo-camadas de sprites Individualmente controlável objetos desenhados por hardware em cima ou por trás das camadas movendo-se eles estão disponíveis no sistema de exibição. Por exemplo Star Force , uma sobrecarga-view de rolagem vertical atirador para NES , utilizado este por sua Starfield, e Final Fight para o Super NES usou esta técnica para a camada imediatamente na frente do campo de jogo principal. O computador amiga tem sprites que podem ter qualquer altura e pode ser ajustado horizontal com o cobre co-processador, o que os torna ideais para este fim. Risky Woods no Amiga utiliza sprite multiplexados com o cobre para criar uma camada de fundo de paralaxe tela cheia inteira como uma alternativa ao sistema de de modo dual playfield.
é mais provável atualização,de padrões de todos os quadros de acordo com a posição de rolagem vertical como vemos em alguns jogos,para se fazer parecer que as partes da tela estão se movendo a uma velocidade diferentes. As tilsetes sendo atualizados são mais prováveis nas laterais, uma vez que eles são feitos por um pequeno padrão de repetição (o lado esquerdo é mesmo que para o lado direito, com exceção da cor, que pode ser facilmente explicado pelo uso de diferentes paletas). Outra possibilidade é que o jogo pode estar sendo atualizando a tabela de nome em vez das tabelas padrão (todas as possíveis posições de rolagem estaria em CHR-RAM em todos os tempos), que faria mais sentido se o número de telhas em nome tabela é menor do que a quantidade de bytes os padrões precisa e não muitos azulejos são necessários para todas as posições possíveis. É mais provável que a outra coisa embora. se abrirem o jogo no emulador FCEUX e abrir o visualizador PPU. vão vê os padrões "em movimento" lá, é os padrões que são modificados como no ecrã que se deslocam.

Jogos como Metal Storm e Sword Master usar fundos com objetos animados que fazem com que pareça que vários rolagem fundos.

exemplo de rolagem: " LDA #% 10011110; Intensificar azuis, Ativar sprites, ative fundo, sem recorte no lado esquerdo
STA $ 2001 antes LDA rolagem + 3 ; Role a primeira linha do mar STA $ 2005 LDA # $ 00 ; Sem a rolagem vertical para hoje - Trata-se de $ 2006, e chamou-lhe sai STA $ 2005 e, em seguida, LDA #% 00011110; Ativar sprites, ative fundo, sem recorte no lado esquerdo STA $ 2001 depois LDA rolagem + 6 ; Finalmente, role as pranchas - tudo feito STA $ 2005 LDA # $ 00 ; Sem a rolagem vertical para hoje - Trata-se de $ 2006, e chamou-lhe sai STA $ 2005 Isso mostra que do sprite zero é não só para rolagem - Isso faz com que o mar mais azul (Lembre-se o primeiro tutorial NN com US $ 2001). Ele também pode fazer um efeito de transparência puro - confira a inundação na Arca de Noé para o NES "



Aqui está Ninja Gaiden 2 usando um mapeador de executar múltiplas divisões, utilizando efeito de rolagem de parallax para criar uma sensação de grande velocidade do trem, apesar de o próprio nível é 'parado". Observe que todas as diferentes seções móveis ocupam faixas horizontais rígidas; isto é, nenhuma das camadas de fundo se sobrepõem uns aos outros. Isto é uma consequência do facto de que as separações são feitas alterando o deslocamento em scanlines individuais.

Comutação de bancos de dados do nes também pode ser usado para rolagem de paralaxe, de forma limitada (embora ainda impressionante). Se há uma seção de fundo constituído por um padrão repetitivo suma, vários bancos podem conter esse mesmo padrão, compensada por uma quantidade diferente. Em seguida, esse padrão pode ser rolada uma certa quantidade por mudar para o banco com o deslocamento apropriado. Isso pode até ser usado para rolagem de paralaxe com um fundo de sobreposição, por ter peças que não são afetados pela mudança de banco de dados . A desvantagem é que um monte de espaço do CHR precisa ser usado em todos os bancos no total.

No entanto, a maioria dos jogos não se pode dar ao luxo de gastar ,o seu tempo de espera em loops, especialmente durante cenas de ação, onde o tempo de CPU, é precioso. Para estes casos, hardware especial (chamado um mapeador, porque usa o seu próprio mapeamento de memória) é em que os cartuchos podem recuperar notificações quando ocorre uma certa linha de varredura removendo a necessidade de se ter de esperar laços de todo. O código do jogo pode fazer qualquer tarefa que quer, sempre que quer, resultando em melhor utilização da CPU. A maioria dos jogos posteriores que tem um monte de divisões de tela usar mapeadores desta forma.

BANCO SWITCHING Mapeadores podem realizar muitas outras funções, mas, de longe, o mais comum é a mudança de banco. Isto é, quando um bloco inteiro de espaços de endereço são realocados para apontar para uma parte diferente da memória . Bancário pode ser feito para programar código (permitindo jogos para ter lotes de níveis e música), mas também com os dados da CDH, substituindo instantaneamente os azulejos que nametables ou sprites referem. Usado entre quadros, isto pode animar um fundo todo de uma só vez. Mas usado como um efeito raster, isso permite que diferentes partes da tela usar a arte completamente diferente. Jogos Ninja Gaiden usar este durante o jogo, para tornar o HUD separadamente do nível, e também durante cinemas, mantendo texto e cenas visuais em diferentes bancos Chr.



Sprite0 está em Y $ 26, e X $ a0. Quando a sua linha inferior de pixels é processado, a bandeira sprite0 fica definido Alguns jogos combinar essa bandeira sprite0 com outra técnica, a de um ciclo previsível cronometrado, para esperar por um determinado número de linhas adicionais para render, obtendo, assim, vários grupos na tela. Por exemplo, Ninja Gaiden usa isso em muitos dos seus cinematics para criar efeitos dramáticos, como um campo de grama ventoso, ou a visão de um castelo distante. O jogo realiza tarefas como reprodução de música e aguardando entrada no início do quadro que está sendo processado, em seguida, utiliza sprite0 para encontrar a primeira divisão, e usa circuitos programados para os outros.



Sword Master (1990) utiliza comutação de bancos para percorrer as montanhas distantes, e a tela se divide para o HUD e grama em primeiro plano.

Não teria sido possível gerar esses gráficos sem os recursos poderosos de depuração fornecidas pelo emulador FCEUX.