Sphere-Tracing Pt. III

Padrão

Nesta terceira parte da série sobre sphere-tracing vamos discutir as funções de distância que foram apresentadas no post anterior. Todos os exemplos deste post serão renderizados no shader Blobby, que foi desenvolvido no nosso tutorial em vídeo. Continue lendo

Sphere-Tracing Pt. II

Padrão

Sphere-Tracing

No post anterior apresentamos os conceitos básicos do sphere-tracing. Agora, vamos nos aprofundar um pouco mais em sua formulação matemática e implementação.

Apenas relembrando: o algoritmo dispara um raio para cada pixel da tela e caminha sobre ele em passos de comprimento igual à distância até o objeto mais próximo. Continue lendo

Sphere-Tracing Pt. I

Padrão

blobby_small

Uma das técnicas de renderização mais utilizadas em demos é conhecida como raymarching on distance fields, a qual foi popularizada na demoscene pelo Iñigo Quilez devido aos seus ótimos demos e tutoriais. Na verdade, o nome original da técnica é sphere-tracing e o autor é um pesquisador chamado John C. Hart.

O algoritmo é baseado em um dos famosos Paradoxos de Zeno, no qual um homem deve caminhar até um certo ponto sempre percorrendo a metade da distância de onde ele se encontra até o final.

Paradoxo de Zeno Continue lendo

Introdução à Demoscene

Padrão

É bem possível que você esteja se perguntando “o que raios é esse negócio de demoscene?”

Para colocar de forma bem simples: A demoscene é o conjunto de todas as pessoas envolvidas de alguma forma na produção de demos.

Um demo é um programa não-interativo que gera gráficos e música em tempo real. Ou seja, um programa que, quando executado, irá gerar um vídeo com gráficos e trilha sonora que será exibido ao usuário.

Abaixo segue um exemplo de demo, produzido pelo demogroup Andromeda Software Development (ASD)

A diferença entre um demo, e, por exemplo, um filme gerado por computador, é que, em um demo, todos os gráficos são gerados na hora. Até um curta 3D pode levar dias para ser gerado a partir dos dados que o descrevem, mas um demo gera os seus gráficos instantaneamente, simultaneamente reproduzindo música. O programa que gera o vídeo acima pode ser baixado aqui, por exemplo: http://www.pouet.net/prod.php?which=31571
Os gráficos de um demo podem lembrar os gráficos de um videogame, mas um demo não é um jogo. O usuário não interage com o demo. O demo é simplesmente uma apresentação audiovisual.

E pra que produzir demos?

Os demos começaram na comunidade de pirataria de programas – o grupo que crackeava um programa adicionava um demo curto (chamado intro, nome que é usado até hoje para um demo cujo executável tem tamanho limitado) antes da inicialização do programa, para identificar quem realizou o crack. Porém, em pouco tempo, a demoscene adquiriu autonomia e começou a produzir independentemente dos cracks.
A demoscene tornou-se focada em realizar coisas “impossíveis” em plataformas limitadas, como o demo abaixo, feito para o Commodore Amiga:

Embora o demo possa não parecer impressionante hoje em dia, para a época do seu lançamento a qualidade dos efeitos era quase surreal – era difícil acreditar que fosse possível criar essas animações no Amiga.
Esse é um padrão que continua até hoje – a Demoscene tende a ser a pioneira em novas técnicas de computação gráfica, e ampliar os limites do que é considerado “possível”.

Este blog existe para estimular o desenvolvimento da Demoscene no Brasil, servindo como uma “porta de entrada” para iniciantes. A ideia é permitir que programadores que nunca trabalharam com demos antes possam aprender a partir do zero como criar efeitos visuais, e eventualmente publicar suas próprias produções.