1. TugaTech » Software » Noticias de Software
  Login     Registar    |                      
Siga-nos

Game Boy Color com 3D

Sempre que pensamos no Game Boy Color (GBC), a nostalgia leva-nos para os clássicos sprites 2D coloridos de Pokémon ou Zelda. O que certamente não nos vem à cabeça é a renderização de objetos tridimensionais com iluminação dinâmica. Contudo, um programador astuto decidiu desafiar as limitações do hardware da Nintendo e criou algo que, tecnicamente, não deveria ser possível.

Danny Spencer desenvolveu uma demonstração interativa que coloca o GBC a correr um shader 3D em tempo real, controlado pelo utilizador. O projeto, apelidado de "gbshader", exibe um bule (o famoso Utah Teapot) com sombreamento Lambert, que pode ser rodado e iluminado de diferentes ângulos instantaneamente.

A "magia" matemática num processador de 8 bits

Para quem percebe de programação retro, este feito é impressionante devido às restrições severas da consola. O GBC utiliza um SoC Sharp SM83. Embora Spencer tenha utilizado o "modo de dupla velocidade" da consola (que empurra o relógio para pouco mais de 8 MHz), o processador continua a ser extremamente limitado para cálculos 3D.

O maior obstáculo? O SM83 não possui uma instrução de multiplicação nativa. Para contornar isto e conseguir a velocidade necessária para uma animação fluida, Spencer teve de recorrer a truques matemáticos inteligentes. Em vez de multiplicações diretas, o programador utilizou logaritmos e tabelas de consulta (lookup tables). Para reduzir ainda mais a carga no processador, os vetores foram convertidos para coordenadas esféricas, permitindo implementar o shader Lambert através de produtos escalares esféricos.

 

Experimenta tu mesmo no browser

O melhor desta notícia é que não precisas de desenterrar o teu velho Game Boy para veres o resultado. Danny Spencer disponibilizou não só o código-fonte e as ROMs para download, como também incorporou um emulador diretamente na sua página.

Através do emulador online, qualquer pessoa pode usar as setas do teclado para ajustar a posição da fonte de luz e o ângulo do objeto em simultâneo, comprovando a fluidez da renderização. Para os curiosos e programadores que queiram mergulhar nos detalhes técnicos e matemáticos desta proeza, toda a documentação e ficheiros estão disponíveis, conforme detalhado no blog de Danny Spencer.

Foto do Autor

Aficionado por tecnologia desde o tempo dos sistemas a preto e branco

Ver perfil do usuário Enviar uma mensagem privada Enviar um email Facebook do autor Twitter do autor Skype do autor

conectado
Encontrou algum erro neste artigo?



Aplicações do TugaTechAplicações TugaTechDiscord do TugaTechDiscord do TugaTechRSS TugaTechRSS do TugaTechSpeedtest TugaTechSpeedtest TugatechHost TugaTechHost TugaTech