Fe 2 O 3- Ray, ou tout simplement Feoray, est un moteur de rendu de base similaire à Pov-Ray, qui était mon introduction à 3D CGI il y a longtemps. Le «rayon» fait référence à ce programme étant un traceur rayé, et Fe 2 O 3 est l'oxyde ferrique, car cela est écrit en rouille ...
Le code est basé sur le pseudocode fourni dans le livre: "The Ray Tracer Challenge" de Jamis Buck, avec un attaquant de David Buck (sans relation) qui est co-auteur de POV-Ray, et publié par des programmeurs pragmatiques.
AVERTISSEMENT: Ce projet est encore un travail précoce en cours, donc sera inutilisable dans son état actuel.

La scène montre le dernier additon aux motifs (radial), la cartographie UV sur la sphère moyenne, le matériau métallique sur la sphère gauche avec l'ombre se sont sélectivement éteintes et l'orbe de verre à droite. Les réflexions et les réfractions ne fonctionnent actuellement pas correctement, et j'ai pu trouver la raison pour laquelle, en particulier compte tenu de la littéralement, tous les autres tests passe très bien, à l'exception des tests qui impliquent des rayons secondaires de frai pour les réflexions et les réfractions, et cela me rend fou. La deuxième chose à noter est que si les tests de réflexion échouent, les réflexions ne doivent pas s'afficher dans un rendu de test, et pourtant ils le font.
Construisez le binaire avec la commande:
cargo build --release Le binaire est situé dans target/release .

Voir Changelog.
Pattern imbriqués, mais la dernière tentative a fini par être très désordonnée avec beaucoup de Box . Je pensais que les Pattern mixtes seraient un peu plus faciles, et c'était dans une certaine mesure, mais la mise en œuvre était à peu près le même problème. Si je dois résoudre ce problème, je pense qu'il serait préférable de mettre en œuvre Material imbriqués dans Pattern S, donc non seulement je reçois Pattern dans Pattern , mais je peux également contrôler les attributs individuels de chaque sous- Pattern tel que la réflectivité, la rugosité, etc. Je dois peut-être faire des traits spéciaux? Certains Pattern sont nichables, et certains sont Pattern terminaux s, tels que gradient , solid ou Pattern générés par le prolongement à venir. Sans mentionner que les textures pourraient également être appliquées aux modèles.Jitter est actuellement en cours d'expérimentation, mais cela ne sera pas disponible sur tous Pattern tant que je ne fais pas régler les bases.Ce projet est publié sous la licence GNU GPL-3.0. Consultez le fichier de licence pour plus d'informations.