Monte-Carlo-Raytracer com Radeon Rays e OpenCL 1.2
Características
- Rastreador de caminho regular
- Rastreador de caminho bidirecional
- Fontes de luz
- Luz Direcional
- Ponto de luz
- Luzes de área
- GUI com cena editável
- Materiais Uber
- Reflexão e transmissão brilhantes: Microfacet Torrance-Sparrow BRDF e BTDF com distribuição Trowbridge-Reitz para dielétricos
- Transmissão especular
- Reflexão Especular
- Reflexão Lambertiana
- Mapeamento Normal
- Atualmente, um amostrador aleatório é usado, mas pode ser alterado para Sobol via #define em assets/kernels/samplers.cl
Construir
- clone git --recursivo https://github.com/compix/Monte-Carlo-Raytracer.git
- CMake - Atualmente apenas o Windows é suportado, pequenas modificações precisam ser feitas para suportar o Linux.
- Testado no Windows 10, compilado com Visual Studio 2017 (que possui suporte integrado ao CMake)
Fontes relevantes
- Pharr, Matt, Wenzel Jakob e Greg Humphreys: Renderização com base física: da teoria à implementação. Morgan Kaufmann, 2016.
- Veach, Eric: Métodos robustos de Monte Carlo para simulação de transporte leve. Número 1610. Tese de doutorado da Universidade de Stanford, 1997.
- Torrance, Kenneth E e Ephraim M Sparrow: Teoria para reflexão fora-especular de superfícies rugosas. Josa, 57(9):1105-1114, 1967.
- Trowbridge, TS e Karl P Reitz: Representação de irregularidade média de uma superfície rugosa para reflexão de raios.
- Munshi, Aaftab: A versão da especificação OpenCL: revisão do documento 1.2: 19, 2012. https://www.khronos.org/registry/OpenCL/specs/opencl-1.2.pdf
- Raios Radeon: https://www.amd.com/de/technologies/radeon-rays
- Sobol', Il'ya Meerovich: Sobre a distribuição de pontos em um cubo e a avaliação aproximada de integrais.
- Morgan McGuire, Arquivo de computação gráfica, julho de 2017 (https://casual-effects.com/data)