J'ai de toutes façons raison. (le blog de Ze_PilOt)
Retour au blog <<

Naissance d'un shader - étape 4 : Ca marche pas ! + Ca marche !

Mercredi 22 octobre 2008 à 15 h 09
Plus on teste un shader, plus on est à l'aide avec ses paramètres et son fonctionnement interne.

On sait à l'avance ce qu'on doit avoir comme résultat, et on sait plus ou moins d'où vient l'erreur..

Apres avoir adapté quasiment à la perfection les maths du papier de Marschner, nous nous sommes retrouvés avec des resultats bien, mais pas comme ceux à quoi on s'attendait. Ca se joue à pas grand chose : trop peu de subs, de la refraction là où il faut pas,...

Après des tonnes de vérifs, on est arrivé à la conclusion que le Marschner, il s'était gouré en recopiant ses notes. Deux (grosses) erreurs, que je vais donner ici pour éviter l'arrachage de cheveux aux codeurs qui tomberont sur ce blog en cherchant le code de ce type de shader :

- Problème lors du calcul du fresnel
Qui determine si un rayon est renvoyé ou tranmis dans le poil, et en quelle quantité.

- Problème lors du calcul de l'absorption :
Le calcul de la longueur du trajet dans le poil est incorrecte.

Une fois ces calculs corrigés, nous voilà avec un prototype fonctionnel. Petit rajout d'une composante de diffusion - pour simuler la lumiere qui rebondit entre les poils, ou celle qui traverse un poil pour en eclairer un autre - Et voilà !

Une nouvelle série de verification, et pret pour l'étape 5, décrite à l'étape 1 : "baker" tout les chemins possibles dans une lookup table afin d'accélerer le rendu !

Il n'y a aucun commentaire sur cet article.

Tout le monde peut publier un commentaire, vous n'avez pas besoin de compte (dans ce cas votre commentaire ne sera publié qu'une fois validé par le propriétaire du blog)

Commenter

Tags autorisés : [b] [/b], [i] [/i], [u] [/u], [code] [/code], [img]Adresse d'une image[/img], [url=Adresse d'un site web] [/url]
Vous pouvez aligner vos images à droite ou à gauche en modifiant le tag [img] comme ceci : [img right] ou [img left].

Pour vos vidéos/animations flash : [video]Adresse d'une animation[/video], pour préciser la largeur et hauteur : [video width=100 height=200]...[/video]