Site icon I Migliori Consigli E Guide Per Il Gioco

Perché le bottiglie in Half-Life: Alyx sembrano così dannatamente belle

Lo sviluppatore di effetti visivi Matt Wilde rovescia la birra

Abbiamo iniziato tutti a dedicarci a degli hobby quest’anno. E mentre sono sicuro che la mia vita è stata arricchita dalla maratona di The Crown e dalle proiezioni astrali fuori dal mio corpo nei fine settimana, Matthew Wilde aveva un progetto di blocco un po ‘più sostanziale: ha realizzato shader di bottiglie alcoliche per Half-Life: Alyx.

Gli shader sono stati aggiunti al gioco in una patch di maggio e hanno subito iniziato a farsi amare su Internet. È facile capire perché: stanno davvero, davvero bene. Lo shader fa apparire le bottiglie trasparenti, con il liquido che reagisce quando agiti la bottiglia. Prima del cerotto, le bottiglie emettevano un suono sordo quando venivano agitate, ma per il resto apparivano opache.

Volevo scoprire come funzionava lo shader e non c’era persona migliore a cui chiedere di Wilde stesso.

Ho trascorso una buona parte del blocco facendo questo importante lavoro. Shader liquido Boozy, ora disponibile nell’ultimo aggiornamento per Half-Life: Alyx pic.twitter.com/Iw9h98pmEg

– Matthew Wilde (@skilful) 28 maggio 2020

Wilde è uno sviluppatore di effetti grafici e lavorava per Valve quando Alyx era in fase di sviluppo, ma su Dota Underlords. Ha realizzato uno shader per bicchiere da vino per il personaggio di Dota Jull, che ha attirato l’attenzione di Scott Dalton nel team di Half-Life: Alyx. Ci sono molte bottiglie sparse in Alyx, ma un livello particolare si svolge in una distilleria e richiede al giocatore di interagire molto con le bottiglie.

Sviluppare uno shader che facesse sembrare le bottiglie piene di liquido renderebbe il livello molto più impressionante. E nemmeno Wilde sarebbe partito dal nulla: il gioco era praticamente finito, con risorse dettagliate e un potente sistema di illuminazione.

“Tutte le bottiglie esistevano come modelli, erano tutte ben strutturate e hanno un bell’aspetto”, ha detto Wilde. “E così immediatamente, abbiamo potuto vedere che era davvero promettente.”

Ma con la data di rilascio di Alyx incombente, non c’era tempo per implementare il nuovo shader senza causare problemi di prestazioni.

“Se ci fosse solo una bottiglia occasionale in giro … probabilmente non sarebbe stato un problema”, mi ha detto Wilde. “Ma ancora una volta, era questo livello della distilleria che aveva migliaia di oggetti di scena e migliaia di bottiglie.”

Lo shader è stato accantonato per il rilascio e, sebbene Wilde fosse deluso, lo ha preso con calma. Half-Life: Alyx è uscito il 23 marzo 2020. Lo stesso giorno, Jay Inslee, governatore dello stato di Washington, ha emesso un ordine di soggiorno a casa che avrebbe chiuso gli uffici di Valve a Bellevue.

“E così abbiamo avuto tempo all’improvviso”, ha detto Wilde. “Lockdown ci ha dato l’opportunità di dare un’occhiata a cose che non eravamo riusciti a fare in precedenza.”

Fare lo shader

Gli shader sono programmi che indicano agli oggetti 3D come guardare. Questo shader specifico è un pixel shader, che dice a ogni pixel di che colore deve essere, in base a come è illuminato. Tutto ciò che viene renderizzato in un gioco ha uno shader.

“È solo che alcuni shader sono un po ‘più coinvolti di altri”, mi ha detto Wilde.

Gli shader finiscono per tenere conto di molti dettagli che vediamo. Effettivamente il rendering di qualcosa in 3D, ad esempio tutte le scanalature e i nodi nella corteccia degli alberi, richiederebbe molto tempo e le prestazioni. Ma uno shader può creare l’illusione della corteccia d’albero, o dell’armatura, o della pelle, o della birra che schiude in una bottiglia, anche se l’oggetto su cui è applicato è fatto solo di poligoni lisci e lisci.

