Gioco eccellente Su PC puoi giocare all'ultimo Call of Mario: Deathduty Battleyard. Stai guardando un bellissimo monitor 4K ultra-wide screen, ammirando lo scenario mozzafiato e dettagli intricati. Ti sei mai chiesto come sono arrivate queste grafiche? Ti chiedi cosa sta facendo il tuo PC per fare questi?

Benvenuti nel nostro 101 sulla creazione di giochi 3D: una guida per principianti su come creare una struttura di base della bontà del gioco.

Ogni anno vengono rilasciati centinaia di nuovi giochi in tutto il mondo: alcuni progettati per telefoni cellulari, altri per console, altri per PC. I formati e i generi trattati sono altrettanto vasti, ma c'è un genere scoperto dagli sviluppatori di giochi probabilmente più di qualsiasi altro genere: il 3D. La prima discussione del primo e una rapida scansione delle discussioni Guinness dei primati database genera varie risposte. Avremmo potuto scegliere Knight Lore di Ultimate, che è stato rilasciato nel 1984, come un degno inizio, ma le immagini create in questo gioco erano strettamente 2D - nessuna parte delle informazioni utilizzate è veramente 3D.

Quindi, se vogliamo capire come il gioco 3D di oggi crea le sue immagini, abbiamo bisogno di un esempio iniziale diverso: Corsa vincente Fare qualsiasi cosa in 3 dimensioni fin dall'inizio è stato il primo del suo genere, utilizzando tecniche che forse non sono lontane un milione di miglia da ciò che sta accadendo ora. Ovviamente, qualsiasi gioco di età superiore ai 30 anni non sarà lo stesso di F1 2018 del Codemaster, ad esempio, ma lo schema di base per eseguirli tutti non è molto diverso.







In questo articolo, esamineremo il processo seguito da un gioco 3D per generare un'immagine di base da visualizzare su un monitor o una TV. Inizieremo con la conclusione e ci chiederemo: "Cosa sto guardando?"

Da lì, analizzeremo ogni passo compiuto per ottenere l'immagine che vediamo. Lungo il percorso, tratteremo software e istruzioni come vertici e pixel, trame e transizioni, buffer e ombreggiature. Vedremo anche dove la scheda grafica si adatta a tutti questi e perché è necessaria. Con questo 101 guarderai i tuoi giochi e il tuo PC sotto una nuova luce e apprezzerai questa grafica con un po 'più di ammirazione.




Dimensioni della cornice: pixel e colori

Cominciamo un gioco 3D, quindi abbiamo qualcosa con cui iniziare e probabilmente useremo la versione 2007 di Crytek per nessun motivo diverso dal gioco più prezioso di tutti i tempi. crisi. Nell'immagine sotto stiamo cercando l'immagine della telecamera del monitor che mostra il gioco.




Questa foto di solito telaioma cosa stiamo guardando esattamente? Bene, usando una fotocamera con obiettivo macro invece di uno screenshot del gioco, CSI: NOTIZIE TECNICHE e chiedi a qualcuno di migliorarlo!




Sfortunatamente, l'abbagliamento dello schermo e l'illuminazione dello sfondo anticipano i dettagli dell'immagine, ma se miglioriamo un po 'di più ...




Possiamo vedere che la cornice sul monitor è costituita da una griglia di singoli elementi colorati e, se guardiamo molto da vicino, i blocchi stessi sono costituiti da 3 piccoli bit. Uno su tre pixel (abbreviazione di elemento immagine) e la maggior parte dei monitor li dipinge utilizzando tre colori: rosso, verde e blu (aka RGB). Per ogni nuovo fotogramma visualizzato dal monitor, è necessario preparare e memorizzare un elenco di migliaia, se non milioni, di valori RGB in uno spazio di memoria accessibile al monitor. Questi tipi di blocchi di memoria vengono chiamati tamponi, naturalmente, al monitor frame buffer.

