Wyjaśnienie dFdx

Próbuję zrozumieć funkcje dFdx i dFdy w GLSL.

Rozumiem następujące rzeczy:

Pochodna to szybkość zmianCzęściowa pochodna funkcji z dwoma parametrami jest wtedy, gdy różnicujesz funkcję, zachowując jeden z parametrów na stałym poziomie.dFdx i dFdy znajdują szybkość zmiany wartości między bieżącym fragmentem a sąsiadującym fragmentem.

Nie rozumiem, do czego odnosi się tempo zmian. Czy jest to szybkość zmiany współrzędnych fragmentów?

Czy to możliwe, że możesz znaleźć tempo zmiandowolna zmienna między dwoma wywołaniami shadera fragmentu? Czy wywołania modułu cieniującego „odczytują” zmienne z sąsiednich wywołań? Dla (uproszczonego) przykładu:

// invokation for fragment 1
float x = 1.0;
float d = dFdx(x);

// invokation for fragment next to fragment 1 along the x axis.
float x = 2.0;
float d = dFdx(x);

Czy d wynosiłoby odpowiednio -1.0 i 1.0?

questionAnswers(1)

yourAnswerToTheQuestion