Vitor Pamplona

Innovation on Vision: Imaging , Enhancement and Simulation

Simulações e Poder Computacional

 Desde a graduação me ensinaram a simular fragmentos da vida, dos humanos, de suas leis e de seu comportamento. A inspiração para a orientação a objetos, por exemplo, foi a separação de responsabilidades entre entidades, tal qual é a vida real. Nossos sistemas atuais simulam grande parte das regras da sociedade humana e uma parte do comportamento de agentes humanos específicos. Sendo cientista ou não, as simulações governam nosso trabalho.

A dissertação de Mestrado do Giovane apresenta uma forma inédita, naturalista e extremamente rápida de recolorir imagens para daltônicos dicromatas com o objetivo de aumentar o contraste entre cores vistas de maneira semelhante por estes indivíduos. Sua criação baseia-se em modelos matemáticos que simulam a visão de um daltônico. Na minha dissertação, adaptei modelos estáticos e dinâmicos para dinâmica pupilar humana, e modelos da anatomia e fisiologia de sua íris, a fim de melhorar o realismo dos olhos de personagens virtuais. A simulação da realidade e sua aplicação em objetos de ficção científica é o que chamamos de arte.

O famoso modelo de ray tracing usado na computação gráfica atual nada mais é do que uma versão invertida do ray casting, a simulação física de transporte de luz. Enquanto no ray casting os raios partem da fonte de luz e ocasionalmente chegam aos olhos de um observador, no ray tracing os raios partem do observador, melhorando a performance do rendering. Para cada pixel são emitidos vários raios e, a cada colisão com objetos na cena, calcula-se a reflexão, refração e absorção do material, e traçam-se novos raios a partir da colisão. No final, teremos uma imagem chamada de foto-realista. Claro que, mesmo com as placas gráficas atuais, é difícil construir uma implementação de ray tracing em tempo real. Como diz o Leandro, a computação tem a mania de querer simular o mundo em cima do próprio mundo e achar que um dia esta simulação será tão rápida quanto o próprio mundo.

É neste contexto que surgem os ray traced games, um conceito bem antigo, mas que, recentemente, tem ganhado atenção de pesquisadores. Normalmente, o modelo 3D de um jogo é acompanhado por atributos e texturas que foram criadas apenas uma vez após um longo processamento. Estas informações otimizam os algoritmos de rendering e o jogo, por mais complexo que possam ser seus modelos, permanece em tempo real. No caso dos ray traced games, estas informações não existiriam mais e tudo seria computado em forma de ray tracing e cada vez que o jogo desenha a tela. A justificativa para apostar nesta abordagem é que, além da evolução das placas gráficas, hoje em dia há tantos efeitos aproximados para simular a realidade sendo executados a cada atualização de tela, que o volume computacional do jogo se aproxima a um ray tracing. O resultado de um ray tracing por si só já simularia toda a realidade. Ou seja, de um lado você tem um único algoritmo, de outro várias texturas, atributos, pré-processamento e algoritmos de efeitos que aproximam o resultado do primeiro.  

Quem sabe um dia poderemos comparar a performance do mundo real contra a performance de um mundo virtual rodando em cima do mundo real e, quem sabe, da mesma forma que Java hoje é mais rápida que C++, a nossa simulação seja mais rápida que o próprio mundo. Viagens a parte, nós humanos estamos cada vez mais parecidos com máquinas. Não conseguimos criar nada sem observar e simular o nosso mundo primeiro. Não que isso seja incorreto.

Posted in Feb 8, 2009 by Vitor Pamplona - Edit - History

Showing Comments

Os cabeções da CG estão enlouquecidos (no bom sentido) com voxels e ray tracing. Recentemente ouvi falar sobre voxels engines (ok, tão antigo quanto ray tracing). Carmack falou numa entrevista [1] sobre a possibilidade de usar menos a rasterização nas futuras gerações de games - e sobre uma estrutura de dados: sparse voxel octree.

Já experimentou o Voxelstein 3D? Demo de uma voxel engine. Nela você pode destruir QUALQUER parte do cenário!
http://voxelstein3d.sourceforge.net /

Esse vídeo é de uma versão mais avançada da engine:
http://www.youtube.com/watch?v=g3H8NJ1ruFw

[1] www.pcper.com / article.php? aid = 532

- - otávio

- - Posted in Feb 25, 2009 by 189.6.255.129

Add New Comment

Your Name:


Write the code showed above on the text below.