Questo è in realtà l'ultimo punto da cui siamo partiti, quindi ora dobbiamo andare all'inizio e seguire il processo per arrivarci. Nome gesso è spesso usato per descriverlo, ma la verità è che è un lungo elenco di fasi collegate ma distinte che sono abbastanza diverse l'una dall'altra in termini di ciò che sono. Pensa come fare lo chef e preparare un pasto degno di un ristorante stellato Michelin: il risultato è un piatto di cibo delizioso, ma c'è molto da fare prima di entrare. alcuni ingredienti di base.

Elementi costitutivi necessari: modelli e trame

Gli elementi costitutivi di base di qualsiasi gioco 3D sono le risorse visive che riempiranno il mondo da creare. Film, programmi TV, produzioni teatrali e simili hanno tutti bisogno di attori, costumi, oggetti di scena, sfondi, luci: l'elenco è piuttosto grande. I giochi 3D non sono diversi e qualsiasi cosa vista in un framework creato sarà progettata da artisti e modellisti. Per aiutare a visualizzare questo, andiamo alla vecchia scuola e diamo un'occhiata a un modello dall'identità di Quake II di Software:

Rilasciato 20 anni fa, Quake II è stato un potente tour tecnologico, come qualsiasi gioco 3D di vent'anni, anche se è giusto dire che i modelli sembravano un po 'a blocchi. Tuttavia, questo rende più facile capire perché è stata creata questa entità.

Nella prima immagine, possiamo vedere che l'amico grosso forma triangoli collegati, ognuno dei quali è chiamato vertici angolo o il picco per uno di questi. Ogni vertice funge da punto nello spazio, quindi ha almeno 3 numeri per descriverlo, ad es. coordinate x, y, z. Tuttavia, un gioco 3D ha bisogno di più di questo, e ogni vertice avrà un valore aggiuntivo, come il colore del vertice, la direzione verso cui è rivolto (sì, i punti non possono effettivamente guardare da nessuna parte ... basta rotolare con esso!), Quanto è luminoso, traslucido. se o no, ecc.

Un certo insieme di valori che i vertici hanno sempre, mappe di texture. Queste sono un'immagine degli "vestiti" che la modella dovrebbe indossare, ma poiché è un'immagine semplice, la mappa dovrebbe includere una vista per ogni possibile direzione in cui possiamo guardare il modello. Nel nostro esempio di Quake II, possiamo vedere che questo è un approccio piuttosto semplice: davanti, dietro e sui lati (braccia). Un gioco 3D moderno avrà effettivamente più mappe di texture per i modelli, ognuna ricca di dettagli; Alcune mappe non sembrano materiali o caratteristiche, ma forniscono invece informazioni su come la luce rimbalzerà sulla superficie. Ogni vertice conterrà un insieme di coordinate nella mappa della trama associata al modello in modo che possa essere "unito" al vertice - questo significa che se il vertice viene spostato, la trama si sposta con esso.

Quindi in un mondo renderizzato in 3D, tutto ciò che viene visto inizierà come punti d'angolo e una raccolta di mappe di texture. Sono raccolti in buffer di memoria collegati tra loro: a paraurti angolare contiene informazioni sugli angoli; uno buffer di directory ci mostra come gli angoli sono collegati per formare forme; uno tampone di saldatura contiene fazzoletti di memoria e porzioni riservate per un uso successivo nel processo di rendering; uno buffer dei comandi Elenco di istruzioni su cosa fare con tutti loro.

Questo crea la cornice necessaria che verrà utilizzata per creare la griglia finale di pixel colorati. Potrebbero esserci enormi quantità di dati per alcuni giochi perché sarebbe molto lento ricostruire i buffer per ogni nuovo frame. I giochi memorizzano tutte le informazioni necessarie per creare l'intero mondo potenzialmente visualizzabile, archiviarlo in buffer o per coprire un'ampia varietà di visualizzazioni e quindi aggiornarlo secondo necessità. Ad esempio, un gioco di corse come F1 2018 avrà tutto in una vasta collezione di paraurti, mentre un gioco open world come Skyrim di Bethesda sposterà i dati dentro e fuori dai paraurti mentre la telecamera si sposta in tutto il mondo.

