Je suis un peu confus. La documentation officielle ( http://msdn.microsoft.com/en-us/library/windows/desktop/bb509588(v=vs.85).aspx ) dit que ddx (entrée) est la dérivée partielle de l'entrée avec respect à la "coordonnée x de l'espace d'écran".
Mon calcul est très bien, mais comment peut-il savoir d'où vient l'entrée? Si je lui passais une fonction, très bien, je peux imaginer ce que ça ferait, mais la dérivée d'un nombre est toujours nulle ...?
Est-ce juste une mise à l'échelle? Comme, cela serait redimensionné à un dixième de sa taille à cette distance, donc il renvoie un dixième? Mais alors il n'a pas besoin d'une entrée ...
Quelqu'un peut-il expliquer rapidement ce qui se passe réellement?
ddx(5)
est un peu inutile. Utilisez-le avec une valeur d'entrée, et cela vous donnera la dérivée de cette valeur par rapport aux pixels voisins dans un bloc. Encore une fois, je ne sais pas avec précision comment il calcule les valeurs, mais demander la dérivée d'une non-entrée peut bien être un comportement non défini et produire des ordures. Voir fgiesen.wordpress.com/2011/07/10/… pour plus d'informations que je ne peux fournir.
ddx
etddy
faites de la magie que vous ne pouvez pas faire vous-même. Ils ont accès à des informations supplémentaires à partir du pipeline de pixellisation que vous ne pouvez pas acquérir à partir d'un pixel shader. Je ne sais pas exactement quelle formule ils utilisent; J'ai été amené à croire qu'ils utilisent une technique d'estimation, mais je n'en suis pas sûr.