Premetto che non sono un esperto di motori real time.
Ci sono 2 cose che credo vadano pre calcolate: shaders e illuminazione.
La prima credo non si scappi. La natura di questi motori é che gli shader vanno precompilati, e a seconda della scena ci vuole un po'. Mi pare sia cosí tutt'ora.
Per quanto riguarda l'illuminazione, dipende. C'é l'illuminazione senza GI (global illumination) che é sempre stata real time. Tuttavia prima, se volevi la GI in un gioco dovevi fare il baking, appunto, della GI. Quindi praticamente facevi fare un render offline in background al motore di gioco, e questo creava della textures (le light map) che messe sopra le altre textures degli oggetti, ti faceva venire fuori la GI.
PRO di questo sistema: molto leggero, solo lo spazio delle light maps nella GI
CONTRO: devi fare il baking prima e, soprattutto, é statico. Quindi la GI non reagisce a niente durante il gioco.
Oggi peró c'é il real time raytracing. So che la gente dice che non serve a un cazzo, ma a mio avviso si sbagliano. Quello che ti permette di fare il real time ray tracing é di saltare a piú pari la parte di baking della GI, ma soprattutto di averla in real time. Il che vuol dire che puoi modificare l'illuminazione, la posizione degli oggetti, di sorgenti luminose e via dicendo, e la scena si aggiorna in tempo reale.
É un vero e proprio game changer, sia dal punto di vista dello sviluppo, sia da quello delle possibilitá da parte dell'utente finale.
Con una 3090, direi che cercherei di cambiare il mio workflow sfruttando il real time raytracing, decisamente![]()
Poi ovvio, se il tuo gioco deve girare in real time devi tenere conto dell'hardware della gente che vuole giocare al tuo gioco. Peró se magari devi fare delle sequenze pre-renderizzate che vengono fuori dal motore di gioco, non ci penserei due volte![]()
Rileggendo ora il tuo messaggio, parli di fondali e personaggi prenderizzatiBeh direi che dipende, non c'é una regola qui. Nella maggior parte dei giochi, ad esempio un qualsiasi open world tipo the witcher o cyberpunk o skyrim, non c'é niente di pre-renderizzato.
Peró magari se prendi altri titoli, magari un platform a scorrimento, in quel caso si, magari il fondale lo fanno pre-renderizzato perché tanto é solo un orpello visuale, non deve essere "vero". Non so se ho capito bene la domanda peró
Infine, discorso di "pacchettizzare" il gioco... beh si, quando crei l'eseguibile lui impacchetta tutto. Peró quando l'utente lancia l'eseguibile, la grafica viene calcolata in real time dal suo computer. Torno all'esempio di the witcher: quando hanno creato l'eseguibile, sicuramente ci vuole un bel po' di tempo a impacchettare tutto. Peró quando io lancio the witcher, ogni singolo frame é calcolato in real time dalla mia scheda grafica e dal mio processore, non c'é niente di pre-renderizzato (tolte forse alcune parti dell'illuminazione, come dicevo prima, visto che non c'é l'rtx li).