Ray-tracer para la generación de imágenes 3D fotorrelistas

Penagos Rodríguez, Alejandro (2018). Ray-tracer para la generación de imágenes 3D fotorrelistas. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.

Description

Title: Ray-tracer para la generación de imágenes 3D fotorrelistas
Author/s:
  • Penagos Rodríguez, Alejandro
Contributor/s:
  • Reyes Castro, Miguel
Item Type: Final Project
Degree: Grado en Matemáticas e Informática
Date: July 2018
Subjects:
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Matemática Aplicada a las Tecnologías de la Información y las Comunicaciones
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (655kB) | Preview

Abstract

El objetivo final de éste Trabajo de Fin de Grado es obtener un ray-tracer generador de imágenes 3D fotorrealistas funcional. El proyecto comenzó estudiando funcionamiento del método de ray-tracing para renderización de imágenes generadas por ordenador. Una vez estudiadas las diferentes partes, y recordando y repasando los fundamentos básicos de la geometría afín y proyectiva dados en la carrera, se comenzó a desarrollar geométricamente e implementar el esqueleto de lo que es el objetivo de éste Trabajo, el ray-tracer. La primera fase consistió en el modelado esquemático del código, siguiendo un modelo de clases y herencias que haría que el código fuera legible, y extensible. Después, se implementaron básicamente los diferentes tipos de primitivas de objetos 3D (triángulos, esferas y planos), las luces, y la cámara. Una vez se completó el esqueleto del ray-tracer, se comenzó la implementación de la proyección perspectiva que ocurre en los primeros pasos de todo método generador de imágenes por ordenador. Posteriormente, y después de pruebas intensivas para asegurarse de que el programa funcionaba como se esperaba, se pasó a la investigación sobre shading. Éste tipo de shading es lo que diferencia al ray-tracing de los demás métodos de generación de imágenes por ordenador. Dada la amplia gama de algoritmos de shading existente, se comenzó el estudio de un grupo selecto de ellos, para representar en general de la mejor forma posible varios de los tipos diferentes de shading disponibles. Después del estudio intensivo de la teoría detrás de los diferentes algoritmos de shading, se comenzó el proceso de traducirlos a código. Comenzando por los mas sencillos, como reflexión y refracción simples, se fueron implementando acumulativamente, y probando intensivamente, hasta la completitud del ray-tracer. Cuando todo el código del ray-tracer fue completado, se comenzó un proceso de pruebas intensivas, con el objetivo de cazar todos los errores que pudiera haber y, ya de paso, generar imágenes para documentar el ray-tracer, así como ejemplos de uso.---ABSTRACT---The final goal of this Final Degree Project is having a fully-functional ray-tracer that generates 3D photorealistic images. The project started by investigating the ray-tracing method inner workings to do Computer Generated Imagery. Once the different parts had been studied, and remembering everything learnt about affine and perspective geometry in the Degree, the geometric development and implementation of the skeleton of the ray-tracer started. The first step was to start writing the code skeleton in a modular way. By using classes and inheritance, the code was going to be readable, and extendible. Then, the basic primitive 3D shapes (like sphere, plane, or triangle), the camera and the lights were implemented at a basic level. When completed, the implementation of the perspective projection that occurs on the first steps of evey CGI method was started. Later, and only after thorough testing, shading investigation was started. This particular kind of shading is the thing that differentiates the ray-tracing method from others. Given the wide range of shading algorithms in existence, a few shaders were chosen among all the shaders possible to represent several effects. After a lot of intensive study about the theory behind the chosen shading algorithms, the process to translate that mathematical formulas into code started. Starting by the simpler ones, like reflection or refraction, they all were getting implemented accumulatively (and tested thoroughly) until the ray-tracer was complete. When all the code was complete, another testing phase was started, with the intent of catching all the bugs possible before the presentation. While doing this, the example creation and image documentation was done as well.

More information

Item ID: 52276
DC Identifier: http://oa.upm.es/52276/
OAI Identifier: oai:oa.upm.es:52276
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 17 Sep 2018 08:47
Last Modified: 17 Sep 2018 08:47
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM