Ray tracing: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
fix /migliorata leggibilità wikitesto |
Correggo link |
||
(4 versioni intermedie di 4 utenti non mostrate) | |||
Riga 1:
[[File:Raytraced image jawray.jpg|thumb|Scena prodotta attraverso il ray-tracing]]
Il '''ray tracing''' è una famiglia di soluzioni di [[ottica|geometria ottica]] che si basa sul calcolo del percorso fatto dalla luce, seguendone i [[
In uno spettro di costi computazionali e fedeltà visiva, le tecniche di rendering basate sul ray tracing, come: [[#Algoritmo di Ray casting|ray casting]], [[ray tracing ricorsivo]], [[ray tracing distribuito]], [[Photon mapping|mappatura dei fotoni]] e [[path tracing]]; sono generalmente più lente e con una maggiore fedeltà rispetto ai metodi di [[scanline rendering]].<ref>{{cita libro
Riga 20:
Il ray tracing descrive un metodo per la produzione di immagini costruite in sistemi di [[computer grafica 3D]], con maggior realismo di quello che si potrebbe ottenere con l'uso di [[ray casting]] o [[scanline rendering]]. Lavora tracciando, all'inverso, il percorso che potrebbe aver seguito un raggio di [[luce]] prima di colpire un'immaginaria lente. Mentre la [[scena (computer grafica)|scena]] viene attraversata seguendo il percorso di numerosi raggi, le informazioni sull'aspetto della scena vengono accumulate. La riflessione del raggio, la sua rifrazione o l'assorbimento sono calcolate nel momento in cui colpisce un qualsiasi oggetto.
Le scene, nel ray tracing, vengono descritte matematicamente, solitamente da un [[programmatore]], o da un grafico, utilizzando particolari [[Programma (informatica)|programmi]]. Le scene possono anche includere immagini e modelli creati attraverso varie tecnologie, per esempio usando la [[fotografia digitale]]. Seguendo i raggi in senso inverso viene
La scorciatoia utilizzata nel raytracing, quindi, presuppone che un dato raggio termini sulla camera, e ne cerca la sorgente. Dopo aver calcolato un numero fisso di interazioni (già deciso in precedenza), l'intensità della luce nel punto di ultima intersezione viene calcolata con un insieme di algoritmi, inclusi il classico algoritmo di rendering ed altre tecniche (come la [[radiosity]]).
Riga 31:
Il primo algoritmo di ray casting (in opposizione a quello di ray tracing) venne presentato da [[Arthur Appel]] nel [[1968]]. L'idea di fondo del ray casting consiste nel far partire i raggi dall'occhio, uno per [[pixel]], e trovare il più vicino oggetto che ne blocca il percorso (occorre pensare ad un'immagine come ad una grata, in cui ogni quadrato corrisponde ad un pixel). L'oggetto colpito è quello che l'occhio vede attraverso quel pixel. Usando le proprietà del materiale e gli effetti della luce nella scena, questo algoritmo è in grado di determinare il colore dell'oggetto. Questa supposizione è fatta pensando che una superficie è visibile se il raggio la raggiunge senza essere bloccato o in ombra. Il colore della superficie viene calcolato usando i tradizionali [[Shader|shading model]] presenti in [[Computer grafica]]. Un importante vantaggio offerto dal ray casting rispetto al più vecchio [[scanline rendering|algoritmo di scanline]], è la sua capacità di gestire con semplicità superfici solide o non-piane, come ad esempio [[Cono (solido)|coni]] e [[sfera|sfere]]. Se una superficie matematica può essere colpita da un raggio, il ray casting è in grado di disegnarla. Oggetti complicati possono essere creati utilizzando tecniche di [[modellazione solida]], e facilmente renderizzati.
Il ray casting per la produzione di computer grafica venne usato per la prima volta da alcuni scienziati del [[Mathematical Applications Group, Inc.]], (MAGI) di Elmsford, [[New York (
=== Algoritmo di ray tracing ===
Riga 74:
[[File:PathOfRays.svg]]
Per prima cosa, un raggio viene creato dal punto di vista
== Ray tracing in real time ==
Riga 81:
Il progetto [[OpenRT]] è composto da un nucleo altamente ottimizzato basato sul ray tracing, e ad un [[Application programming interface|API]] in stile [[OpenGL]] per poter offrire un'alternativa all'approccio corrente basato sulla [[rasterizzazione]].
L'[[hardware]] specifico per il ray tracing, come il [[Ray Processing Unit]] sviluppato all'[[Università
Alcuni software real-time, con motore basato sul ray tracing, sono stati sviluppati da programmatori appassionati fino ai tardi [[anni 1990|anni novanta]]. I ray tracer usati in queste [[Demo#Nelle applicazioni|demo]], comunque, usano spesso approssimazioni inaccurate ed arrivano ad imbrogliare per
Dalla generazione [[GeForce 20 series]] di GPU in poi, della casa Nvidia, è stato implementato un sistema di accelerazione hardware che punta a rendere possibile il ray tracing in tempo reale, specie nei videogiochi, il tutto col supporto di dedicati tool per sviluppatori.<br />
|