Acelerador gráfico para ray tracing
Resumo
O ray tracing é uma técnica de renderização de imagens tridimensionais (3D) em uma exibição bidimensional (2D) traçando um caminho de luz através de pixels em um plano de imagem, a tela. A técnica é capaz de produzir um grau muito alto de realismo visual, mais alto do que o dos métodos de renderização típicos, mas a um custo computacional maior. Um modo de acelerar esse processo é usando placas gráficas dedicadas como as GPUs (Graphical Processing Units), co-processadores ou mesmo FPGAs (Field Programmable Gate Array) para isso. Essa técnica está cada vez mais presente no nosso dia a dia e tende, num futuro próximo, estar presente em sistemas embarcados, que por padrão não possuem um alto poder computacional. Para que seja possível aplicar a técnica do ray tracing nesses dispositivos é necessário dispor de componentes de hardware específicos, focados na aceleração de algumas partes do método, assim tornando viável o uso do mesmo em tempo real. No presente trabalho, foi implementado o método simplificado/parcial do ray tracing em linguagem C, de forma a exemplificar o uso do método em um sistema embarcado. Foram analisados os pontos críticos, identificando otimizações em potencial. Foram estabelecidas diferentes configurações do processador para se analisar o desempenho e determinar qual a versão mais otimizada. Ao final, foram comparadas a versão original, a versão otimizada e as implementações presentes na literatura, utilizando como figura de mérito o poder de computação, medido em raios por segundo, além da área e potência de cada implementação. A melhor implementação teve como resultado médio de 108 KiloRays/sec, com um pico de 239 KiloRays/sec.
Coleções
Os arquivos de licença a seguir estão associados a este item: