Sono un po 'confuso. La documentazione ufficiale ( http://msdn.microsoft.com/en-us/library/windows/desktop/bb509588(v=vs.85).aspx ) afferma che ddx (input) è la derivata parziale dell'input rispetto alla "coordinata x spazio-schermo".
Il mio calcolo va bene, ma come può dire da cosa proviene l'input? Se gli passassi una funzione, va bene, posso immaginare cosa farebbe, ma la derivata di un numero è sempre zero ...?
È solo un ridimensionamento? Ad esempio, questo verrebbe ridimensionato a un decimo della sua dimensione a questa distanza, quindi restituisce un decimo? Ma poi non ha bisogno di un input ...
Qualcuno può dare una rapida spiegazione di ciò che sta realmente accadendo?
ddx(5)è un po 'inutile. Usalo con un valore di input, e questo ti darà la derivata di quel valore rispetto ai pixel vicini in un blocco. Ancora una volta, non so con quale precisione calcoli i valori, ma chiedere la derivata di un non input potrebbe essere un comportamento indefinito e produrre immondizia. Vedi fgiesen.wordpress.com/2011/07/10/… per maggiori informazioni di quelle che posso fornire.
ddxeddyfai magie che non puoi fare da solo. Hanno accesso a informazioni aggiuntive dalla pipeline di rasterizzazione che non è possibile acquisire all'interno di un pixel shader. Non sono sicuro di quale formula utilizzino; Sono stato portato a credere che usano una tecnica di stima, ma non lo so per certo.