O RaySail é um Raytracer do tipo Monte Carlo com base no rastreamento de Ray Learn em uma série de fim de semana usando Rust. Foi bifurcado no projeto REMDA, que implementa os recursos dos dois primeiros livros da série. Tentei adicionar os recursos do terceiro, mas tenho dúvidas de que meu código está realmente correto, mesmo que as imagens resultantes parecem bem.
Além disso, o Raysnail incorpora código do QBVH-RUST-RAY-TRACER, a saber, o módulo de malha do triângulo, o carregamento do arquivo OBJ e o código de material Blinn-Phong.
Além do trabalho em andamento, para incorporar todas as melhorias divulgadas no terceiro livro da série, nomeadamente nomeadas "The Rest of Your Life", existem alguns recursos que eu quero adicionar à Raysnail a seguir.
Há uma implementação muito grosseira de uma janela de visualização no momento no exemplo "Preview_SDL2", mas precisa se separar dos exemplos de cena e dos parâmetros da linha de comando para rastrear alguma cena com a altura e a largura da visualização.
Quero implementar pelo menos suporte parcial para a linguagem de definição de cena do Povray (SDL). Infelizmente, as definições materiais de Povray são muito diferentes dos materiais na Raysnail, e pode ser difícil ou até impossível emular os materiais de Povray adequadamente, exemplos triviais anteriores. No momento da redação, implementei um analisador SDL muito rudimentar que pode ler as definições de câmera e esfera do POVRAY (consulte SDL/Exempline.sdl). Quero expandir isso para mais geometria e definições materiais, mas provavelmente ele suportará apenas um subconjunto dos recursos do POVRAY SDL.
Como fã de fractais 3D, eu gostaria de implementar algum código de renderização fractal. No momento, há uma implementação bruta do mandelbulb, que torna apenas uma qualidade muito baixa, mas pode servir como uma prova de conceito de que é possível usar o código da Raysnail para renderizar fractais 3D. Talvez exija um front -end diferente.
Verifique o wiki para obter uma lista completa de recursos e planos: https://github.com/varkalandar/raysnail/wiki
Se você instalou ferrugem e carga, uma maneira fácil de executar o Raysnail é este comando:
cargo run -r --bin raysnail -- -w 800 -h 500 --samples 65 --scene sdl/example.sdlGPLV3
Exceto:
example/earth-map.png , download da NASA, cai em domínio público.