Я трохи розгублений. В офіційній документації ( http://msdn.microsoft.com/en-us/library/windows/desktop/bb509588(v=vs.85).aspx ) йдеться про те, що ddx (input) є частковою похідною від введення стосовно до "координати екрана-пробіл."
Моє обчислення чудово, але як я можу сказати, з чого надходить інформація? Якби я передав їй функцію, добре, я можу уявити, що б це робило, але похідна числа завжди дорівнює нулю ...?
Це просто масштабування? Мовляв, це би зменшилося на одну десяту свого розміру на цій відстані, тому воно повертає одну десяту? Але тоді він не потребує введення ...
Чи може хтось швидко пояснити, що насправді відбувається?
ddx(5)
є безглуздим. Використовуйте його із вхідним значенням, і це дасть вам похідну цього значення щодо сусідніх пікселів у блоці. Знову ж таки, я не знаю, наскільки точно він обчислює значення, але запит на похідну від невхідних даних може бути просто невизначеним поведінкою та виробленням сміття. Дивіться fgiesen.wordpress.com/2011/07/10/… для отримання додаткової інформації, ніж я можу надати.
ddx
іddy
робіть магію, яку ви не можете зробити самі. Вони мають доступ до додаткової інформації з конвеєра растерізації, який ви не можете отримати з піксельного шейдера. Я не впевнений, яку саме формулу вони використовують; Мене спонукали вважати, що вони використовують техніку оцінки, але я не знаю точно.