Modifica della scena: fase di picco

Con tutte le informazioni visive a portata di mano, un gioco inizierà quindi l'elaborazione per la visualizzazione visiva. Per cominciare, la scena inizia in una posizione predefinita, tutti i modelli, le luci, ecc. Questo sarà il quadrato 'zero' - è il punto di partenza dei grafici e di solito non viene mostrato, ma semplicemente reso per mantenere le cose in corso. Per aiutare a mostrare cosa accade nella fase iniziale del processo di creazione, Sito Web di rendering in tempo reale. Apriamolo con un "gioco" molto semplice: un cuboide a terra.

Questa particolare forma contiene 8 vertici, ciascuno spiegato attraverso un elenco di numeri, e formano uno schema con 12 triangoli in mezzo. Anche un triangolo o un intero oggetto primitivo. Quando queste primitive vengono spostate, ruotate e ridimensionate, i numeri eseguono una serie di operazioni matematiche e si aggiornano di conseguenza.

Notare che i numeri in punti del modello non cambiano, solo i valori che indicano dove si trova il mondo. L'inclusione di matematica pertinente va oltre lo scopo di questo 101, ma la parte importante di questo processo è portare tutto dove dovrebbe essere prima. Allora è il momento per una colorazione.

Usiamo un modello diverso con più di 10 volte il numero di angoli del cuboide precedente. Il tipo più elementare di resa cromatica prende il colore di ciascun vertice e quindi calcola come cambia la superficie superficiale tra di loro; è noto come interpolasyon.

Avere più angoli in un modello non solo ha una presenza più realistica, ma offre anche risultati migliori con l'interpolazione del colore.

In questa fase della sequenza di rendering, l'effetto delle luci sulla scena può essere studiato in dettaglio; Ad esempio, si può introdurre come i materiali del modello riflettono la luce. Tali calcoli devono prendere in considerazione la posizione e la direzione della telecamera che guarda il mondo, nonché la posizione e la direzione delle luci.

Ci sono un certo numero di diverse tecniche matematiche che possono essere utilizzate qui; alcuni sono semplici, altri molto complessi. Nell'immagine sopra possiamo vedere che il processo a destra dà risultati più belli e più realistici, ma non a caso, richiede più tempo per funzionare.

A questo punto, vale la pena notare che stiamo guardando oggetti con pochi punti d'angolo rispetto all'ultimo gioco 3D. Torna un po 'indietro in questo articolo e guarda attentamente l'immagine di Crysis: solo in quella scena ci sono più di un milione di triangoli. Possiamo capire visivamente quanti triangoli vengono spinti in un gioco moderno. La Valle di Unigine a confronto (Scarica).

Ogni oggetto in questa immagine è modellato da vertici collegati, quindi creano primitive costituite da triangoli. Il confronto ci consente di eseguire una modalità wireframe che consente al programma di rendere i bordi di ogni triangolo con una linea bianca brillante.

Alberi, piante, rocce, terreno, montagne: sono tutti costituiti da triangoli, ciascuno calcolato per posizione, direzione e colore, tenendo conto della posizione della fonte di luce e della posizione e direzione della telecamera. Qualsiasi modifica apportata agli angoli deve essere reinserita nel gioco in modo che sappia dove si trova tutto per creare il fotogramma successivo; questo viene fatto aggiornando il vertex buffer.

Sorprendentemente, questa non è la parte difficile del processo di costruzione e, con l'hardware giusto, tutto finisce in appena un millesimo di secondo! Alla fase successiva.

Perdere una dimensione: rasterizzazione

Una volta che tutti gli angoli sono stati elaborati e la nostra scena 3D è finita dove dovrebbe essere tutto, il rendering passa a una fase cruciale. Finora, il gioco è stato davvero tridimensionale, ma non il fotogramma finale, il che significa che è necessario apportare una serie di modifiche per trasformare il mondo visualizzato da uno spazio 3D contenente migliaia di punti collegati in una tela 2D di singoli pixel colorati. . Per la maggior parte dei giochi, questo processo prevede almeno due passaggi: proiezione dell'area dello schermo ve pixelazione.

