Perché la grafica dei giochi non è bella come i film animati?


60

Ricordo di aver visto il trailer pre-renderizzato di Tomb Raider e di aver desiderato che quella grafica potesse essere nel gioco stesso.

Perché c'è una differenza così grande tra il trailer e il gioco reale? Capisco che il gioco è un concetto completamente diverso, ha una pipeline diversa, deve passare attraverso diversi tipi di interazioni con i giocatori, ecc. Voglio sapere di cosa si tratta nei giochi che li rendono così difficili rispetto ai film animati.

Finora so che creare un gioco e un film d'animazione condividono un carico di lavoro di base, ad es. Creare modelli 3d, renderli (solo in-game accade dal vivo). I filmati animati vengono riprodotti a lungo e vediamo solo scene pre-renderizzate. Questo è tutto ciò che so, quindi spero che risponderai da quella prospettiva!

Che dire del rendering di film animati per ore e ore li rende così belli mentre il rendering live in-game è meno bello (da un punto di vista generale)?


1
Non vedo davvero come la risposta accettata soddisfi davvero i punti della tua domanda. Puoi lasciare un commento qui come un riassunto di ciò che hai capito da esso, cioè quali notizie ti hanno portato in modo che ora capisci il problema che, prima, non hai capito?
Bogdan Alexandru,

4
Non sono sicuro di cosa sei confuso. La domanda è il titolo; il post accettato risponde a questa domanda.
jhocking

2
In realtà ho capito l'80% dalla risposta. Il resto ha coperto il 20%, in particolare ho imparato molto dalla risposta di @ Vladimir (vedi sotto). Alcune delle risposte hanno anche discusso di cose a cui non avevo pensato, ad esempio aggiungendo dettagli dopo il rendering. E per rispondere alla tua domanda, ho selezionato la risposta perché penso che abbia portato un livello più profondo di comprensione (non solo ha menzionato i punti, ma gli algoritmi / i concetti che lavorano dietro di essa). E a quel punto ho finito di leggere questo, anche le altre risposte erano incredibili! È stato difficile scegliere quale sia il migliore, ma sembra che anche a quello piaccia! Li segnerei tutti!
cowboysaif,

Forse perché gli sviluppatori di giochi non hanno interesse a spendere $ 50.000.000 + in effetti - qualcosa che i produttori cinematografici fanno abitualmente ai giorni nostri.
Pieter Geerkens,

Risposte:


109

Hai già menzionato uno dei punti centrali: il tempo .

Nel processo dietro il rendering di un'animazione ad alta fedeltà, vengono utilizzati più approcci e algoritmi diversi (tutti generalmente combinati con il termine "Illuminazione globale" ), con Ray-Tracing come uno dei più comuni (altri includono ad esempio Radiosity e Occlusione ambientale ).

Il Ray-Tracing implica la simulazione di un numero (solitamente elevato) di raggi di luce che attraversano la scena e il calcolo dei loro percorsi, dei loro riflessi e rifrazioni quando colpiscono oggetti con materiali diversi. Materiali diversi in cambio hanno quindi proprietà fisiche diverse che provocano reazioni specifiche per i raggi (la quantità di luce che rimbalza da un oggetto, ad esempio, è maggiore per un oggetto lucido rispetto a uno lucido).

Un altro punto è la fisica : simulare migliaia di ceppi di capelli in modo fisicamente corretto richiede tempo. Questo è il motivo per cui nei giochi più vecchi, i peli sono spesso approssimati con una maglia molto ruvida che viene poi strutturata per dare l'impressione di capelli, forse con alcuni oggetti in movimento aggiuntivi per renderlo un po 'più realistico.

Da considerare anche: memoria e larghezza di banda . Maggiore è la qualità di una trama applicata a un oggetto in una scena, maggiore è la memoria necessaria per caricarla e utilizzarla in un gioco. Ma non solo il sistema deve disporre di memoria sufficiente per contenere i dati, ma questi dati devono anche essere trasferiti attorno a quelli che consumano la larghezza di banda disponibile. Poiché la memoria e la larghezza di banda sono limitate, esiste un massimo di ciò che può essere raggiunto.

I giochi spesso imbrogliano un po 'solo usando le trame ad alta risoluzione per oggetti vicini e usano immagini a risoluzione più bassa per gli oggetti lontani (termine: MipMapping ) riducendo così la larghezza di banda necessaria poiché è necessario recuperare meno texel che a loro volta aumenta le prestazioni (vedi la sezione MipMapping nella Guida alla programmazione OpenGLES di Apple).

