Mostrar registro simples

dc.contributor.advisorOliveira, Leonardo Londero de
dc.creatorCulau, Eduardo Capellari
dc.date.accessioned2023-03-20T16:39:30Z
dc.date.available2023-03-20T16:39:30Z
dc.date.issued2023-01-31
dc.date.submitted2023-01-31
dc.identifier.urihttp://repositorio.ufsm.br/handle/1/28285
dc.descriptionTrabalho de conclusão de curso (graduação) - Universidade Federal de Santa Maria, Centro de Tecnologia, Curso de Engenharia de Computação, RS, 2023.por
dc.description.abstractRay tracing is a technique for rendering three-dimensional (3D) images into a twodimensional (2D) display by tracing a path of light through pixels on an image plane, the screen. The technique is capable of producing a very high degree of visual realism, higher than typical rendering methods, but at a higher computational cost. One way to speed up this process is to use dedicated graphics cards such as GPUs (Graphical Processing Units), co-processors or even FPGAs (Field Programmable Gate Array) for this purpose. This technique is increasingly present in our daily lives and it tends, in the near future, to be present in embedded systems, which by default do not have high computational power. In order to apply the ray tracing technique to these devices, it is necessary to have specific hardware components, focused on accelerating some parts of the method, thus making it viable to use it in real time. In the present work, the simplified/partial method of ray tracing was implemented in C language, in order to exemplify the use of the method in an embedded system. Critical points were analyzed, identifying potential optimizations. It was performed the definition of some different processor configurations to analyze the performance with the presence of some specific component and determine which version is the most optimized. In the end, the original version, the optimized version and implementations present in the literature were compared, using as a figure of merit the computing power, measured in rays per second, in addition to the area and power of each implementation. The best implementation had an average result of 108 KiloRays/sec, with a peak of 239 KiloRays/sec.eng
dc.languageporpor
dc.publisherUniversidade Federal de Santa Mariapor
dc.rightsAcesso Abertopor
dc.rightsAttribution-NonCommercial-NoDerivatives 4.0 International*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/*
dc.subjectRay Tracingeng
dc.subjectProcessador Configurávelpor
dc.subjectOtimização de Hardwarepor
dc.subjectASICeng
dc.subjectVHDLeng
dc.subjectConfigurable processorseng
dc.subjectHardware Optimizationeng
dc.titleAcelerador gráfico para ray tracingpor
dc.title.alternativeGraphics accelerator for ray tracingeng
dc.typeTrabalho de Conclusão de Curso de Graduaçãopor
dc.degree.localSanta Maria, RS, Brasil.por
dc.degree.graduationEngenharia de Computaçãopor
dc.description.resumoO 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.por
dc.publisher.countryBrasilpor
dc.publisher.initialsUFSMpor
dc.subject.cnpqCNPQ::ENGENHARIASpor
dc.publisher.unidadeCentro de Tecnologiapor


Arquivos deste item

Thumbnail
Thumbnail

Este item aparece na(s) seguinte(s) coleção(s)

Mostrar registro simples

Acesso Aberto
Exceto quando indicado o contrário, a licença deste item é descrito como Acesso Aberto