Utilizzando di nuovo lo strumento di rendering Web, possiamo forzarlo a mostrare come il volume del mondo viene inizialmente trasformato in un'immagine piatta. La posizione della telecamera che guarda la scena 3D è all'estrema sinistra; linee che si estendono oltre questo punto, tronco (come una specie di piramide) e tutto ciò che è in tronco potrebbe potenzialmente apparire nel fotogramma finale. Una stradina per Frustum Visualizza, - questo è in realtà ciò che mostrerà il monitor, e un'intera pila di matematica viene utilizzata per proiettare tutto nel tronco nel campo visivo dalla prospettiva della telecamera.

Sebbene la grafica nella finestra appaia 2D, i dati all'interno sono ancora 3D e queste informazioni vengono quindi utilizzate per determinare quali primitive saranno visibili o sovrapposte. Può essere sorprendentemente difficile farlo perché un primitivo può proiettare un'ombra che è visibile nel gioco anche se non può essere primitiva. Si chiama abolizione dei primitivi abbattimento e può fare una differenza significativa nella velocità di rendering dell'intero fotogramma. Dopo aver fatto tutto questo: ordinare primitive visibili e invisibili, raggruppare triangoli fuori dal tronco, ecc. - La fase finale del 3D si chiude e il fotogramma diventa completamente 2D tramite la rasterizzazione.

L'immagine sopra mostra un esempio molto semplice di un framework contenente una primitiva. La griglia di pixel della cornice viene confrontata con i bordi della forma sottostante e, dove si sovrappongono, viene contrassegnato un pixel per il rendering. Il risultato nell'esempio mostrato non è molto simile al triangolo originale, ma non stiamo usando abbastanza pixel. Ciò ha provocato il seguente problema: sovrapposizione, sebbene ci siano molti modi per affrontarlo. Ecco perchè soluzione Ha un enorme impatto sull'aspetto di un gioco (il numero totale di pixel utilizzati nella cornice): i pixel non solo rappresentano meglio la forma delle primitive, ma riducono anche l'effetto dell'alias indesiderato.

Quando questa parte della sequenza di rendering è completa, dipende da quella più grande: il colore finale di tutti i pixel nel fotogramma.

Porta le luci: fase pixel

Ora arriviamo al più difficile di tutti i passaggi della catena di rendering. Anni fa, non era altro che i vestiti nel modello (noti anche come trame) erano avvolti intorno agli oggetti nel mondo usando le informazioni in pixel (inizialmente dagli angoli). Il problema qui è che mentre le trame e la cornice sono 2D, il mondo a cui sono attaccate viene piegato, spostato e rimodellato nella fase superiore. Tuttavia, viene utilizzata più matematica per spiegare questo, sebbene i risultati possano creare alcuni strani problemi.

In questa immagine, una semplice mappa della trama a scacchiera viene applicata a una superficie piana che si estende in lontananza. Il risultato è un pasticcio stridente con il soprannome che ricresce la sua brutta testa. La soluzione include versioni più piccole di mappe di texture ( Corrispondenza), uso ripetuto dei dati di questi tessuti ( filtrazione), e persino Di Più matematica, mettendo tutto insieme. L'effetto di questo è abbastanza ovvio:

Questo era un compito davvero difficile per qualsiasi gioco, ma non lo è più perché l'uso liberale di altri effetti visivi come riflessi e ombre significa che il rendering delle trame diventa una parte relativamente piccola del pixel. fase di lavorazione. La riproduzione di giochi a risoluzioni più elevate crea un carico di lavoro maggiore nelle fasi di rasterizzazione e pixel del processo di rendering, ma ha un impatto relativamente ridotto durante la fase di picco. Sebbene la colorazione iniziale venga eseguita nella fase di picco a causa delle luci, qui è possibile utilizzare anche effetti di luce più luminosi.

