domingo, 9 de maio de 2010

Mais Computação Gráfica

Depois de alguns dias estudando OpenGL/JOGL, resolvi postar mais algumas imagens do que tenho feito. Na primeira, tentei melhorar o copo que exibi na última postagem. Apliquei uma técnica chamada Blending nele, que nada mais é do que uma mistura de cores dos pixels na cena. Assim, consegui obter a transparência.


Para dar mais realismo a essa cena do copo e da chaleira ainda faltam as sombras desses objetos, mas isso ainda estou tendo problemas para implementar, apesar de já ter uma idéia do caminho a seguir. Fica para uma próxima postagem.

A próxima imagem é de um outro programa que fiz e que exibe o Sistema Solar. Tudo começou quando tentei aplicar uma textura a uma esfera, começando pelo planeta Terra. Mas depois animei e quis fazer o Sol, Mercúrio, Vênus, Marte, Júpiter, etc. Para finalizar, coloquei todos dentro de uma outra esfera maior, com a textura de estrelas, galaxias (algo que simbolizasse o universo). Enquanto implementava fiquei realmente intrigado com o tamanho do planeta Terra com relação a Jupiter, Saturno, Urano e Netuno. Não consegui fazer com que a distância entre os planetas fosse algo similar à realidade, mas o tamanho dos planetas eu fiz questão. Se observarem nas primeiras figuras, parece que só têm 4 planetas, quando na verdade, têm 8 alinhados. Se aumentarem a imagem com o zoom, perceberão. (Pois é, somos mesmo pequenos.)

Segue algumas screens que tirei enquanto implementava. Talvez eu disponibilize esse programa em arquivo jar.


Na última imagem centralizei a fonte de luz do OpenGL no mesmo lugar onde estava o sol e aumentei a sua luminosidade. Por isso o sol está parecendo mais claro que nas outras 3 imagens.

Bom, por hoje é só.

quinta-feira, 6 de maio de 2010

Se Computação Gráfica, então Matemática

Fala pessoal!
Resolvi postar em português hoje.
Vou valorizar um pouco mais nosso idioma, pelo menos aqui no blog. =)

Nas últimas semanas não tive tempo para postar nada por causa de duas provas do mestrado. Tive que trancar uma matéria como disse no post anterior, mas isso está permitindo que eu consiga mais tempo para estudar as outras e para lembrar alguns assuntos que sempre preciso, mas que são assuntos mais elementares.

Semana que vem devo começar o projeto de computação gráfica e nesta semana já treinei um pouco a programação em 3D com Java e OpenGL. Não modelei uma guitarra ou um violão como disse que ia tentar, mas hoje modelei um copo e o incluí em uma cena 3D. Achei bastante interessante a modelagem, foi algo bem matemático.

Modelei o copo utilizando senos, cossenos e conversão de graus para radianos (e muita gente diz que matemática não serve para nada, odeio quando escuto isso). Entretanto, a parte de reflexão do copo não ficou tão boa porque o cálculo dos vetores normais em cada face não está totalmente correto, ou então, o problema está no meu modelo de iluminação.

A imagem a seguir é a imagem da cena completa, incluindo o copo (sem o cálculo de vetores normais).




A próxima imagem, é apenas do copo e incluindo o cálculo dos vetores normais nas faces. O copo ficou parecendo de alumínio. Mas durante a execução, a luz não pára de refletir entre as faces, causando um efeito um tanto quanto desagradável. Por isso, deixei na imagem anterior o copo sem o cálculo das normais.


Bom, por hoje é só.
Espero que tenha sido interessante.
E aproveitando, Feliz dia nacional da Matemática!

[]'s