2017-07-28 7 views
1

Mon raytraceur génère l'image suivante: enter image description hereRaytracer - Pourquoi y a-t-il des taches sur les bords de mes sphères?

J'ai vérifié les Normales plusieurs fois et je suis tout à fait confiant que ce ne sont pas le problème. Est-ce que quelqu'un d'autre a des idées?

+0

Quel algorithme utilisez-vous pour croiser les rayons avec ces sphères? – Matso

+0

J'applique l'inverse de la transformation de la sphère au rayon, branchez l'équation du rayon paramétrique dans l'équation de la sphère implicite et résolvez la distance du point d'intersection le long du rayon. – user393454

+3

partagez un code pertinent, s'il vous plaît. Je soupçonne que vous rencontrez un problème d '«auto-intersection», étant donné que les speckles sont tous à des points où le rayon broute les sphères. – Alnitak

Répondre

0

Ce que @Alnitak a déclaré dans les commentaires. Les taches apparaissent généralement à cause de l'auto-intersection. Cela peut également se produire lors de l'implémentation des ombres. Si vous avez implémenté des ombres, vérifiez si le rayon d'ombre génère à partir du point sur la surface, si c'est le cas ajoutez une petite constante par exemple "0.001" pour générer votre rayon un peu plus loin que la surface pour éviter l'auto-intersection.