Allo stesso modo, i giochi spesso usano maglie diverse per gli oggetti a seconda di quanto sono lontani con oggetti molto lontani che sono meno dettagliati (termine: LoD = Livello di dettaglio ).

Conclusione: nella grafica in tempo reale (come giochi e simulazioni), questo processo di rendering dettagliato e complesso ovviamente non funzionerà per produrre scene fluide / fluide. Per ottenere quell'effetto fluido di animazione / movimento per l'occhio umano sono necessari almeno 20 fotogrammi renderizzati al secondo. D'altra parte, il rendering di un singolo fotogramma (!) In un film di animazione può facilmente richiedere da poche ore a più giorni a seconda di molti fattori come il numero di raggi usati in Ray-Tracing o il numero di campioni per Ambient Occlusione (vedere queste pagine Pixar 1 / Pixar pagina 2 per schermate di 16 contro 256 campioni) e la risoluzione del film desiderata (più pixel = più informazioni da calcolare). Vedi anche questo articolosul processo che sta dietro il film d' animazione della Monsters University della Pixar , fornendo alcuni spunti interessanti e menzionando anche 29 ore di rendering per fotogramma.

In generale: maggiore è la fedeltà / realismo da raggiungere, maggiore è il numero di iterazioni / rimbalzi / campioni che di solito richiedono più risorse (tempo e / o potenza di calcolo / memoria). Per visualizzare la differenza, vedere il rendering risultante in base al numero di rimbalzi per il calcolo della rifrazione in questo esempio: Diamond Bounces from Keyshot

Ma, naturalmente, la qualità nelle applicazioni in tempo reale aumenta continuamente per due motivi:

  1. Hardware più potente: man mano che i computer (di gioco) migliorano (= maggiore potenza di calcolo [parallela], maggiore trasmissione di dati tra i componenti del computer, memoria più veloce e più veloce, ecc.), Aumenta anche la fedeltà visiva, poiché in realtà più calcoli richiedono molto tempo diventare fattibile in un sistema in tempo reale.
  2. Metodi / formule più intelligenti sono sviluppati e implementati in grado di creare effetti piuttosto fotorealistici senza bisogno di raytracing. Ciò comporta spesso approssimazioni e talvolta dati precalcolati. Qualche esempio:


4
@cowboysaif no non puoi farlo su GPU "così com'è". Dovresti ottenere HW specializzato. Tuttavia, ci sono tentativi di eseguire il raytracing in tempo reale utilizzando CUDA o tecnologia simile.
Wondra,

4
Esistono molte altre tecniche oltre al raytracing utilizzato nel rendering offline, quando si realizzano filmati di qualità professionale. Ma come dici tu, usano costose tecniche di rendering, illuminazione e ombreggiatura che semplicemente non sono pratiche per il rendering in tempo reale.
MrCranky,

40
Questa risposta spiega perché l'animazione pre-renderizzata impiega molto più tempo ma non dà davvero un senso alla scala. La differenza è enorme ! Un gioco deve eseguire il rendering di un fotogramma in meno di 1/30 di secondo, mentre i film richiedono abitualmente più giorni per eseguire il rendering di ciascun fotogramma.
jhocking

9
"Days" è certamente la fascia più alta della scala temporale, ma sì i film a volte impiegano più di 1 giorno per il rendering di un singolo fotogramma (fare riferimento qui per esempio venturebeat.com/2013/04/24/… ) E anche in media i tempi di rendering sono ancora come mezza giornata per fotogramma, che è ancora più lungo di quanto un gioco debba eseguire il rendering. Il motivo per cui l'intero film non impiega un decennio per il rendering è che hanno una render farm, ad es. rendering di centinaia di macchine contemporaneamente.
jhocking

7
Alcuni fatti: il raytracing è usato ovunque, non è assolutamente una tecnica di nicchia. VRay è solo CPU. VRayRT è solo GPU. La GPU non è adatta alla produzione perché le scene in genere richiedono molti GB di RAM e non si adattano alla GPU (ma a volte aiuta). I nostri scatti richiedono 1-2 ore / frame su CPU di fascia alta e non è così lungo. JackAidley ha completamente torto.
Calvin1602,

44