Nell'immagine sopra, non possiamo più vedere facilmente i cambiamenti di colore tra i triangoli, dandoci l'impressione che si tratti di un oggetto liscio e senza cuciture. In questo particolare esempio, la sfera consiste effettivamente dello stesso numero di triangoli che vediamo. globo verde prima tuttavia, la routine di colorazione dei pixel dà l'impressione che abbia molti più triangoli.

In molti giochi, la fase pixel deve essere eseguita più volte. Ad esempio, uno specchio o una superficie di un lago che riflette la terra, come si vede dalla telecamera, deve essere stata lavorata affinché la terra inizi. Nome di ogni transizione passaggio e un fotogramma può facilmente contenere 4 o più transizioni per produrre l'immagine finale.

A volte, anche il palco della collina deve essere ridisegnato per ridisegnare il mondo da una prospettiva diversa e utilizzare quella vista come parte della scena mostrata dal giocatore. Per questo obiettivi stabiliti - buffer che fungono da repository finale del frame ma possono essere usati come texture in un altro passaggio.

Continua a leggere per comprendere meglio la potenziale complessità della fase pixel Analisi del telaio di Adrian Courrèges e in questo gioco rimarrai stupito dagli incredibili passaggi necessari per realizzare un singolo fotogramma.

Tutto questo lavoro sul frame deve essere salvato in un buffer come risultato finito o come archivio temporaneo, e in generale un gioco avrà almeno due buffer in movimento per la visualizzazione finale: uno "funzionerà" e l'altro attenderà che il monitor acceda allo schermo o in fase di visualizzazione. Deve sempre esserci un frame buffer da creare, quindi quando sono tutti pieni, è necessario eseguire un'azione per spostare le cose e avviare un nuovo buffer. L'ultima parte nella firma di un frame è un semplice comando (es. a disposizione) e tuttavia, gli ultimi frame buffer vengono modificati, il monitor riceve l'ultimo frame renderizzato e può essere avviato il frame successivo.

In questa immagine, da Ubisoft Assassin's Creed Odysseystiamo esaminando il contenuto di un frame buffer finito. Pensalo come un foglio di calcolo con righe e colonne che non contengono altro che numeri. Questi valori vengono inviati al monitor o alla TV come segnale elettrico e il colore dei pixel dello schermo viene modificato nei valori richiesti. CSI: NOTIZIE TECNICHE Perché non possiamo farlo con i nostri occhi, vediamo un'immagine piatta e continua, ma il nostro cervello profondità - così 3D. È una struttura di bontà del gioco, ma con così tante cose dietro le quinte (scusate il gioco di parole), vale la pena dare un'occhiata a come i programmatori gestiscono tutto.

Gestione del processo: API e istruzioni

Capire come un gioco si esibirà e gestirà tutti questi esercizi (matematica, angoli, trame, luci, paraurti, chiamalo ...) è un compito immane. Fortunatamente, c'è un aiuto sotto forma di cosa dire Interfaccia di programmazione applicazioni o API in breve.

Le API di compilazione riducono la complessità complessiva fornendo librerie di strutture, regole e codice che consentono ai programmatori di utilizzare istruzioni semplificate indipendentemente dall'hardware coinvolto. Scegli qualsiasi gioco 3D uscito negli ultimi 3 anni per PC e verrà creato utilizzando una delle tre famose API: Direct3D, OpenGL o Vulkan. Ce ne sono altri, specialmente nella scena mobile, ma ci atterremo a quelli per questo articolo.

Sebbene ci siano differenze in termini di istruzioni e istruzioni operative (ad esempio un blocco di codice per manipolare i pixel in DirectX, pixel shader; Vulcano shader parziale), il risultato finale del frame creato non dovrebbe essere diverso o più diverso.

Ci sarà una differenza in cui tutto l'hardware utilizzato per eseguire il rendering verrà giù. Questo perché le istruzioni fornite utilizzando l'API per eseguire l'hardware devono essere tradotte: questo viene gestito dai driver del dispositivo e i produttori di hardware devono dedicare molte risorse e tempo per garantire che i driver eseguano la conversione nel modo più rapido e preciso possibile. possibile.

