Le Raysail est un Raytracer de type Monte Carlo basé sur le tracé de Ray Learn en une série d'un week-end en utilisant la rouille. Il a été fourchu du projet REMDA, qui met en œuvre les fonctionnalités des deux premiers livres de la série. J'ai essayé d'ajouter les fonctionnalités du troisième, mais j'ai des doutes que mon code est en fait correct, même que les images résultantes semblent bien.
De plus, le Raysnail intègre le code du QBVH-Rust-Ray-Tracer, à savoir le module de maillage Triangle, le chargement du fichier OBJ et le code de matériau Blinn-Phong.
Au-delà du travail en cours pour incorporer toutes les améliorations présentées dans le troisième livre de la série, nommée à juste titre "le reste de votre vie", il existe des fonctionnalités que je veux ajouter au Raysnail.
Il y a actuellement une implémentation très brute d'une fenêtre d'aperçu dans l'exemple "Preview_Sdl2", mais il doit devenir plus séparé des exemples de scène et des paramètres de ligne de commande pour tracer une scène avec une hauteur et une largeur données en utilisant l'aperçu.
Je souhaite mettre en œuvre au moins un support partiel pour le langage de définition de la scène Povray (SDL). Malheureusement, les définitions des matériaux de Povray sont très différentes des matériaux de la Raysnail, et il peut être difficile ou même impossible d'émuler correctement les matériaux Povray, des exemples antérieurs. Au moment de la rédaction de ceci, j'ai implémenté un analyse SDL très rudimentaire qui peut lire les définitions de caméra et de sphère Povray (voir SDL / Exemple.sdl). Je veux développer cela pour plus de géométrie et de définition de matériel, mais il ne prend probablement en charge qu'un sous-ensemble des fonctionnalités Povray SDL.
En tant que fan de fractales 3D, j'aimerais implémenter un code de rendu fractal. À l'heure actuelle, il y a une implémentation brute du Mandelbulb, qui ne rend que une qualité de très faible qualité, mais il peut servir de preuve de concept que l'IUT est possible d'utiliser le code Raysnail pour rendre les fractales 3D. Peut-être que cela nécessite un frontend différent.
Veuillez consulter le wiki pour une liste complète des fonctionnalités et des plans: https://github.com/varkalandar/raynail/wiki
Si vous avez installé la rouille et la cargaison, un moyen facile d'exécuter le Raysnail est cette commande:
cargo run -r --bin raysnail -- -w 800 -h 500 --samples 65 --scene sdl/example.sdlGplv3
Sauf:
example/earth-map.png , Télécharger à partir de la NASA, tombe dans le domaine public.