Trabalho de Conclusão de Curso de Graduação
Acelerador gráfico para ray tracing
Fecha
2023-01-31Autor
Culau, Eduardo Capellari
Institución
Resumen
Ray 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.