Oltre al fattore tempo, vale la pena notare che in un film, l'artista ha il controllo completo su ciò che lo spettatore farà e non guarderà.

Nella tua tipica scena cinematografica, la telecamera non trascorrerà molto tempo puntato verso il soffitto, o puntato in un angolo buio della stanza, o puntato sulla caviglia di qualcuno, quindi il poligono e il budget delle trame per quegli elementi saranno abbastanza bassi.

Se l'intera scena si svolge da un punto di vista, il set virtuale (come un vero set cinematografico) non deve includere le parti che si trovano dietro la telecamera. Nella maggior parte dei giochi, il giocatore è libero di guardare ovunque in qualsiasi momento. Ciò significa che il budget di qualità può essere focalizzato su ciò che è effettivamente visto. (Alcuni giochi in terza persona, ad esempio la serie God Of War, utilizzano una videocamera limitata; i loro effetti visivi tendono ad essere notevolmente migliori di quelli di altri giochi gratuiti.)


12
Un punto da non sottovalutare. Il rendering di un set fisso di frame consente di concentrarsi completamente solo su quei frame, tutto ciò che causa un problema in un singolo frame può essere gestito manualmente.
aaaaaaaaaaaa

9
Diamine, questo è spesso usato con i giochi che fanno le loro scene "live in engine", motivo per cui le scene tagliate possono ancora apparire migliori.
trlkly

Un gioco che infrange questa regola IMHO è Brothers: A Tale of Two Sons. Gli sviluppatori fanno di tutto per assicurarsi che la videocamera finisca nel posto giusto e sia naturale.
Basic

12
Che dire del rendering di film animati per ore e ore li rende così belli mentre il rendering live in-game è meno bello (da un punto di vista generale)?

Stai assumendo che la differenza sia semplicemente nel rendering - in un film d'animazione, c'è anche una possibilità di editing dopo il fatto. Potrebbero avere effetti compositi che sarebbero stati difficili da ottenere nel motore originale, oppure potrebbero modificare leggermente le cose (ad esempio, rimuovere o ripetere ogni decimo fotogramma per accelerare / rallentare l'animazione).

Se ne hai la possibilità, cerca uno dei DVD di "Roughnecks: The Starship Trooper Chronicles", poiché hanno tracce di commenti da parte dell'editor e degli animatori sui trucchi che dovevano fare quando hanno iniziato a rimanere indietro rispetto al loro programma di consegna - cose come riciclare colpi ma capovolgendo l'asse in modo che non fosse così ovvio, correzioni di colore, mascherare cose che non gli piacevano, aggiungere esplosioni, ecc.


Anche i motori di gioco lo fanno! ;-)
Adrian Maire,

@AdrianMaire: potrebbero fare alcune delle altre cose, ma non avrebbero avuto l'umano lì per agire come editore e modificare le cose quando necessario. So di aver menzionato il modo in cui modificano le cose, ma il mio punto principale era che c'erano degli umani coinvolti in cose pre-renderizzate.
Joe,

10

Hai già risposto alla tua domanda. I filmati animati generalmente hanno un livello di dettaglio più elevato che causa un lungo tempo di rendering per ogni singolo fotogramma.

I giochi d'altra parte non hanno molti dettagli, perché la scena deve essere riprodotta 30 o più volte al secondo. Questo è anche il motivo per cui gli sviluppatori cercano di riutilizzare il maggior numero possibile di risorse (trame, modelli, ecc.), Perché il rendering dello stesso oggetto in due posizioni è molto più veloce di se tutto fosse unico. Devono anche stare attenti a non usare troppi poligoni nei loro modelli e invece cercano di ottenere un'impressione di profondità usando l'illuminazione, le trame, la mappatura di rilievo e altre tecniche.

I film non hanno questo problema; rendono la scena come vogliono e usano quante più trame, modelli e geometrie dettagliate di cui hanno bisogno per raggiungere la scena che stanno cercando.

Si potrebbe obiettare però che i giochi stanno recuperando terreno. Se guardi alcuni dei giochi più belli degli ultimi tempi, non sono così lontani dalla qualità del film come una volta. Ovviamente sarai sempre in grado di stipare più dettagli in una scena pre-renderizzata rispetto a un gioco, ma penso che la differenza non sarà così evidente tra qualche anno.


1
Amare questa risposta! Quindi chi dovrebbe essere il principale colpevole? Livello poligonale o ray tracing? I motori di gioco tendono a utilizzare il buffer z perché è più leggero? O il ray tracing fa più lavoro del calcolo della profondità?
cowboysaif,

