in quale tempo deve farlo? | in quale tempo deve farlo
Accendi la TV. Avvia il tuo servizio di streaming preferito. Prendi una Coca. Una demo della più importante tecnologia visiva del nostro tempo è vicina come il divano del tuo salotto.
Spinto da un'esplosione della potenza di calcolo nell'ultimo decennio e mezzo, il tracciamento del percorso ha attraversato i media visivi.
Porta grandi effetti ai più grandi successi, getta sottili luci e ombre sui melodrammi più coinvolgenti e ha spinto l'arte dell'animazione a nuovi livelli.
Ne stanno arrivando altri.
Il tracciamento del percorso sta andando in tempo reale, scatenando interattivo, ambienti 3D fotorealistici pieni di luci e ombre dinamiche, riflessioni e rifrazioni.
Quindi cos'è il tracciamento del percorso? La grande idea alla base è seducentemente semplice, collegando gli innovatori nelle arti e nelle scienze nell'arco di mezzo millennio.
What’s the Difference Between Rasterization and Ray Tracing?
Primo, let’s define some terms, and how they’re used today to create interactive graphics — graphics that can react in real time to input from a user, such as in video games.
Il primo, rasterization, is a technique that produces an image as seen from a single viewpoint. It’s been at the heart of GPUs from the start. Modern NVIDIA GPUs can generate over 100 billion rasterized pixels per second. That’s made rasterization ideal for real-time graphics, like gaming.
Ray tracing is a more powerful technique than rasterization. Rather than being constrained to finding out what is visible from a single point, it can determine what is visible from many different points, in many different directions. Starting with the NVIDIA Turing architecture, Le GPU NVIDIA hanno fornito hardware RTX specializzato per accelerare questo difficile calcolo. Oggi, una singola GPU può tracciare miliardi di raggi al secondo.
Essere in grado di tracciare tutti quei raggi rende possibile simulare il modo in cui la luce si disperde nel mondo reale in modo molto più accurato di quanto sia possibile con la rasterizzazione. Tuttavia, dobbiamo ancora rispondere alle domande, come simuleremo la luce e come porteremo quella simulazione alla GPU?
Che cos'è il ray tracing? Basta seguire la corda
Per rispondere meglio a questa domanda, aiuta a capire come siamo arrivati qui.
David Luebke, Vicepresidente della ricerca grafica di NVIDIA, ama iniziare la storia nel XVI secolo con Albrecht Dürer — una delle figure più importanti del Rinascimento nordeuropeo — che usava corde e pesi per replicare un'immagine 3D su una superficie 2D.
Dürer ha fatto del lavoro della sua vita riunire la matematica classica e contemporanea con le arti, raggiungere scoperte in termini di espressività e realismo.
In 1525 con Trattato sulla misura, Dürer è stato il primo a descrivere l'idea del ray tracing. Seeing how Dürer described the idea is the easiest way to get your head around the concept.
Just think about how light illuminates the world we see around us.
Now imagine tracing those rays of light backward from the eye with a piece of string like the one Dürer used, to the objects that light interacts with. That’s ray tracing.
Ray Tracing for Computer Graphics
In 1969, more than 400 years after Dürer’s death, IBM’s Arthur Appel showed how the idea of ray tracing could be brought to computer graphics, applying it to computing visibility and shadows.
A decade later, Turner Whitted was the first to show how this idea could capture reflection, shadows and refraction, spiegando come il concetto apparentemente semplice potrebbe rendere possibile una computer grafica molto più sofisticata. I progressi furono rapidi negli anni successivi.
In 1984, Robert Cook della Lucasfilm, Thomas Porter e Loren Carpenter dettagliati come il ray tracing potrebbe incorporare molte tecniche cinematografiche comuni, incluso il motion blur, profondità di campo, ombre, traslucenza e riflessi sfocati - quello era, until then, irraggiungibile in computer grafica.
Two years later, Il professore di CalTech Jim Kajiya è croccante, foglio di sette pagine, "L'equazione di rendering,” ha collegato la grafica computerizzata con la fisica tramite il ray tracing e ha introdotto l'algoritmo di tracciamento del percorso, che rende possibile rappresentare con precisione il modo in cui la luce si diffonde in una scena.
Che cos'è il tracciamento del percorso?
Nello sviluppo del tracciamento del percorso, Kajiya si rivolse a un'improbabile ispirazione: lo studio del trasferimento di calore radiativo, o come il calore si diffonde in un ambiente. Le idee di quel campo lo hanno portato a presentare l'equazione di resa, che descrive come la luce passa attraverso l'aria e si disperde dalle superfici.
L'equazione di rendering è concisa, ma non facile da risolvere. Le scene di computer grafica sono complesse, con miliardi di triangoli non sono insoliti oggi. Non c'è modo di risolvere direttamente l'equazione di rendering, che ha portato alla seconda innovazione cruciale di Kajiya.
Kajiya ha dimostrato che le tecniche statistiche potrebbero essere utilizzate per risolvere l'equazione di rendering: anche se non è risolto direttamente, è possibile risolverlo lungo i percorsi dei singoli raggi. Se è risolto lungo il percorso di raggi sufficienti per approssimare accuratamente l'illuminazione nella scena, sono possibili immagini fotorealistiche.
E come viene risolta l'equazione di rendering lungo il percorso di un raggio? Tracciamento dei raggi.
Le tecniche statistiche applicate da Kajiya sono note come integrazione Monte Carlo e risalgono ai primi giorni dei computer negli anni '40. Lo sviluppo di algoritmi Monte Carlo migliorati per il tracciamento dei percorsi rimane ancora oggi un problema di ricerca aperto; I ricercatori NVIDIA sono in prima linea in questo settore, pubblicare regolarmente nuove tecniche che migliorano l'efficienza del tracciamento dei percorsi.
Mettendo insieme queste due idee - un'equazione basata sulla fisica per descrivere il modo in cui la luce si muove intorno a una scena - e l'uso della simulazione Monte Carlo per aiutare a scegliere un numero gestibile di percorsi per tornare a una sorgente luminosa, Kajiya ha delineato le tecniche fondamentali che sarebbero diventate lo standard per la generazione di immagini fotorealistiche generate al computer.
Il suo approccio ha trasformato un campo dominato da una varietà di tecniche di rendering disparate in uno che, poiché rispecchiava la fisica del modo in cui la luce si muoveva nel mondo reale, poteva semplificare, potenti algoritmi di lavoro che potrebbero essere applicati per riprodurre un gran numero di effetti visivi con incredibili livelli di realismo.
Path Tracing arriva al cinema
Negli anni successivi alla sua introduzione in 1987, il tracciamento del percorso era visto come una tecnica elegante - l'approccio più accurato conosciuto - ma era completamente poco pratico. Le immagini nel documento originale di Kajiya erano giuste 256 by 256 pixel, eppure hanno preso il sopravvento 7 ore per il rendering su un costoso mini-computer che era molto più potente dei computer a disposizione della maggior parte delle altre persone.
Ma con l'aumento della potenza di calcolo guidato dalla legge di Moore, che descriveva l'aumento esponenziale della potenza di calcolo guidato dai progressi che hanno permesso ai produttori di chip di raddoppiare il numero di transistor sui microprocessori ogni 18 mesi — la tecnica divenne sempre più pratica.
A cominciare da film come 1998 Vita da insetto, il ray tracing è stato utilizzato per migliorare le immagini generate al computer in sempre più film. E dentro 2006, il primo film interamente tracciato, Casa dei mostri, pubblico sbalordito. È stato renderizzato utilizzando il software Arnold sviluppato in collaborazione con Solid Angle SL (da allora acquisito da Autodesk) e Sony Pictures Imageworks.
Il film è stato un successo, incassando più di $140 million worldwide. E ha aperto gli occhi su cosa potrebbe fare una nuova generazione di animazione al computer. Man mano che diventava disponibile più potenza di calcolo, più film si sono affidati alla tecnica, producendo immagini spesso indistinguibili da quelle catturate da una macchina fotografica.
The problem: ci vogliono ancora ore per eseguire il rendering di una singola immagine e vaste raccolte di server, note come "render farm", sono in esecuzione continuamente per eseguire il rendering delle immagini per mesi al fine di realizzare un film completo. Portarlo alla grafica in tempo reale richiederebbe un salto straordinario.
Che aspetto ha nei giochi?
Per molti anni, l'idea del tracciamento dei percorsi nei giochi era impossibile da immaginare. Mentre molti sviluppatori di giochi avrebbero accettato di voler utilizzare il tracciamento del percorso se avesse le prestazioni necessarie per la grafica in tempo reale, la performance era così lontana dal tempo reale che il tracciamento del percorso sembrava irraggiungibile.
Tuttavia, poiché le GPU hanno continuato a diventare sempre più veloci, e ora con l'ampia disponibilità dell'hardware RTX, il tracciamento del percorso in tempo reale è in vista. Proprio come i film hanno iniziato a incorporare alcune tecniche di ray tracing prima di passare al path tracing, i giochi sono iniziati facendo funzionare il ray tracing in modo limitato.
In questo momento un numero crescente di giochi è parzialmente ray tracing. Combinano tecniche di rendering tradizionali basate sulla rasterizzazione con alcuni effetti di ray-tracing.
Quindi cosa significa percorso tracciato in questo contesto? Potrebbe significare un mix di tecniche. Gli sviluppatori di giochi potrebbero rasterizzare il raggio principale, e poi il percorso traccia l'illuminazione per la scena.
La rasterizzazione equivale a lanciare una serie di raggi da un singolo punto che si ferma alla prima cosa che colpiscono. Il ray tracing va oltre, lanciare raggi da molti punti in qualsiasi direzione. Il tracciamento del percorso simula la vera fisica della luce, che utilizza il ray tracing come componente di un più ampio sistema di simulazione della luce.
Ciò significherebbe che tutte le luci in una scena vengono campionate in modo stocastico, utilizzando Monte Carlo o altre tecniche, entrambe per l'illuminazione diretta, per illuminare oggetti o personaggi, e per l'illuminazione globale, per illuminare stanze o ambienti con luce indiretta.
Fare quello, piuttosto che tracciare un raggio indietro attraverso un rimbalzo, i raggi verrebbero tracciati su più rimbalzi, presumibilmente alla loro fonte di luce, proprio come ha delineato Kajiya.
Alcuni giochi lo stanno già facendo, e i risultati sono sbalorditivi.
Microsoft ha rilasciato un plug-in che mette in funzione il path tracing Minecraft.
Terremoto II, il classico sparatutto, spesso un sandbox per tecniche grafiche avanzate, può anche essere completamente tracciato, grazie a un nuovo plugin.
C'è chiaramente altro da fare. E gli sviluppatori di giochi dovranno sapere che i clienti hanno la potenza di calcolo di cui hanno bisogno per sperimentare il gioco con tracciamento del percorso.
Il gioco è il progetto di visual computing più impegnativo di tutti: che richiedono un'elevata qualità visiva e la velocità per interagire con i giocatori a contrazione rapida.
Aspettatevi che le tecniche sperimentate qui si riversino su ogni aspetto delle nostre vite digitali.
Qual è il prossimo?
Man mano che le GPU continuano a diventare più potenti, mettere in funzione il path tracing è il passo logico successivo.
Per esempio, armato di strumenti come Arnold di Autodesk, V-Ray da Gruppo del caos oppure Renderman della Pixar — e potenti GPU — designer di prodotti e architetti utilizzano il ray tracing per generare prototipi fotorealistici dei loro prodotti in pochi secondi, permettendo loro di collaborare meglio e saltare la costosa prototipazione.
Poiché le GPU offrono sempre più potenza di calcolo, i videogiochi sono la prossima frontiera per il ray tracing e il path tracing.
In 2018, NVIDIA ha annunciato NVIDIA RTX, una tecnologia di ray-tracing che porta in tempo reale, rendering di qualità cinematografica agli sviluppatori di giochi.
NVIDIA RTX, che include un motore di ray-tracing in esecuzione su GPU con architettura NVIDIA Ampere e Turing, supporta il ray-tracing attraverso una varietà di interfacce.
E NVIDIA ha collaborato con Microsoft per abilitare il pieno supporto RTX tramite il nuovo DirectX Raytracing di Microsoft (Campionato del mondo di rally FIA/WRC) API.
Da allora, NVIDIA ha continuato a sviluppare la tecnologia NVIDIA RTX, man mano che sempre più sviluppatori creano giochi che supportano il ray tracing in tempo reale.
Minecraft include anche il supporto per il tracciamento del percorso in tempo reale, girando il blocco, mondo immersivo in paesaggi immersivi avvolti da luci e ombre.
Grazie ad un hardware sempre più potente, e una proliferazione di strumenti software e tecnologie correlate, altro sta arrivando.
As a result, esperienze digitali: giochi, mondi virtuali e persino strumenti di collaborazione online - assumeranno le qualità cinematografiche di un blockbuster hollywoodiano.
Quindi non metterti troppo comodo. Quello che vedi dal divano del tuo soggiorno è solo una dimostrazione di ciò che accadrà nel mondo intorno a noi.