Ora sistemato a casa, Wilde è tornato allo shader. Alyx aveva già un sistema di illuminazione, quindi ciò che lo shader doveva fare era capire quali valori usare quando l’illuminazione veniva calcolata. Lo shader tiene conto di input come colori di base, texture e riflessi sia per il liquido che per la bottiglia stessa, quindi li combina tutti insieme.

“E poi quello che produci è un altro colore”, ha detto Wilde. “Lo fai per ogni pixel e ottieni un risultato alla fine.”

Una gif che mostra come lo shader combina il liquido e una bottiglia per creare l'effetto del liquido all'interno di una bottiglia.

Combinazione di liquido e bottiglia di birra in Half-Life: AlyxGIF: Matthew Wilde / Valve

Lo shader è, prima di tutto, il risultato di un’osservazione ossessiva. Wilde sedeva letteralmente nella sua cantina, raccogliendo e giocando con le bottiglie per vedere come si comportava il liquido.

“Guardi uno shader e vedi tutto il lavoro che vi è stato fatto, e sono pagine e pagine di cose, ma questo non è mai uscito dalla mente di qualcuno, sai, direttamente nel file”, mi ha detto Wilde . “È sempre stato un caso di costruirlo lentamente … e poi di ottenere idee man mano che si procede, una specie di abbozzare.”

Wilde farebbe osservazioni sulla bottiglia della vita reale – la schiuma che si sviluppa sulla birra, o il modo in cui il liquido cattura la luce – e poi modificherebbe quegli input nello shader in modo che la sua creazione riflettesse la realtà. È stato come creare un quadro puntinista, pixel per pixel. In particolare, non ci sono simulazioni di liquidi in corso qui.

“E ‘davvero fatto per comportarsi come ho stabilito che dovrebbe comportarsi, niente di più realistico di quello”, ha detto Wilde. “Non c’è simulazione, è solo osservato.”

Ecco perché la dicitura nelle note della patch di Alyx è molto intenzionale: “Le bottiglie ora sembrano contenere del liquido al loro interno che scorre mentre le agiti.”

Riflessione e rifrazione

La mappatura dei cubi è stata a lungo il modo in cui i giochi gestiscono i riflessi, e anche con il ray-tracing che incombe nel nostro futuro, ciò non cambierà dall’oggi al domani. Una mappa cubo è composta da sei viste cotte in un cubo. A seconda di dove sta puntando la telecamera del giocatore, il gioco trarrà una vista approssimativa dal cubo per creare un riflesso. È per questo che i mirror non funzionano davvero nei giochi: le mappe cubiche non creano riflessi perfetti e non ne hanno davvero bisogno.

C’è un ottimo esempio di ciò in Marvel’s Spider-Man su PS4, dove i riflessi sugli edifici potrebbero mostrare qualcosa da vicino, ma non necessariamente la cosa più accurata. Di solito siamo abbastanza capaci di sospendere l’incredulità, perché il riflesso sembra abbastanza buono.

Questo shader per alcol utilizza una mappa cubica per creare riflessi, ma anche per creare l’illusione della rifrazione, che è la luce che passa attraverso un oggetto, piuttosto che rimbalzare su di esso.

Le bottiglie non sono trasparenti. Ma sembrano trasparenti, perché Alyx sta estraendo la mappa del cubo per le tue coordinate approssimative e proietta l’immagine precotta sul lato della bottiglia che stai guardando. Ti mostra una visione distorta dello spazio, ma è un’illusione selvaggia che funziona assolutamente.

“Usarli per una bottiglia in cui le cose sono già un po ‘distorte, dove tutto è un po’ sporco … è davvero un ottimo modo per farlo”, ha detto Wilde. “Penso che aiuti anche il fatto che quando guardi il vetro e il liquido, nessuno sappia come dovrebbe apparire, proprio come una cosa istintiva. Accetti solo quando inizi a guardare attraverso il vetro e le cose diventano un po ‘strane. “