Usiamo una versione beta precedente del gioco 2014 di Croteam Principio di Talos Per illustrare questo, poiché supporta le 3 API che abbiamo menzionato. Per massimizzare le differenze che a volte la combinazione di driver e interfaccia può produrre, abbiamo eseguito il benchmark integrato standard con una risoluzione di 1080p e le impostazioni visive massime. Il computer utilizzato veniva eseguito alle ore predefinite e aveva un Intel Core i7-9700K, Nvidia Titan X (Pascal) e 32 GB di RAM DDR4.

  • DirectX 9 = media 188,4 fps
  • DirectX 11 = media 202,3 fps
  • OpenGL = media 87,9 fps
  • Vulkan = media 189,4 fps

Un'analisi completa delle inferenze alla base di questi numeri non rientra nell'ambito di questo articolo e certamente non significa che un'API sia "migliore" di un'altra (questa è una versione beta, ricorda), quindi la programmazione per API diverse presenta varie sfide ed è attualmente sottolinea che ci sarà sempre qualche cambiamento nelle prestazioni. In generale, gli sviluppatori di giochi sceglieranno l'API con cui lavorano di più e ottimizzeranno il loro codice su questa base. A volte la parola il motore Viene utilizzato per descrivere il codice di rendering, ma tecnicamente un motore è il pacchetto completo che gestisce tutti gli aspetti di un gioco, non solo la sua grafica.

Creare un programma completo da zero per creare giochi 3D non è una cosa semplice, quindi molti giochi oggi concedono in licenza sistemi completi da altri sviluppatori (es. Unreal Engine); Puoi avere un'idea della scala visualizzando il motore open source per. id Software Earthquake e sfoglia il file gl_draw.c - questo singolo elemento contiene le istruzioni sulle varie build eseguite nel gioco e rappresenta solo una piccola parte dell'intero motore. Il terremoto ha più di 20 anni e tutto il gioco (inclusi tutti gli elementi, i suoni, la musica, ecc.) ha una dimensione di 55 MB; a differenza di Ubisoft Far Cry 5 quantità solo shader utilizzati dal gioco su un file da 62 MB.

Il tempo è tutto: utilizzare l'hardware giusto

Tutto ciò che abbiamo descritto finora può essere calcolato ed elaborato dalla CPU di qualsiasi sistema informatico; i moderni processori x86-64 supportano facilmente tutta la matematica necessaria e ci sono parti dedicate per queste cose. Tuttavia, svolgere questo lavoro per creare un framework richiede molti calcoli ripetitivi e una quantità significativa di elaborazione parallela. Le CPU non sono progettate per questo perché sono troppo generiche in base alla progettazione richiesta. Ovviamente vengono chiamati chip speciali per questo tipo di lavoro GPU'lar (unità di elaborazione grafica) e matematica come DirectX, OpenGL e Vulkan sono costruite per fare i calcoli necessari in modo molto veloce e in gran parte parallelo.

Un modo per dimostrarlo è utilizzare un benchmark che ci consenta di creare un frame utilizzando una CPU e quindi utilizzare hardware personalizzato. Useremo V-beam ADVANCED di Chaos Group; Questo strumento in realtà esegue il ray tracing piuttosto che il rendering che stiamo esaminando in questo articolo, ma la maggior parte degli inceppamenti del numero richiede aspetti hardware simili.

Per capire la differenza tra cosa può fare una CPU e cosa può fare l'hardware giusto e appositamente progettato, abbiamo eseguito il confronto GPU V-ray in 3 modalità: solo CPU, solo GPU e poi CPU + GPU. I risultati sono abbastanza diversi:

  • Solo test CPU = 53 matematica
  • Solo test GPU = 251 matematica
  • CPU + GPU testi = 299 mpath

Poiché una differenza di output 5x non è banale, possiamo ignorare le unità di misura in questo confronto. Ma questo non è un test molto simile a un gioco, quindi proviamo qualcos'altro e andiamo a qualche vecchia scuola. 3DMark03 di Futuremark. Applicando il semplice test Wings of Fury, possiamo forzare a fare tutti gli shader d'angolo (cioè tutte le routine per spostare e creare triangoli di colore) usando la CPU.

