Monte-Carlo-Raytracer con Radeon Rays y OpenCL 1.2
Características
- Trazador de ruta regular
- Trazador de ruta bidireccional
- Fuentes de luz
- Luz direccional
- Punto de luz
- Luces de área
- GUI con escena editable
- Material Uber
- Reflexión y transmisión brillantes: Torrance-Sparrow Microfacet BRDF y BTDF con una distribución Trowbridge-Reitz para dieléctricos
- Transmisión especular
- Reflexión especular
- Reflexión lambertiana
- Mapeo normal
- Actualmente se utiliza un sampler aleatorio, sin embargo se puede cambiar a Sobol mediante #define en activos/kernels/samplers.cl.
Construir
- clon de git --recursivo https://github.com/compix/Monte-Carlo-Raytracer.git
- CMake: actualmente solo se admite Windows; se deben realizar modificaciones menores para admitir Linux.
- Probado en Windows 10, compilado con Visual Studio 2017 (que tiene soporte integrado para CMake)
Fuentes relevantes
- Pharr, Matt, Wenzel Jakob y Greg Humphreys: Representación basada en la física: de la teoría a la implementación. Morgan Kaufmann, 2016.
- Veach, Eric: Métodos robustos de Monte Carlo para la simulación del transporte ligero. Número 1610. Tesis doctoral de la Universidad de Stanford, 1997.
- Torrance, Kenneth E y Ephraim M Sparrow: Teoría de la reflexión fuera de especular de superficies rugosas. Josa, 57(9):1105-1114, 1967.
- Trowbridge, TS y Karl P Reitz: Representación de irregularidad promedio de una superficie rugosa para la reflexión de rayos.
- Munshi, Aaftab: Versión de la especificación OpenCL: revisión del documento 1.2: 19, 2012. https://www.khronos.org/registry/OpenCL/specs/opencl-1.2.pdf
- Rayos Radeon: https://www.amd.com/de/technologies/radeon-rays
- Sobol', Il'ya Meerovich: Sobre la distribución de puntos en un cubo y la evaluación aproximada de integrales.
- Morgan McGuire, Computer Graphics Archive, julio de 2017 (https://casual-effects.com/data)