2
Immagino sia il ray tracing. Philip sembra essere molto più ben informato di me su questo, ma per quanto ne so, è fondamentalmente un modo per simulare i raggi di luce come avrebbero agito nella realtà - rimbalzare sulle cose, essere diffusi, rotti o altrimenti modificati dai materiali nella scena , e così via. Se hai cose come la pelliccia, i capelli o altre simulazioni pesanti (come i fluidi) nella tua scena, anche la fisica è pesantemente performante - inoltre, queste cose influenzano di nuovo la complessità del ray tracing.
Christian,

2
Un'applicazione di ray tracing ha anche bisogno di qualcosa come un buffer Z per determinare e memorizzare quali oggetti si nascondono con altri oggetti. Ma il ray tracing è molto più dettagliato di un'applicazione in tempo reale, dal momento che fa tutto ciò che Christian e io abbiamo già menzionato per ottenere una fedeltà grafica più elevata inviando quei singoli raggi di luce e calcolando rifrazioni / scattering effettivi, ad esempio in oggetti di vetro o acqua , resa dei capelli fisici, illuminazione indiretta e occlusione ambientale, ecc. (anche se alcune di quelle parti possono anche essere approssimate nell'applicazione in tempo reale al giorno d'oggi, come ho già detto).
Philip Allgaier,

7
I filmati vengono riprodotti con circa 10-12 ore di tempo di calcolo per fotogramma. E secondo la legge di Blinn ogni volta che la potenza di calcolo migliora, aggiungono solo più cose alla scena in modo che non sia mai più veloce. Il rendering del filmato tende anche a utilizzare soluzioni "esatte" in forma chiusa per tutte le equazioni di rendering, in cui i giochi effettuano numerose approssimazioni perché deve essere un milione di volte più veloce di un film.
Chuck Walbourn,

2
non
avevo

8

Le altre risposte coprono i problemi di grafica grezza nei dettagli, ma non menzionano una parte importante del realismo dei giochi rispetto ai film e ai trailer: le animazioni e i movimenti della telecamera .

In un film o trailer, ogni movimento di persone e telecamere può essere attentamente coordinato per mostrare l'emozione giusta per il momento e non devono mai essere ripetute. Nei videogiochi, il gioco deve essere in grado di reagire istantaneamente ai movimenti del giocatore e deve riutilizzare un piccolo pool di animazioni di riserva per riempire le ore illimitate di tempo di gioco che possono essere possibili.

Esempi di questo dal trailer in questione sono quando il terapeuta annuisce e fa un sorriso "non male" , e quando Lara afferra il bracciolo, fa oscillare la gamba o guarda la caverna con soggezione. Queste piccole cose (o la mancanza di esse, e i personaggi "plastici" coinvolti) influenzano il realismo percepito molto più che piccoli miglioramenti grafici.

A differenza delle altre differenze grafiche, questo non è un problema che può potenzialmente essere risolto aggiungendo più potenza di calcolo: è una differenza fondamentale tra un mondo che è stato scritto e un mondo che risponde a ogni tua azione. A questo proposito, mi aspetto che il realismo dei trailer di oggi supererà tutto il gameplay per il prossimo futuro.


8

Aggiungendo alle altre grandi risposte già pubblicate, vale la pena notare che per raggiungere i tempi di elaborazione rapidi di cui i giochi hanno bisogno, gli sviluppatori di giochi devono creare molti dei loro effetti visivi come semplici trame. Ciò significa che è necessario prestare molta attenzione per evitare effetti che non si cuociono bene.

Un effetto importante difficile da realizzare per i videogiochi è Subsurface Scattering (SSS) . Sfortunatamente, questo effetto è davvero importante nel generare una pelle umana dall'aspetto realistico. Ecco perché molti personaggi "realistici" dei videogiochi appaiono in plastica.

Un modo in cui gli sviluppatori evitano questo problema è quello di rendere deliberatamente i personaggi dai colori vivaci per sminuire l'aspetto di plastica o aggiungendo molte ombre e dettagli materici al viso (come barbe ecc.) Per spezzare le sezioni altrimenti grandi e continue di pelle.


