Moi, je ne trouvais pas que c'était un décalage, mais plus une partie de l'ombre (une face) qui manquait.
Pas exactement une face, l'ombre est coupé, le problème est situé au niveau du fragment, et je dirais vraiment au niveau du test.
Si ce n'est pas le depth buffer qui déconne, c'est forcément l'autre valeur testée (la perspective), mais je ne vois pas ce qui peut déconner de ce côté, surtout quand ça finit par fonctionner avec une distance suffisante.
Du coup on revient sur le depth buffer, qui a l'air d'avoir toute la précision nécessaire, donc à moins que je n'ai fait n'importe quoi avec la texture..
LittleWhite a écrit:
Avez vous essayez du débogage pas à pas avec les outils spécifique GPU (NVIDIA, ou autre gDEBugger) ?
Je ne vois pas exactement de quelle façon ça pourrait me servir ici de faire du débuggage pas à pas :-/
(Oui j'ai énormément de shadow acne mais ça se corrige facilement).
Le problème venait du fait que le bias était appliqué après la perspective alors qu'il aurait dû être appliqué avant, j'ai découvert ça par hasard en appliquant le bias par une matrice au niveau du Vertex Shader.
Pour le débogueur, il faudrait un outil comme pix, qui permet de vérifier le traitement du shader pour un pixel précis. Peut être avec du similaire à GLSLDevil (ou peut être simplement l'outil de NVIDIA fait tout cela).
Après, c'était aussi pour dumper tous les buffers et bien vérifier les valeurs injecté pour un pixel (celui où il n'y a pas l'ombre) dans le shader.
Mais bon, j'avoue que je ne suis pas certain de l'avantage de tout ça.
En fait, dans votre explication, la perspective n'est pas dédouanée. En effet, lorsque vous changez la distance, vous avez changez les valeurs de la matrice de perspective. D'ailleurs, le depth buffer, vous l'affichez et depuis le début, il nous semble très juste (je le regardais encore ce matin). Donc, je pencherai sur la perspective, ou alors, les transformations (notamment pour être sur le même espace de coordonnées pour faire le test du shadowing).
C'était bien le bias de 0.5 de la texture alors ? Parce que là il y a deux bias.
Du coup tu l'appliques dans le vertex shader c'est ça ?
En fait il y a deux bias, il y a celui de 0.5 qui permet de passer du repère de projection (-0.5, 0.5, etc..) au repère de texture (0.0, 1.0, etc.), c'est celui-là qui posait problème, la solution était de l'appliquer avant l'application de la perspective (et ça rend le problème plutôt logique pour le coup, le problème apparaissait lorsque la perspective était marquée, il me semble).
L'autre bias, que j'ai viré tout un temps et remis seulement aujourd'hui pour corriger le shadow acne était correct.
Ça fait franchement du bien d'avancer, je me sens presque revivre (comme à chaque fois que je passe autant de temps sur un bug)
Prochaine étape, les points lights (qui sont de façon basique six spots lights, les perfs vont prendre cher), j'ai aussi eu quelques idées au niveau des matériaux qui promettent de rendre les prochains rendus intéressants.
Et en plus de ça, tous les crashs que j'avais avec le moteur ont mystérieusement disparus depuis quelques jours (je ne sais toujours pas si c'est une bonne ou une mauvaise nouvelle remarquez..).
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)