Guardando attraverso una bottiglia di vino in Half-Life: Alyx per dimostrare che è opaca e vuota.

Se ti infili una bottiglia di vino in faccia, vedrai che è, in effetti, vuota.Gif: Viaggio247 via Valve

L’immagine della mappa del cubo è doppiamente distorta dove lo shader dice che c’è del liquido. Wilde combina i riflessi sopra i riflessi per far sembrare che ci siano due superfici: la bottiglia di vetro e il liquido “al suo interno”.

Ed è così che si ottiene l’illusione del liquido all’interno di una bottiglia di vetro trasparente, quando in realtà la bottiglia è vuota e opaca.

Fisica falsa

Ciò che amo di più di questo shader è che è abbastanza dettagliato da superare la nostra soglia mentale di realismo, anche se, ancora una volta, non è coinvolta alcuna simulazione.

“Tutto è finto, tutto è imbrogliato. Tutto viene semplicemente osservato, ottimizzato e i valori modificati finché non sembra giusto “, ha detto Wilde. “Quando agito una bottiglia, [the liquid] tipo di oscillazione intorno un po ‘. Quindi lo facciamo oscillare un po ‘, dal momento che l’oscillazione sembra a posto. “

È stata questa oscillazione che inizialmente ha ritardato lo shader, poiché non c’era un modo efficiente per inserire le informazioni nel gioco. Alla fine, il costo delle prestazioni è stato trascurabile, perché i colleghi di Wilde a Valve si sono resi conto di poter memorizzare i dati nel colore del vertice dello shader.

Il colore del vertice è “una reliquia di un tempo precedente prima dell’illuminazione e delle trame realistiche”, mi ha detto Wilde in una e-mail. “In questo caso, era solo un colore applicato all’intera cosa. E non abbiamo usato quel colore per niente “.

Una bottiglia di vodka tenuta alla luce e poi agitata.

Una bottiglia di vodka in Half-Life: AlyxGif: Viaggio247 via Valve

E così l’agitazione (o, professionalmente, la viscosità) del liquido, la direzione della gravità e la schiuma o le bolle, sono tutte immagazzinate in questi canali RGB inutilizzati. Quando agito selvaggiamente una bottiglia, la velocità della bottiglia viene utilizzata per guidare l’agitazione, facendo sembrare che il liquido sgorghi. Anche le bolle o la schiuma sono legate alla velocità e decadono gradualmente quando il movimento si ferma. Ma tutti i calcoli più intensi – illuminazione, riflessi, ombre – sono già stati eseguiti per ogni oggetto nel gioco, indipendentemente dal fatto che il giocatore stia impazzendo con le bottiglie o meno.

Perché ci riesce

Sebbene lavorare a un progetto di blocco che coinvolge abbondanti quantità di alcol possa sembrare isolante, quando si trattava di implementare lo shader e risolvere il problema delle prestazioni, Wilde non era solo: gli effetti visivi di Alyx sono un lavoro di squadra.

“Il successo deriva, prima di tutto, dal fatto che le risorse stesse sono così buone per iniziare”, ha detto Wilde. “Quando scrivi uno shader, sicuramente questo tipo di shader … stai trasportando sulle spalle una pipeline esistente e le configurazioni di illuminazione esistenti. Quindi si tratta solo di cercare di sfruttare ciò che c’è nel miglior modo possibile. “

Agitare una bottiglia potrebbe essere semplice da fare nella vita reale, ma non è così semplice fare in modo che una bottiglia virtuale risponda in natura. Con il tempo e capacità di osservazione francamente impressionanti, Half-Life: le bottiglie alcoliche di Alyx sono diventate così giuste che non abbiamo bisogno di sospendere l’incredulità quando le vediamo. È il tipo di pensiero intelligente e creativo da cui trarrà sempre vantaggio lo sviluppo del gioco, indipendentemente da quanto sia avanzata la tecnologia.

Exit mobile version