Estou um pouco confuso. A documentação oficial ( http://msdn.microsoft.com/en-us/library/windows/desktop/bb509588(v=vs.85).aspx ) diz que ddx (entrada) é a derivada parcial da entrada com relação a para a "coordenada x do espaço na tela".
Meu cálculo é bom, mas como ele pode dizer de onde vem a entrada? Se eu aprovasse uma função, tudo bem, posso imaginar o que faria, mas a derivada de um número é sempre zero ...?
É apenas uma escala? Como, isso seria escalado para um décimo do seu tamanho a essa distância, então retorna um décimo? Mas então não precisa de uma entrada ...
Alguém pode dar uma explicação rápida do que realmente está acontecendo?
ddx(5)
é meio inútil. Use-o com um valor de entrada, e isso fornecerá a derivada desse valor em relação aos pixels vizinhos em um bloco. Novamente, eu não sei exatamente como ele calcula valores, mas solicitar a derivada de uma não entrada pode muito bem ser apenas um comportamento indefinido e produzir lixo. Veja fgiesen.wordpress.com/2011/07/10/… para obter mais informações do que eu posso fornecer.
ddx
eddy
faça mágica que você não pode fazer sozinho. Eles têm acesso a informações adicionais do pipeline de rasterização que você não pode adquirir de dentro de um pixel shader. Não tenho certeza exatamente qual fórmula eles usam; Fui levado a acreditar que eles usam uma técnica de estimativa, mas não sei ao certo.