2
Per non parlare di tutto il lavoro di post elaborazione che riguarda le animazioni dei film. Molte cose sono rese come più scene separate che devono essere stratificate insieme dopo il rendering. Ecco perché, in molti film animati, vedrai spesso sfondi relativamente statici con personaggi che si muovono in primo piano.
Vladimir

6

Per rispondere a una delle domande poste dall'OP in un commento:

"Quindi chi dovrebbe essere il principale colpevole? Livello poligonale o ray tracing?"

Questa domanda è più difficile di quanto sembri. Penso che una buona regola empirica sia la seguente equazione (che ho inventato a proposito):

number of calculations = {polygons} * {light sources} * {effects}

Fondamentalmente, questo significa che per i modelli con relativamente pochi materiali speciali (cioè senza specchio, sottofondo, ecc.), Il tempo di calcolo sarà grande determinato dal numero di poligoni. Questo è generalmente il caso di una grafica per videogiochi molto semplice.

In pratica, tuttavia, nei nuovi giochi di fascia alta e soprattutto nei film, il colpevole è "di solito" ray tracing. Perché? Bene per due motivi. Daremo prima la ragione della matematica, e poi la mia opinione sulla vera ragione alla fine.


Motivo di Mathy:

Aggiornamento: questa spiegazione della matematica potrebbe non essere completamente accurata. Per maggiori dettagli, consultare la spiegazione di CrazyCasta nei commenti.

Supponiamo di avere 1000 poligoni e 3 fonti di luce. Il minor numero di ray traces che devi eseguire è 3 * 1000.

Se semplifichiamo eccessivamente la situazione e ipotizziamo che 1 raggio ray = 1 calcolo (una sottostima lorda) avremo bisogno di 3000 calcoli.

Ma ora supponiamo che tu voglia avere anche dei riflessi.

Le impostazioni predefinite per i riflessi nel programma freeware Blender sono:

max reflections  = 2
ray length limit = None
...

Per queste impostazioni possiamo indovinare che, nel migliore dei casi, questa riflessione semplicissima raddoppierà il costo computazionale del tuo modello.

Ma come ho detto prima, questo esempio è molto semplificato e puoi trovare molti effetti (oltre a quelli che ho già menzionato) che ti permetteranno di sparare il tempo di rendering attraverso il tetto.

Caso e punto: prova a renderizzare i riflessi con gloss=1(impostazione predefinita in Blender), quindi abbassa il gloss a 0,01 e confronta i due tempi di rendering. Scoprirai che quello con lucentezza 0,01 sarà molto più lento, ma la complessità del modello non è stata affatto cambiata.


La mia ragione qualitativa ma più realistica:

L'aumento della complessità della mesh migliorerà la qualità del modello solo fino a un certo punto. Dopo aver superato un paio di milioni di volti, non c'è davvero molto che l'aggiunta di più volti faccia. Mi spingerò fino al punto di dire che se usi il livellamento, sarai in grado di cavartela con solo duecento facce per gli scopi più generali.

Ma le cose che fanno quasi sempre la differenza sono l'illuminazione, gli effetti materiali e il ray tracing. Ecco perché i film tenderanno a usarne un gran numero nel tentativo di approssimare le belle complessità del mondo reale.


Un ottimo modo per farsi un'idea di tutto ciò è guardare la lista dei cast alla fine delle ultime animazioni Disney. Probabilmente rimarrai sorpreso da quante persone di illuminazione e texture hanno.


2
Mio Dio, questo è il punto che cercavo. Anche se non era una mia domanda (ero un po 'confuso su cosa avrei dovuto chiedere), penso che sia così!
cowboysaif,

1
@cowboysaif Sono felice di aiutarti! :)
Vladimir,

1
In realtà le cose non sono così belle come avrei potuto farle sembrare. Ma penso che questo possa aiutarti a farti un'idea generale. Di solito mi baso solo su tentativi ed errori. Ad esempio, se eseguo il rendering di una scena più lunga (oltre 100 fotogrammi), per prima cosa eseguo il rendering di uno o due fotogrammi in modo da poter vedere quanto va veloce e quali effetti tendono a rallentarlo.
Vladimir,

2
Un vecchio trucco derivante dall'uso di POVRay su una 486 del passato - se vuoi sapere quali parti della tua scena sono più costose, rendi più viste dell'intero palco con tutti gli attori e oggetti di scena sul posto e guarda le parti che rallentano il raytracer a una scansione. Ingrandisci quelle parti e calcola le prestazioni nel caso peggiore e calcola come spendere la maggior parte del budget di rendering per i frame che incorporano quegli elementi. Se hai un programma di rendering rigoroso, prendi in considerazione la riformulazione di alcuni scatti.
Tom B,

