Я пытаюсь понять функции dFdx и dFdy в GLSL.
Я понимаю следующее:
- Производная - это скорость изменения
- Частная производная функции с двумя параметрами заключается в том, что вы дифференцируете функцию, сохраняя один из постоянных параметров.
- dFdx и dFdy найдите скорость изменения значения между текущим фрагментом и соседним фрагментом.
Я не понимаю, к чему относится скорость изменения. Является ли это скоростью изменения координат фрагмента?
Может быть, вы можете найти скорость изменения произвольной переменной между двумя вызовами шейдера фрагмента? Являются ли шейдерные призывы "считывания" переменных из соседних запросов? Для (упрощенного) примера:
// 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);
Будет ли d -1,0 и 1,0 соответственно?