Grafica di ray-tracing: Esplorazione del rendering fotorealistico nella visione artificiale
Di Fouad Sabry
()
Info su questo ebook
Che cos'è la grafica Ray Tracing
Nella computer grafica 3D, il ray tracing è una tecnica per modellare il trasporto della luce da utilizzare in un'ampia varietà di algoritmi di rendering per la generazione di immagini digitali.
Come trarrai vantaggio
(I) Approfondimenti e convalide sui seguenti argomenti:
Capitolo 1: Ray tracing ( grafica)
Capitolo 2: Rendering (computer grafica)
Capitolo 3: Illuminazione globale
Capitolo 4: Radiosity (computer grafica)
Capitolo 5: Mappatura dei fotoni
Capitolo 6: Ray casting
Capitolo 7: Riflessione speculare
Capitolo 8: Ottica geometrica
Capitolo 9: pipeline grafica
Capitolo 10: equazione di rendering
(II) Rispondere alle principali domande del pubblico sulla grafica con ray tracing.
(III) Esempi del mondo reale per l'uso della grafica ray tracing in molti campi.
A chi è rivolto questo libro
Professionisti, studenti universitari e laureati, appassionati, hobbisti e coloro che vuoi andare oltre le conoscenze o le informazioni di base per qualsiasi tipo di grafica di Ray Tracing.
Leggi altro di Fouad Sabry
Tecnologie Emergenti Nella Scienza Dei Materiali [Italian]
Correlato a Grafica di ray-tracing
Titoli di questa serie (100)
Gruppo congiunto di esperti fotografici: Sfruttare la potenza dei dati visivi con lo standard JPEG Valutazione: 0 su 5 stelle0 valutazioniVisione artificiale subacquea: Esplorando le profondità della visione artificiale sotto le onde Valutazione: 0 su 5 stelle0 valutazioniModello di aspetto del colore: Comprendere la percezione e la rappresentazione nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniVisione computerizzata: Esplorare le profondità della visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTrasformazione di Hough: Svelare la magia della trasformazione di Hough nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTrasformata di Hadamard: Svelare il potere della trasformazione Hadamard nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniIstogramma dell'immagine: Svelare intuizioni visive, esplorare le profondità degli istogrammi delle immagini nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniCompressione delle immagini: Tecniche efficienti per l'ottimizzazione dei dati visivi Valutazione: 0 su 5 stelle0 valutazioniMappatura dei toni: Mappatura dei toni: prospettive illuminanti nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniDiffusione anisotropa: Miglioramento dell'analisi delle immagini attraverso la diffusione anisotropa Valutazione: 0 su 5 stelle0 valutazioniRiduzione del rumore: Miglioramento della chiarezza, tecniche avanzate per la riduzione del rumore nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniFiltro adattivo: Migliorare la visione artificiale attraverso il filtraggio adattivo Valutazione: 0 su 5 stelle0 valutazioniTrasformata del radon: Svelare modelli nascosti nei dati visivi Valutazione: 0 su 5 stelle0 valutazioniIstogramma dei gradienti orientati: Svelare il regno visivo: esplorare l'istogramma dei gradienti orientati nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniOmografia: Omografia: trasformazioni nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniVisione stereoscopica del computer: Esplorare la percezione della profondità nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRilevamento dei bordi: Esplorare i confini nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniFunzione di corrispondenza dei colori: Comprendere la sensibilità spettrale nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniEqualizzazione dell'istogramma: Miglioramento del contrasto dell'immagine per una migliore percezione visiva Valutazione: 0 su 5 stelle0 valutazioniContorno attivo: Avanzamento della visione artificiale con tecniche di contorno attivo Valutazione: 0 su 5 stelle0 valutazioniRetinex: Svelare i segreti della visione computazionale con Retinex Valutazione: 0 su 5 stelle0 valutazioniSistema di gestione del colore: Ottimizzazione della percezione visiva negli ambienti digitali Valutazione: 0 su 5 stelle0 valutazioniRidipintura: Colmare le lacune nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTrasformazione affine: Sbloccare le prospettive visive: esplorare la trasformazione affine nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniCorrezione gamma: Migliorare la chiarezza visiva nella visione artificiale: la tecnica di correzione gamma Valutazione: 0 su 5 stelle0 valutazioniModello del sistema visivo umano: Comprendere la percezione e l'elaborazione Valutazione: 0 su 5 stelle0 valutazioniModello a colori: Comprendere lo spettro della visione artificiale: esplorare i modelli di colore Valutazione: 0 su 5 stelle0 valutazioniMetodo di impostazione del livello: Avanzamento della visione artificiale, esplorazione del metodo dell'impostazione dei livelli Valutazione: 0 su 5 stelle0 valutazioniBanca filtri: Approfondimenti sulle tecniche del banco di filtri di Computer Vision Valutazione: 0 su 5 stelle0 valutazioniProfilo colore: Esplorare la percezione visiva e l'analisi nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioni
Ebook correlati
Superficie procedurale: Esplorazione della generazione e dell'analisi delle texture nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRendering di grafica computerizzata: Esplorare il realismo visivo: approfondimenti sulla computer grafica Valutazione: 0 su 5 stelle0 valutazioniIlluminazione globale: Visione avanzata: approfondimenti sull'illuminazione globale Valutazione: 0 su 5 stelle0 valutazioniVisione stereoscopica del computer: Esplorare la percezione della profondità nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniNebbia a distanza: Esplorare la frontiera visiva: approfondimenti sulla nebbia a distanza della visione artificiale Valutazione: 0 su 5 stelle0 valutazioniFlusso ottico: Esplorazione di modelli visivi dinamici nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniModellazione e rendering basati su immagini: Esplorare il realismo visivo: tecniche di visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRendering volumetrico: Esplorare il realismo visivo nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRendering della scansione: Esplorare il realismo visivo attraverso le tecniche di rendering della scansione Valutazione: 0 su 5 stelle0 valutazioniComputer grafica della radiosità: Avanzamento della visualizzazione attraverso la radiosità nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniComputer grafica poligonale: Esplorando l'intersezione tra la computer grafica poligonale e la visione artificiale Valutazione: 0 su 5 stelle0 valutazioniStima del movimento: Progressi e applicazioni nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniComputer grafica di vertice: Esplorando l'intersezione tra la computer grafica di vertice e la visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRete di sensori visivi: Esplorare la potenza delle reti di sensori visivi nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniAlgoritmo di disegno di linee: Padroneggiare le tecniche per il rendering di immagini di precisione Valutazione: 0 su 5 stelle0 valutazioniModello di fotocamera stenopeica: Comprendere la prospettiva attraverso l'ottica computazionale Valutazione: 0 su 5 stelle0 valutazioniTexture Mapping: Esplorare la dimensionalità nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniMappatura dei rilievi: Bump Mapping: esplorazione della profondità nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniVoxel: Esplorare le profondità della visione artificiale con la tecnologia Voxel Valutazione: 0 su 5 stelle0 valutazioniSegmentazione delle immagini: Sbloccare insight grazie alla precisione dei pixel Valutazione: 0 su 5 stelle0 valutazioniCampo di movimento: Esplorando le dinamiche della visione artificiale: svelato il campo del movimento Valutazione: 0 su 5 stelle0 valutazioniElaborazione delle immagini piramidali: Esplorare le profondità dell'analisi visiva Valutazione: 0 su 5 stelle0 valutazioniGrafica raster digitale: Svelare la potenza della grafica raster digitale nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRimozione delle linee nascoste: Svelare l'invisibile: i segreti della visione artificiale Valutazione: 0 su 5 stelle0 valutazioniEditor di grafica vettoriale: Potenziare la creazione visiva con algoritmi avanzati Valutazione: 0 su 5 stelle0 valutazioniVisualizza la sintesi: Esplorare le prospettive nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniEditor di grafica raster: Trasformare le realtà visive: padroneggiare gli editor grafici raster nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniShader: Esplorare i regni visivi con Shader: un viaggio nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniClassificazione delle immagini contestuali: Comprendere i dati visivi per una classificazione efficace Valutazione: 0 su 5 stelle0 valutazioni
Intelligenza artificiale e semantica per voi
ANonniMus: Vecchi rivoluzionari contro giovani robot Valutazione: 0 su 5 stelle0 valutazioniSelf-Publishing del Futuro per Scrittori 2.0: Self-Publishing Facile Valutazione: 0 su 5 stelle0 valutazioniGuida Intelligenza Artificiale Valutazione: 0 su 5 stelle0 valutazioniIl Terzo Like Valutazione: 0 su 5 stelle0 valutazioni
Recensioni su Grafica di ray-tracing
0 valutazioni0 recensioni
Anteprima del libro
Grafica di ray-tracing - Fouad Sabry
Capitolo 1: Ray tracing (grafica)
Nella computer grafica 3D, il ray tracing è una tecnica per simulare il trasporto della luce che può essere applicata a un'ampia gamma di tecniche di rendering per la generazione di immagini digitali.
Le tecniche di rendering basate sul ray tracing, come il ray casting, il ray tracing ricorsivo, il ray tracing di distribuzione, la mappatura dei fotoni e il path tracing, sono spesso più lente e accurate dei metodi di rendering della linea di scansione.
Dal 2019, l'accelerazione hardware per il ray tracing in tempo reale è diventata uno standard sulle nuove schede grafiche commerciali e le API grafiche hanno seguito l'esempio, consentendo agli sviluppatori di utilizzare il ray-tracing ibrido e il rendering basato sulla rasterizzazione nei giochi e in altre applicazioni in tempo reale con un impatto minore sui tempi di rendering dei fotogrammi.
Il ray tracing è in grado di replicare una serie di fenomeni ottici. In effetti, il ray tracing può imitare qualsiasi onda fisica o fenomeno particellare con un movimento approssimativamente lineare.
Gli approcci di rendering basati sul ray tracing che campionano la luce su un dominio causano artefatti di rumore dell'immagine che possono essere mitigati tracciando un numero molto elevato di raggi o impiegando algoritmi di riduzione del rumore.
L'idea del ray tracing risale al 16° secolo, quando fu descritto da Albrecht Dürer, a cui si attribuisce il merito del suo sviluppo.
Dürer ha descritto diverse tecniche per proiettare scene 3D su un piano dell'immagine.
Alcuni di questi proiettano una certa geometria sulla posizione dell'immagine, come si fa attualmente con la rasterizzazione.
Altri definiscono la geometria visiva lungo una particolare trave, in modo simile al ray tracing.
Appel ha utilizzato il ray tracing per determinare la visibilità principale (determinando la superficie più vicina alla fotocamera in ogni punto dell'immagine), quindi ha tracciato i raggi secondari da ciascun punto oscurato alla sorgente luminosa per valutare se il punto era in ombra o meno.
Più tardi, nel 1971, Goldstein e Nagel (Mathematical Applications Group, Inc.) di MAGI
Il 1976 vide un altro primo caso di ray casting, Scott Roth realizzò un'animazione flip book nel corso di computer grafica del Caltech di Bob Sproull.
Le pagine scansionate vengono visualizzate a destra come video.
Il software del computer di Roth registrava un punto di bordo in una posizione di pixel se il raggio intersecava un piano di delimitazione diverso da quello dei suoi vicini.
Naturalmente, un raggio può attraversare numerosi piani nello spazio, tuttavia, solo il punto di superficie più vicino alla fotocamera era visibile.
I bordi sono frastagliati perché le capacità computazionali del DEC PDP-10 time-sharing consentivano solo una risoluzione grossolana.
Il terminale
era un display Tektronix per testo e grafica.
Attaccata al display c'era una stampante che stampava un'immagine del display su carta termica su un rotolo.
Roth ha ampliato la struttura, ha presentato il ray casting nel contesto della computer grafica e della modellazione solida, in seguito, ha pubblicato il suo lavoro mentre lavorava presso GM Research Labs.
1979, mentre lavorava come ingegnere presso i Bell Labs.
La tecnica di ray tracing profondamente ricorsiva di Whitted ha riformulato il rendering in funzione del trasporto della luce piuttosto che della determinazione della visibilità della superficie.
La sua pubblicazione ha stimolato una serie di ricerche future, tra cui il ray tracing distribuito e il path tracing imparziale, fornisce il quadro di equazioni di rendering che ha permesso alla grafica generata dal computer di essere realistica.
Decenni fa, l'illuminazione aggiuntiva veniva utilizzata per simulare l'illuminazione globale nei film utilizzando immagini generate al computer. Alla fine, il rendering basato sul ray tracing ha modificato questa situazione consentendo il trasporto della luce basato sulla fisica. Monster House (2006) e Cloudy with a Chance of Meatballs (2009) sono esempi di primi lungometraggi totalmente renderizzati utilizzando il path tracing (2009), il ray tracing ottico è una tecnica per generare immagini più fotorealistiche in ambienti di computer grafica 3D rispetto al ray casting o al rendering della linea di scansione. Funziona seguendo un percorso da un occhio fittizio attraverso ogni pixel su uno schermo virtuale e calcolando il colore dell'oggetto visto attraverso di esso.
Le scene in ray tracing sono descritte matematicamente da un programmatore o da un artista (normalmente utilizzando strumenti intermedi). Le scene possono anche includere dati provenienti da foto e modelli raccolti, come la fotografia digitale.
In genere, ogni raggio deve essere verificato per l'intersezione con un sottoinsieme degli oggetti della scena. Una volta scoperto l'oggetto più vicino, l'algoritmo stimerà la luce in arrivo nel punto di intersezione, controllerà le qualità del materiale dell'oggetto e integrerà queste informazioni per determinare il colore finale del pixel. Alcuni algoritmi di illuminazione e materiali riflettenti o traslucidi possono richiedere la rifusione di raggi aggiuntivi nella scena.
L'invio di raggi lontano dalla fotocamera, piuttosto che all'interno di essa (come fa la luce nella realtà), è di molti ordini di grandezza più efficiente. Poiché la stragrande maggioranza dei fasci di luce provenienti da una particolare sorgente luminosa non raggiunge la vista dell'osservatore, una simulazione in avanti
potrebbe sprecare una grande quantità di calcolo su percorsi luminosi che non vengono mai registrati.
Di conseguenza, la scorciatoia del ray tracing consiste nel presupporre che un particolare raggio intersechi il riquadro di visualizzazione. Il valore del pixel viene aggiornato quando il raggio raggiunge un numero massimo di riflessioni o una distanza specifica senza intersecare nulla.
Sulla base delle informazioni che abbiamo (nel calcolo usiamo la normalizzazione vettoriale e il prodotto incrociato):
{\displaystyle E\in \mathbb {R^{3}} } Posizione degli occhi
{\displaystyle T\in \mathbb {R^{3}} } Posizione di destinazione
{\displaystyle \theta \in [0,\pi ]} campo visivo - per gli esseri umani, possiamo presumere {\displaystyle \approx \pi /2{\text{ rad}}=90^{\circ }}
{\displaystyle m,k\in \mathbb {N} } Numero di pixel quadrati in direzione verticale e orizzontale della finestra
{\displaystyle i,j\in \mathbb {N} ,1\leq i\leq k\land 1\leq j\leq m}Numero di pixel effettivi
{\displaystyle {\vec {v}}\in \mathbb {R^{3}} } vettore verticale che indica dove si trova in alto e in basso, di solito {\displaystyle {\vec {v}}=[0,1,0]} (non visibile nell'immagine) - componente di rollio che determina la rotazione della finestra attorno al punto C (dove l'asse di rotazione è la sezione ET)
Viewport schema witch pixels, eye E and target T, viewport center CL'idea è quella di trovare la posizione del centro di ogni pixel della finestra P_{ij} che ci permette di trovare la linea che va dall'occhio E attraverso quel pixel e infine ottenere il raggio descritto dal punto e dal E vettore {\displaystyle {\vec {R}}_{ij}=P_{ij}-E} (o la sua normalizzazione {\displaystyle {\vec {r}}_{ij}} ).
Per prima cosa dobbiamo trovare le coordinate del pixel della finestra in basso a sinistra {\displaystyle P_{1m}} e trovare il pixel successivo facendo uno spostamento lungo le direzioni parallele alla finestra (vettori {\displaystyle {\vec {b}}_{n}} i {\displaystyle {\vec {v}}_{n}} ) moltiplicate per la dimensione del pixel.
Di seguito introduciamo formule che includono la distanza d tra l'occhio e la finestra.
Tuttavia, questo valore verrà ridotto durante la normalizzazione dei raggi {\displaystyle {\vec {r}}_{ij}} (quindi potresti anche accettarlo d=1 e rimuoverlo dai calcoli).
Pre-calcoli: troviamo e normalizziamo i vettori {\displaystyle {\vec {t}}} e i vettori {\displaystyle {\vec {b}},{\vec {v}}} paralleli alla finestra (tutti raffigurati nell'immagine sopra)
{\displaystyle {\vec {t}}=T-E,\qquad {\vec {b}}={\vec {t}}\times {\vec {v}}}{\displaystyle {\vec {t}}_{n}={\frac {\vec {t}}{||{\vec {t}}||}},\qquad {\vec {b}}_{n}={\frac {\vec {b}}{||{\vec {b}}||}},\qquad {\vec {v}}_{n}={\vec {t}}_{n}\times {\vec {b}}_{n}}Si noti che il centro della finestra {\displaystyle C=E+{\vec {t}}_{n}d} , quindi calcoliamo le dimensioni della finestra {\displaystyle h_{x},h_{y}} divise per 2 includendo il rapporto d'aspetto inverso {\displaystyle {\frac {m-1}{k-1}}}
{\displaystyle g_{x}={\frac {h_{x}}{2}}=d\tan {\frac {\theta }{2}},\qquad g_{y}={\frac {h_{y}}{2}}=g_{x}{\frac {m-1}{k-1}}}e poi calcoliamo i vettori di spostamento del pixel successivo {\displaystyle q_{x},q_{y}} lungo le direzioni parallele alla finestra ( {\displaystyle {\vec {b}},{\vec {v}}} ) e al centro del pixel in basso a sinistra {\displaystyle p_{1m}}
{\displaystyle {\vec {q}}_{x}={\frac {2g_{x}}{k-1}}{\vec {b}}_{n},\qquad {\vec {q}}_{y}={\frac {2g_{y}}{m-1}}{\vec {v}}_{n},\qquad {\vec {p}}_{1m}={\vec {t}}_{n}d-g_{x}{\vec {b}}_{n}-g_{y}{\vec {v}}_{n}}Calcoli: nota {\displaystyle P_{ij}=E+{\vec {p}}_{ij}} e raggio {\displaystyle {\vec {R}}_{ij}=P_{ij}-E={\vec {p}}_{ij}} so
{\displaystyle {\vec {p}}_{ij}={\vec {p}}_{1m}+{\vec {q}}_{x}(i-1)+{\vec {q}}_{y}(j-1)}{\displaystyle {\vec {r}}_{ij}={\frac {{\vec {R}}_{ij}}{||{\vec {R}}_{ij}||}}={\frac {{\vec {p}}_{ij}}{||{\vec {p}}_{ij}||}}}Questo progetto JavaScript ha valutato la formula di cui sopra (funziona nel browser).
In natura, una sorgente luminosa rilascia un raggio di luce che alla fine raggiunge una superficie che ne blocca il percorso. Questo raggio
può essere paragonato a un flusso di fotoni che scorre lungo lo stesso percorso. In un vuoto ideale, questo raggio sarà dritto (ignorando gli effetti relativistici). Questo raggio di luce può subire qualsiasi combinazione di assorbimento, riflessione, rifrazione e fluorescenza. Una superficie può assorbire una parte del raggio luminoso, provocando una riduzione dell'intensità della luce riflessa e/o rifratta. Inoltre, può riflettere tutto o una parte del raggio di luce in una o più direzioni. Se la superficie è trasparente o traslucida, rifrange una componente del fascio di luce assorbendo parte (o tutto) dello spettro (e possibilmente alterandone il colore). Raramente, una superficie può assorbire