1
@TomB Un buon consiglio! Aggiungo che se ti aspetti che una determinata scena sia lenta, puoi coltivarla sul web e rendere tutto il resto localmente.
Vladimir,

4

Vale la pena aggiungere che l'animazione del film di solito fa una buona dose di inganno visivo per rendere più fluido il movimento percepito.

Gli animatori possono, ad esempio, utilizzare le tradizionali tecniche di animazione manuale che non sono in genere utilizzate nel rendering in tempo reale, come sbavature, multipli o deformazioni per produrre un movimento più fluido nonostante il framerate inferiore dei film (almeno in ogni caso, fino a poco tempo fa) ) visualizzato a. L'uso di strisci e multipli, in particolare, è complicato dall'uso di mesh: è necessario produrre deformazioni di mesh per quel tipo di distorsione di mesh e non credo di averlo visto in nessun videogioco 3D.

I fotogrammi con oggetti in rapido movimento che li attraversano possono essere renderizzati con un framerate diverso e quindi combinati nuovamente per produrre sfocatura di movimento attraverso la scena. Il motion blur è una tecnica abbastanza comune nella grafica 3d in tempo reale al giorno d'oggi. L'effetto di solito non è dell'alta qualità che otterrà una casa di animazione con dozzine di processori a disposizione (vedi le risposte "tempo" sopra) in gran parte a causa del fatto che la simulazione del motion blur richiede davvero più fasi di post-elaborazione per strato, e un gran numero di frame intermedi per essere davvero fluido.

Fare questo tipo di trucco visivo per migliorare la qualità percepita con la grafica in tempo reale richiede effettivamente di limitare il framerate di output a tassi ben al di sotto dei massimi fotogrammi intermedi con rendering di sfondo disponibili, quindi fare una composizione per produrre il fotogramma finale. Probabilmente ci sono diverse scuole di pensiero sul fatto che i leggeri guadagni nella fedeltà visiva nell'uso di tecniche come questa valgano la perdita del budget del frame, in particolare se sarà estremamente difficile ottenere il giusto.

Per affrontare un aspetto della tua domanda:

Che dire del rendering di film animati per ore e ore li rende così belli mentre il rendering live in-game è meno bello (da un punto di vista generale)?

Artigianato, principalmente. Gli artisti in tempo reale non hanno la possibilità di mettere a punto ogni fotogramma o creare espedienti unici per migliorare l'aspetto generale di una scena o reazione, non solo a causa dei vincoli di tempo (sia nello sviluppo che nel rendering) ma anche perché di vincoli pratici. Come notato nel commento sull'interattività, il giocatore probabilmente non farà esattamente la stessa cosa ogni volta, ma il film verrà riprodotto sempre allo stesso modo.

Ciò significa che l'artista del videogioco ha una serie di priorità molto diverse per quanto riguarda la qualità del modello e la qualità di rendering finale rispetto all'artista del film. Entrambi richiedono enormi quantità di abilità, ma ognuno richiede tecniche diverse. Mi aspetto che queste tecniche convergano sempre più man mano che l'hardware di rendering a livello di consumatore continua a progredire e ulteriori geniali matematici continuano a emergere nei vostri SIGGRAPH e nei vostri GDC.


1
Oooh hai appena discusso di qualcosa di cui voglio parlare. Deformazione della maglia? si chiama anche modificatore di mesh? C'è un modificatore che ho usato mentre armeggiavo con unità 3d, si chiama mega-fiers ( west-racing.com/mf/?page_id=2 ). Anche se unity 3d supporta solo l'animazione basata sull'osso, pensi che le tecnologie di gioco finalmente riescano a risolverlo? Non ho idea di altri motori di gioco però!
cowboysaif,

1
Questo tipo di effetto dovrebbe essere compatibile con qualsiasi tipo di tecnica di animazione fintanto che stai usando distorsioni matematiche dell'intero modello con uno shader di vertice (probabilmente quello che stanno facendo i "mega-fier"). Alcuni altri approcci sono: * avere una mesh "target" che è una seconda mesh completamente distorta e usare lo shader di vertice per spostare i vertici della mesh verso i vertici corrispondenti nella seconda mesh; * avere le deformazioni inserite nel modello stesso e usare l'animazione dei fotogrammi chiave; * fare le tue distorsioni usando l'animazione scheletrica posizionando esclusivamente le ossa extra secondo necessità ...
Tom B,

