Skip to content

Path Tracer and Photon Mapping - Computer Graphics - Universidad de Zaragoza - 2020

Notifications You must be signed in to change notification settings

andrewknoll/IG_102

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5a4af24 · Oct 4, 2021

History

48 Commits
Feb 1, 2021
Jan 31, 2021
Oct 4, 2021
Jan 31, 2021
Jan 31, 2021
Nov 24, 2020
Jan 31, 2021
Jan 31, 2021
Jan 31, 2021
Jan 31, 2021
Jan 31, 2021
Jan 31, 2021
Feb 2, 2021
Feb 2, 2021
Feb 2, 2021
Feb 2, 2021
Jan 31, 2021
Jan 31, 2021
Feb 2, 2021
Feb 2, 2021
Jul 27, 2021
Jan 31, 2021
Jan 31, 2021

Repository files navigation

Path Tracer

El objetivo de este proyecto es implementar un path tracer utilizando las clases y funciones desarrolladas en prácticas anteriores. Para ello, se van a utilizar los siguientes módulos:

  • Color: Define e implementa los diferentes ToneMappers y otras clases relacionadas con la tonalidad de la imagen.
  • Imaging: utilizado para representar una imagen como una matriz de tuplas RGB.
  • Materials: utilizado para representar un material con sus características concretas.
  • Shapes: utilizado para representar figuras geométricas utilizadas en las escenas.
  • Vfield: Contiene clases y funciones que permiten representar vectores y puntos en el espacio.
  • Camera: representa una cámara pinhole en una escena.
  • LightPoint y AreaLigth: utilizado para representar luces puntuales y luces de área.
  • Ray: utilizado para representar un rayo.
  • Scene: utilizado para representar una escena que contiene geometrías, luces y una cámara.

Compilación

Para la compilación de este proyecto se facilita un fichero Makefile que automatiza este proceso. Utilizando el siguiente comando se generará el fichero ejecutable del programa:

$ make

Si se desea recompilar el programa será necesario borrar antes los ficheros generados en la anterior compilación:

$ make clean

Ejecución

El programa principal main consta de 8 parámetros de entrada opcionales que deben ser introducidos del siguiente modo:

$ .\main -<nombre del parámetro> [<valor/es del parámetro>]
Parámetro Descripción Valor por defecto Rango
output-name Nombre del fichero de salida donde se almacena la imagen resultante. output.ppm, output.bmp Cadena de caracteres
width Anchura en píxeles de la imagen. 400 Z^+^
heigth Altura en píxeles de la imagen. 400 Z^+^
scene Número de la escena a procesar. 2 {1-11}
rpp Número de rayos por pixel 10 Z^+^
tone-mapping Tipo de tone-mapping que se aplica a la imagen resultante 5 (Reinhard 2002) {0, 1, 2, 3, 4, 5, 6}
bmp Se utiliza para especificar el formato del fichero de salida como bmp false
color-resolution Número de tonalidades posibles de un píxel 255 Z^+^

El parámetro tone-mapping especifica que tipo de filtros aplicar sobre la imagen resultante del Path Tracer:

  1. Clamp: los valores por encima del valor máximo (1.0) se establecen a 1.
  2. Equalize: Normaliza los valores (de 0 a 1).
  3. Equalize and Clamp: necesita un parámetro adicional en la entrada que indique el valor límite a partir del cual clampear.
  4. Gamma: necesita un parámetro adicional en la entrada con el cual se realiza la corrección gamma.
  5. Gamma and Clamp: necesita dos parámetros adicionales, uno para realizar el clampeado (valor límite) y otro para la corrección gamma.
  6. Reinhard 2002: v a l o r 1 + v a l o r
  7. Reinhard 2005: v a l o r ( 1 + v a l o r m a x 2 ) 1 + f

El parámetro bmp solo es necesario dar como entrada el nombre del parámetro, sin dar ningún valor.

About

Path Tracer and Photon Mapping - Computer Graphics - Universidad de Zaragoza - 2020

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published