In che modo un computer esegue il rendering di un oggetto sullo schermo?


18

Tutta la grafica del computer è resa usando i poligoni? Ciò che intendo è che alcune geometrie dei computer sono matematicamente rappresentate sotto forma di equazioni (ad esempio, software CAD).

Il computer deve prima tessellare quelle geometrie prima di poter visualizzare correttamente la visualizzazione sullo schermo o ci sono altri metodi per ottenere l'immagine sullo schermo senza dover tessellare un oggetto?

Modifica: immagino più specificamente focalizzato sulla GPU. Come dose la GPU lo fa? che tipo di input richiede la dose, ovvero con quali formati di modello lavora la GPU? può usare direttamente una perfetta rappresentazione matematica o dosare tessellate il modello stesso prima di renderizzare effettivamente sullo schermo o dosare la GPU richiede un modello tassellato per cominciare.

Inoltre, ciò che intendo per tassellatura è il modo in cui un computer scompone una rappresentazione matematica di un oggetto in un'approssimazione superficiale di poligoni (quasi sempre triangoli). Più poligoni vengono utilizzati, più la superficie è vicina all'oggetto reale.


4
Una domanda così interessante!
r0ca,

Risposte:


2

Questo è il seguito del tuo commento sulla risposta di @ nik:

La stragrande maggioranza dei sistemi CAD utilizza poligoni (ben triangoli) per rendere i loro modelli.

Memorizzeranno i modelli in vari modi in base ai modelli CSG (Constructive Solid Geometry) o B-rep (Boundary Representation) , ad esempio, ma quando si tratta di visualizzarli questi saranno sfaccettati e i triangoli inviati alla GPU per disegnare .

Ogni sistema avrà la propria soluzione per suddividere il modello in triangoli.


7

Non sono sicuro a quale livello di curiosità stai ponendo questa domanda,
ma, in generale, ti rimando alla pagina Computer grafica di Wikipedia .

C'è anche un link Storia storica della computer grafica e animazione .
Puoi passare alla sezione di interesse dalla loro pagina dei contenuti.


Aggiornamento: mi chiedo se la tua domanda sia basata su concetti relativi a questo sito UnlimitedDetail .

La maggior parte della grafica 3D oggi si basa sul cosiddetto sistema poligonale; è un sistema che costruisce le cose da piccole forme piatte chiamate poligoni.

...

I tre attuali sistemi utilizzati nella grafica 3D sono ray tracing, poligoni e nuvola di punti / voxel, tutti hanno punti di forza e di debolezza. Poligoni corre veloce ma ha una geometria scadente, Ray-trace e voxel hanno una geometria perfetta ma funzionano molto lentamente.

eccetera...


+1 per menzionare Una storia critica di computer grafica e animazione. molto da leggere ma molto interessante ;-)
Diskilla

Il mio livello di curiosità di solito scende molto in profondità, fino alla matematica dietro l'idea (anche se non mi aspetto una risposta così dettagliata, voglio solo sapere in generale cosa utilizza una GPU). Per quanto riguarda la mia domanda, è specificamente correlata al software CAD e al modo in cui si convertono tra i loro modelli matematici e ciò che vedi sullo schermo (tramite rendering GPU). Perché? Sono solo curioso.
Faken

2

Se desideri davvero approfondire la meccanica della GPU e le tecniche di rendering, il seguente libro è ora disponibile online:

GPU Gems 3, Addison-Wesley Professional (12 agosto 2007)

GPU Gems 3 è a cura di Hubert Nguyen, Manager di Developer Education presso NVIDIA. Hubert è un ingegnere grafico che ha lavorato nel Team Demo NVIDIA prima di passare alla sua posizione attuale. Il suo lavoro è presentato sulle copertine di GPU Gems (Addison-Wesley, 2004) e GPU Gems 2.

GPU Gems 3 è una raccolta di esempi di programmazione GPU all'avanguardia. Si tratta di far funzionare l'elaborazione parallela dei dati. Le prime quattro sezioni si concentrano su applicazioni grafiche specifiche delle GPU nelle aree di geometria, illuminazione e ombre, rendering ed effetti di immagine. Gli argomenti della quinta e sesta sezione ampliano l'ambito fornendo esempi concreti di applicazioni non grafiche che ora possono essere affrontate con la tecnologia GPU parallela ai dati. Queste applicazioni sono diverse, dalla simulazione del corpo rigido alla simulazione del flusso di fluidi, dalla corrispondenza della firma del virus alla crittografia e decrittazione e dalla generazione di numeri casuali al calcolo del gaussiano.

Le edizioni precedenti sono anche online e sono ancora molto degne di lettura:

Gemme GPU: tecniche di programmazione, consigli e trucchi per la grafica in tempo reale, a cura di Randima Fernando, marzo 2004

GPU Gems 2: tecniche per la programmazione intensiva di grafica e calcolo, a cura di Matt Pharr, marzo 2005

Programmazione di vertici, geometria e pixel shader, seconda edizione, di Wolfgang Engel, Jack Hoxley, Ralf Kornmann, Niko Suni e Jason Zink, dicembre 2008

L'ultima è una bozza irregolare di un libro, ma estremamente preziosa in alcuni punti. Il capitolo sull'illuminazione di Jack Hoxley fornisce spiegazioni dettagliate sui vari modelli di illuminazione insieme al codice shader funzionante.


1

Rendering di qualcosa sempre significa che usi poligoni. Viene persino usato dagli artisti. Poligono significa figura piana. Per creare qualcosa di tridimensionale devi sempre prendere diversi poligoni e metterli insieme. Più figure piane usi, più dettagli puoi aggiungere alla tua figura tridimensionale. Le equazioni vengono utilizzate per calcolare cose come ad esempio la radianza dell'oggetto.

Per comprendere appieno questa procedura, è necessario leggere l' articolo di Wikipedia nik già menzionato .

edit .: Non sono più sicuro della mia interpretazione di cosa intendi per "tesselare un oggetto". Se possibile, potresti spiegarlo in dettaglio?


Ciò che intendo per tassellatura è che un oggetto solido viene scomposto in una serie di poligoni piatti (quasi sempre triangoli) che si avvicinano alla superficie di un oggetto. Maggiore è il numero di triangoli, più vicina è la rappresentazione alla superficie effettiva dell'oggetto.
Falso

1

Nel corso della storia dell'informatica diverse GPU hanno implementato le cose in diversi modi, tenendo conto della risoluzione, dell'accuratezza, della frequenza di aggiornamento e delle funzionalità dei monitor, nonché implementando nuove e più interessanti API nel tempo.

Ad esempio, alcune GPU forniscono interfacce di rappresentazione 3D con visione del mondo completa, mentre altre sono meno capaci.

Gli ASIC (e oltre) sono al centro di come le GPU fanno la loro magia oggi. La capacità di insinuare nel silicio complessità come macchine virtuali in esecuzione in una subroutine è ciò che fa accadere tutta la magia. Oltre alla tassellatura, c'è la mappatura della superficie, l'ombreggiatura e molto altro che sono tutti gestiti all'interno della logica GPU.

Spero che sia di aiuto!
-pbr

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.