Il risultato non dovrebbe davvero sorprendere, ma è comunque molto più pronunciato di quello che abbiamo visto nel test V-ray:

  • Shader di picco della CPU = 77 fps in media
  • Angoli shader GPU = media 1580 fps

Mentre la CPU eseguiva tutti i calcoli dei vertici, ha impiegato una media di 13 millisecondi per visualizzare e visualizzare ogni fotogramma; Spingere quella matematica alla GPU riduce questo tempo a 0,6 millisecondi. In altre parole, era 20 volte più veloce.

Se proviamo il test più complesso a confronto, Madre Natura, la differenza è ancora più evidente. Con gli shader di picco renderizzati dalla CPU, il risultato medio è stato di 3,1 fps! Portate la GPU e il frame rate medio sale a 1388 fps: circa 450 volte più veloce. Si noti che ora 3DMark03 ha 16 anni e il test gestisce solo gli angoli della CPU: la rasterizzazione e la fase dei pixel vengono ancora eseguite tramite la GPU. E se fosse moderno e tutto fosse fatto con il software?

Proviamo Valle Unigine ancora una volta lo strumento di benchmarking - relativamente nuovo, con una grafica molto simile a quella vista in giochi come Far Cry 5 di Ubisoft; Oltre al bus della GPU DirectX 11 standard, fornisce anche un renderer completo basato su software. I risultati non richiedono molte analisi, ma l'esecuzione della versione di qualità più bassa del test DirectX 11 sulla GPU ha registrato una media di 196 frame al secondo. Versione software? A parte alcuni arresti anomali, il potente computer di prova consuma una media di 0,1 fotogrammi al secondo, quasi duemila volte più lento.

La ragione di tale differenza sta nella forma della matematica e dei dati utilizzati dal rendering 3D. In una CPU, unità in virgola mobile (FPU) eseguono i calcoli all'interno di ciascun core; Il modello i7-9700K del PC di prova ha 8 core con due FPU ciascuno. Sebbene le unità di Titan X abbiano un design diverso, entrambe possono eseguire la stessa matematica di base nello stesso formato di dati. Questa particolare GPU ha più di 3500 unità per effettuare un calcolo comparabile, e sebbene l'orologio non sia mostrato da nessuna parte vicino alla stessa posizione della CPU (1,5 GHz contro 4,7 GHz), la GPU supera il processore centrale per il numero di unità trasparenti.

Sebbene Titan X non sia una scheda grafica generica, anche un modello economico supera qualsiasi CPU, quindi tutti i giochi 3D e le API sono progettati per hardware dedicato e dedicato. Sentiti libero di scaricare V-ray, 3DMark o qualsiasi benchmark Unigine e testare il tuo sistema: pubblica i risultati sul forum in modo da poter vedere quanto sono buone le GPU per il rendering della grafica nei giochi.

Alcune ultime parole sulla nostra pagina 101

Questo è stato un breve studio di come viene reso un quadrato in un gioco 3D, da punti nello spazio a un pixel di colore su un monitor.

Al suo livello più elementare, l'intero processo non è altro che lavorare con i numeri, perché tutti i computer lo fanno comunque. Tuttavia, questo articolo lascia molto da concentrare sulle basi (probabilmente andremo avanti con immersioni più approfondite su come viene realizzata la grafica computerizzata in seguito). Non abbiamo incluso nessuna delle matematiche reali utilizzate come l'algebra lineare euclidea, la trigonometria e il calcolo differenziale eseguiti dalla radice e dai pixel shader; Abbiamo spiegato come le texture vengono elaborate attraverso il campionamento statistico e abbiamo messo da parte grandi effetti visivi come l'occlusione ambientale dello spazio dello schermo, la riduzione del rumore del ray trace, la visualizzazione ad alta gamma dinamica o l'anti-aliasing temporaneo.

Ma quando lanci il prossimo Call of Mario: Deathduty Battleyard, non solo vedrai la grafica con un nuovo senso di meraviglia, ma avrai voglia di saperne di più.