Smoothstep è una famiglia di funzioni sigmoidee usate per l'interpolazione hermitiana e per il clamping in computer grafica,Smoothstep at Microsoft Developer Network.GLSL Language Specification, Version 1.40. motori grafici,Unity game engine SmoothStep documentation. e apprendimento automatico.
Le smoothstep sono funzioni di una variabile reale a valori in , caratterizzate da due parametri e rappresentanti gli estremi di un intervallo di valori nel dominio. Per ogni , smoothstep mappa i valori all'intervallo , mentre tutti i valori sono mappati in zero, e tutti i valori sono mappati in 1. Una funzione smoothstep normalizzata ha parametri e . Nel seguito, quando non differentemente specificato, si assume che la funzione smoothstep sia normalizzata.
La funzione smoothstep di ordine interpola i valori tra 0 e 1 in modo tale che: quando la variabile è all'estremo sinistro dell'intervallo, l'immagine della funzione sia 0; quando la variabile è all'estremo destro dell'intervallo, l'immagine della funzione sia 1; le derivate (fino all'ordine ) della funzione presso gli estremi destro e sinistro abbiano valore zero. Una funzione polinomiale che soddisfi tali vincoli può essere definita tramite l'interpolazione di Hermite. La funzione smoothstep per antonomasia è quella di primo ordine , definita da un polinomio di terzo grado:
Restringendo il dominio in , la sua inversa può essere espressa analiticamente come:
La funzione smoothstep di ordine è rappresentata nella porzione centrale da un polinomio di Hermite di grado e ha forma:
La funzione smoothstep di ordine zero è equivalente alla funzione identità troncata (nota in alcuni contesti, ad esempio in computer grafica, come funzione clamp):
La funzione smoothstep di secondo ordine , anche nota come smootherstep e popolarizzata in computer grafica da Ken Perlin, ha forma:
Le successive funzioni smoothstep fino al sesto ordine sono rappresentate nell'intervallo dai seguenti polinomi:
Note
Categoria:Funzioni matematiche