Ok, Ok ... Tu étais un peu en avance sur moi !chambolle a écrit:Oui je comprend ce que tu dis. Normalement on definit dx et dy pourqu'ils correspondent a 1 pixel, mais ce n'est pas ce que leeperry a fait et le systeme ne fait pas des arrondis. J'ai donc cherche a savoir ce qu'il faisait.
Mais un peu de recherche sur google t'aurais permis de comprendre !! (paresseux, va !).
En fait, mon analyse n'était pas vraiment assez poussée (mais je me posais la même question que toi) : la frame, remappée dans un espace 0-1, 0.1 est une TEXTURE ! (magique vraiment).
La fonction "Tex2D" est ce qu'ils appellent une fonction intrinsèque du langage des shaders (HSL-je-sais-plus-quoi).
s0 est un objet de type "texture", et le deuxième argument est une position (en float2) dans la texture.
Tex2D retourne la couleur de la texture à cette position (sous forme de float4).
Je vais creuser la question, parce qu'il est vrai qu'une texture n'est qu'une matrice de float4 à la base (256*256, 512*512, etc.). J'imagine que la fonction Tex2D utilise ses propres algorythmes pour rendre une couleur si la cible n'est pas un des points de la matrice de floats (c'est quand même un peu normal pour un langage de "haut niveau").
=> Voilà pourquoi ça marche (même en mettant 0.152648956658448547 en 2ème argument), et je répète c'est un peu magique quand même.
En somme, rien de bien compliqué...