title: Beam tracing
text: # Beam tracing
  
  Il Beam tracing è un algoritmo atto a simulare la propagazione delle onde. Venne sviluppato da Paul Heckbert and Pat Hanrahan nel contesto della computer grafica per il rendering di scene in 3D, ma fu utilizzato anche in altre aree simili, come simulazioni di acustica ed elettromagnetismo. Rappresenta inoltre una sorta di evoluzione del ray tracing, che simula infatti soltanto i raggi, senza spessore. I "beams" hanno la forma di piramidi illimitate, con sezioni trasversali poligonali (possibilmente complesse).
  
  Nel beam tracing, un fascio piramidale viene inizialmente proiettato attraverso l'intero tronco di visualizzazione e poi viene intersecato con ogni poligono nell'ambiente, in genere dal più vicino al più lontano. Ogni poligono che si interseca con il fascio deve essere visibile e viene rimosso dalla forma del raggio e aggiunto a una coda di rendering. Quando un raggio si interseca con un poligono riflettente o rifrattivo, viene creato un nuovo raggio in modo simile al ray-tracing.
  
  Il beam tracing risolve alcuni problemi relativi al campionamento e all'aliasing. Poiché calcola efficacemente il percorso di ogni possibile raggio all'interno di ciascun fascio (che può essere visto come un denso fascio di raggi adiacenti), non è così soggetto a sottocampionamento (raggi mancanti) o sovracampionamento (risorse computazionali sprecate).
  
  L'algoritmo è stato applicato con successo ai campi della modellazione acustica e della propagazione elettromagnetica.
  
  