1
Sono certo che questo tipo di animazione sia stata possibile per un po ', e in una certa misura è già stata utilizzata, anche se per lo più posso solo ricordare istanze in giochi con creature insanguinate e modelli flessibili (come Gish, Tower of Goo, Octodad) . La parte difficile viene da capire quando usare gli effetti, in particolare quando si tratta di usare multipli o sbavature. La direzione del movimento della fotocamera influenza l'aspetto del multiplo o della sbavatura risultante. Ho il sospetto che le linee guida che usano gli animatori di mani siano un buon punto di partenza, ma penso a tutto il divertimento da sperimentare!
Tom B,

3

Un singolo film d'animazione potrebbe richiedere molti anni per essere riprodotto su una singola bestia di una macchina. Dato che è pre-renderizzato, non importa quanti effetti costosi come la luce rimbalza, le ombre, ecc. Aggiungiamo alla scena. Questi filmati di solito vengono renderizzati da farm di rendering in cui migliaia di PC sono collegati tra loro lavorando sullo stesso lavoro.

Il motivo per cui non possiamo ottenere la stessa qualità in tempo reale è semplicemente perché la macchina deve eseguire il rendering del fotogramma corrente in circa 16 ms per ottenere un FPS di 60. Un singolo fotogramma per un film d'animazione potrebbe richiedere ore per il rendering su un singolo PC.

In un gioco, oltre alla grafica, stanno succedendo molte altre cose. Ogni frame ci sono tonnellate di calcoli. Detto semplicemente, un film d'animazione non ha bisogno di calcolare i danni subiti dal giocatore da un lanciarazzi, devi solo animare i gib e i poligoni renderanno.

Fortunatamente ci sono alcune persone geniali che camminano su questo pianeta. Oltre ai migliori PC in grado di rendere più poligoni e trame più grandi, ci sono alcune ingegnose invenzioni fatte come normali mappe in grado di animare luce / ombra su un poligono piatto in modo molto economico, rendendo un noioso oggetto 3D incredibilmente dettagliato.

Alcuni di questi effetti costosi che rendono i film hanno quel bagliore extra.

  • La luce rimbalza. Nella vita reale la luce rimbalza fino a quando non viene completamente assorbita dalle superfici su cui rimbalza. Per ciascuna sorgente luminosa devono essere effettuati calcoli. Prova a tenere un oggetto colorato accanto a un pezzo di carta bianca, vedrai il colore sanguinare sulla carta.
  • I giochi hanno dure limitazioni sulla quantità di poligoni utilizzati, i film prerender non hanno queste limitazioni, ci vuole solo più tempo per il rendering. Tornando alla luce che rimbalza, se abbiamo più poligoni, allora ci sono più calcoli della luce per effetti visivi ancora migliori ma a scapito del costo esponenziale di crescita.
  • Dimensione della trama, le schede grafiche possono contenere solo una certa quantità di dati e la commutazione di questi dati è costosa. Una comune trama 1024x1024 che include tutte le mappe shader potrebbe facilmente assorbire un paio di percentuali della tua scheda GFX da 1 GB. Quando la carta deve cambiare i dati, ciò ha un costo. Ovviamente non ci interessa così tanto quando si fa il pre-rendering di un film. Inoltre, in un film abbiamo solo bisogno di texture ad alta risoluzione in cui la telecamera si avvicina, per un gioco lo vogliamo per ogni oggetto a cui il giocatore può avvicinarsi.
  • Il pathfinding è molto impegnativo per la CPU. Gli algoritmi di tracciamento del percorso, ad esempio, consentono ai nemici di trovare percorsi verso di te o far camminare il tuo giocatore quando fai clic da qualche parte. Queste indicazioni possono essere costose, quando ci sono 10000 waypoint (che sono solo ogni metro quadrato su una mappa 100m x 100m), allora è possibile che dobbiamo attraversare più volte questi waypoint su un singolo frame. Ci sono molti modi per renderlo più economico a seconda delle esigenze, ma il fatto è che non ne abbiamo bisogno per le scene pre-create.

In poche parole, dobbiamo inventare trucchi "economici" per rendere un gioco bello. Ma l'occhio umano è difficile da ingannare.

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.