Avaliação do impacto de efeitos com Deferred Shading | Bit a Bit
A viabilidade de se incorporar efeitos visuais e técnicas gráficas em um jogo depende de diferentes critérios como desempenho, estética e experiência do jogador. Esse artigo descreve uma metodologia de avaliação do impacto no desempenho de jogos a partir da adição de efeitos visuais em uma arquitetura de renderização baseada em deferred shading.
Deferred shading é uma técnica de renderização que recentemente vem ganhando muito espaço entre os desenvolvedores de jogos. Apesar de ter sido proposta inicialmente por Deering et al. [1988] há mais de vinte anos, somente com o hardware gráfico atual é possível utilizá-la em tempo real em computadores pessoais.
A proposta desse trabalho é analisar o impacto de efeitos visuais adicionados progressivamente sobre o desempenho de um renderizador baseado em deferred shading. O renderizador utilizado para a análise é implementado na plataforma XNA, de forma a ser compatível tanto com computadores PC como consoles Xbox.
Inicialmente foi construído um framework para extrair informações estatísticas sobre a cena (número de polígonos por quadro renderizado, número médio de quadros por segundo, tempo que uma função demora em executar), tomando-se o cuidado de interferir o mínimo possível no desempenho do renderizador.
A seguir construiu-se um cenário bastante simples com poucos objetos, tendo ao todo 42418 polígonos.
O teste consiste na adição de geometrias e luzes Point simultaneamente a uma cena. A Figura abaixo apresenta uma imagem do ambiente de teste em execução.
Para que o teste reproduzisse de forma mais próxima o ambiente de execução de um jogo, a cena conta com colisões e simulações físicas (Bepu), entretanto, esse atraso adicionado pode ser ignorado para fins de comparação, uma vez que aparece igualmente em todos os testes.
Os testes foram realizados em um Dell Vostro 1320 com 4Gb de RAM, processador Intel Core 2 Duo T6670 2.2GHz com uma placa de video NVidia GForce 9300M Gs.
Na Figura , são exibidas o número de chamadas dos métodos Draw e Update por segundo e a soma dos dois valores. Com esse valores foram calculadas gráficos de tendência para suavizar o fato de que os objetos são adicionados de forma pontual no tempo. Os pontos iniciais devem ser desconsiderados pois sofrem a interferência do processamento de construção da cena.
A curva de cor verde representa o acumulado das outras duas variáveis e pode ser utilizado como métrica principal uma vez que os outros parâmetros têm comportamento parecido.
O gráfico de SSAO apresenta um comportamento condizente com a maioria dos efeitos de pós-processamento, tendo um valor inicial consideravelmente menor, entretanto a taxa com que o desempenho cai é próxima à taxa do gráfico sem efeito, o que não acontece no exemplo com normal mapping. Este apresenta um comportamento inicial bastante semelhante ao exemplo sem efeitos, entretanto tem uma taxa de queda de desempenho mais acentuada sendo visivelmente, linearmente dependente do número de objetos na cena.
É importante salientar nos testes em questão, a cada objeto adicionado, também é adicionada uma fonte de luz pontual; o efeito dela é semelhante ao desenho de mais uma esfera na cena (conforme descrito anteriormente).
Comprova-se que a arquitetura deferred abre um novo leque de possibilidade em relação à iluminação. Nesses testes foi possível adicionar cerca de 800 luzes.
O gerenciamento de efeitos, que inclui a adição e a manutenção dos mesmos é bastante facilitada, uma vez que as alterações são bastante localizadas e respeitam interfaces bem definidas.
Tal avaliação se bem utilizada é muito importante para o gamedesigner e toda a equipe de desenvolvimento para otimizar a sua aplicação adicionando vários efeitos simultâneos sem se preocupar tanto com futuros problemas de desempenho.
Sob orientação do Prof. Dr. Ricardo Nakamura
Este artigo foi publicado no dia 15 de novembro de 2010 às 9:06 pm	na(s) categoria(s) Coop10, Games, Outros, TCC. Você pode seguir comentários deste artigo através do link do feed RSS 2.0.