Raxvan ha perfettamente ragione sul fatto che le tecniche anti-aliasing "tradizionali" funzioneranno nel raytracing, comprese quelle che usano informazioni come la profondità per fare l'antialiasing. Ad esempio, potresti anche fare un anti aliasing temporale nel ray tracing.
Julien ha ampliato il secondo elemento di Raxvan, che era una spiegazione del super campionamento, e ha mostrato come lo avresti effettivamente fatto, menzionando anche che puoi randomizzare la posizione dei campioni all'interno del pixel ma poi stai entrando nel paese di elaborazione del segnale che è molto più in profondità, e lo è sicuramente!
NN
Se lo fai, puoi comunque ottenere l'aliasing. È meglio che NON farlo, perché stai aumentando la frequenza di campionamento, quindi sarai in grado di gestire dati a frequenza più alta (ovvero dettagli più piccoli), ma può comunque causare aliasing.
N
Quando usi solo numeri casuali "regolari" come quelli che ottieni da rand () o std :: uniform_int_distribution, questo è chiamato "rumore bianco" perché contiene tutte le frequenze, come il modo in cui la luce bianca è composta da tutti gli altri colori (frequenze ) di luce.
L'uso del rumore bianco per randomizzare i campioni all'interno di un pixel ha il problema che a volte i campioni si raggruppano insieme. Ad esempio, se hai una media di 100 campioni in un pixel, ma TUTTI finiscono per essere nell'angolo in alto a sinistra del pixel, non otterrai NESSUNA informazione sulle altre parti del pixel, quindi il colore finale del pixel risultante mancheranno informazioni su quale colore dovrebbe essere.
Un approccio migliore consiste nell'utilizzare qualcosa chiamato rumore blu che contiene solo componenti ad alta frequenza (come il modo in cui la luce blu è luce ad alta frequenza).
Il vantaggio del rumore blu è che si ottiene una copertura uniforme sul pixel, come si ottiene con una griglia di campionamento uniforme, ma si ottiene ancora una certa casualità, che trasforma l'aliasing in rumore e ti dà un'immagine più bella.
Sfortunatamente, il rumore blu può essere molto costoso da calcolare e tutti i migliori metodi sembrano essere brevettati (che diamine ?!), ma un modo per farlo, inventato da Pixar (e anche brevettato penso ma non sicuro al 100%) consiste nel creare una griglia uniforme di punti campione, quindi compensare casualmente ogni punto campione come una quantità casuale tra più o meno metà della larghezza e dell'altezza della griglia di campionamento. In questo modo ottieni una sorta di campionamento del rumore blu per un prezzo abbastanza basso.
Si noti che questa è una forma di campionamento stratificato e anche il campionamento del disco di Poisson è una forma di questo, che è anche un modo per generare rumore blu:
https://www.jasondavies.com/poisson-disc/
Se sei interessato ad approfondire, probabilmente vorrai anche dare un'occhiata a questa domanda e rispondere!
Qual è il ragionamento fondamentale per l'antialiasing che utilizza più campioni casuali all'interno di un pixel?
Infine, questa roba sta iniziando a vagare nel regno del tracciato del percorso di Monte Carlo, che è il metodo comune per fare il raytracing fotorealistico. se sei interessato a saperne di più, dai una lettura!
http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/