Mostrando postagens com marcador Shader. Mostrar todas as postagens
Mostrando postagens com marcador Shader. Mostrar todas as postagens

terça-feira, agosto 04, 2009

Iluminação

Bem, o jogo que eu comentei no post anterior continua sem nome. Mas isso não importa por enquanto. Tenho novidades.

Eu integrei a demonstração anterior ao protótipo do jogo e a iluminação já funciona sobre o personagem e o cenário. É claro que estes componentes são só pra testes, mas dá pra ver que a luz funciona.

Pra fazer esse efeito, eu desenho toda a cena em um RenderTarget do XNA (uma espécie de backbuffer) sem o shader e depois aplico o shader diretamente na textura que será jogada na tela. Dessa forma o pixel shader só é processado sobre uma textura, eliminando o processamento desnecessário que ocorreria se uma imagem fica na frente da outra, por exemplo.

A idéia é que a luz siga o personagem, como se estivesse presa a um capacete. Nos vídeos aparece uma lâmpada só pra ter uma idéia de onde está a fonte de luz.

Abaixo a mesma cena com e sem o shader de iluminação.



sexta-feira, julho 31, 2009

Meu novo projeto

Nesses últimos dias eu estive bastante ocupando terminando o último trabalho do mestrado pra esse semestre. Tratava-se sobre um estudo sobre bump mapping em GPU.

Pra implementar o trabalho eu tive que aprender programação de shaders, algo que até então eu nunca tinha feito. Posso dizer que valeu a pena escolher esse tema, porque deu pra aprender uma tecnologia nova que eu pretendo usar no meu próximo jogo.

O trabalho em si eu vou publicar aqui assim que o professor liberar a correção e a nota final. Daí publico aqui o artigo e a demonstração que eu fiz com meu grupo.

Enquanto isso, quero falar do meu novo projeto. É um jogo que eu estou criando e pretendo mandar pro Festival de Jogos Independentes do SBGames, se der tempo. Ainda falta muita coisa a se definir, mas ele fará um bom uso da iluminação.

Abaixo um vídeo de um shader que eu implementei (em HLSL + XNA) pra iluminar um cenário em duas dimensões. A idéia é atenuar a iluminação à medida que o objeto se afasta da fonte de luz. No vídeo o raio de iluminação aumenta e diminui conforme o alcance da luz é modificado via teclado.



Vou tentar fazer um diário de desenvolvimento desse jogo. Vamos ver se dá certo. Mais detalhes em breve.