Half-Life 2: un ingegnere di Valve costrinse i produttori di GPU a riprogettare i chip

Half-Life 2: un ingegnere di Valve costrinse i produttori di GPU a riprogettare i chip

Durante lo sviluppo di Half-Life 2, un ingegnere di Valve si rese conto che i calcoli svolti dalla GPU per la gestione dell'illuminazione erano sbagliati. Tuttavia, i produttori di GPU impiegarono due anni e mezzo per convincersi dell'errore.

di pubblicata il , alle 13:24 nel canale Videogames
ValveHalf-Life
 

Per il ventesimo anniversario dalla pubblicazione di Half-Life 2, oltre a un corposo aggiornamento per il gioco, Valve ha condiviso anche un interessante documentario sul suo sviluppo. Tra i vari retroscena raccontati ce n'è uno davvero curioso e interessante che vide protagonista uno degli ingegneri, il quale scoprì che la gestione dell'illuminazione si basava su una matematica errata.

È quanto raccontato da Viktor Antonov, lead artist del gioco, e Ken Birdwell, uno dei primi assunti da Valve che ha ricoperto molteplici ruoli nella società, lasciata poi nel 2016. Birdwell era un appassionato d'arte e di fotografia e capì che l'illuminazione aveva un ruolo fondamentale nella resa visiva del videogioco.

Per tale ragione, si impose l'obiettivo di raggiungere il più alto livello di realismo possibile per luci e ombre, ma dovette scontrarsi con una fastidiosa realtà: i calcoli eseguiti dalle GPU dell'epoca erano sbagliati, il che rendeva completamente inefficace l'illuminazione.

Mentre Antonov sottovalutava l'importanza dell'illuminazione, Birdwell supportato dagli studi di pittura, fotografia e animazione, per i quali aveva conseguito la laurea in Belle Arti alla Evergreen State University, decise che doveva rappresentare una delle principali caratteristiche del gioco.

Birdwell, però, riscontrò immediatamente un problema. "La matematica che stavamo utilizzando era sbagliata" ha spiegato l'ingegnere. "E non solo, la matematica che tutti stavano utilizzando era sbagliata. Poi, quando ho iniziato a correggerla, mi sono reso conto di quanto fosse pessima…alla fine l'ho sistemata e all'improvviso tutto è sembrato fantastico".

"È un po' tecnica la questione, ma semplificando le schede grafiche dell'epoca memorizzavano le texture RGB e visualizzavano tutto, anche le intensità non lineari, il che significa che un RGB a 8 bit con valore 128 codifica un pixel al 22% della luminosità rispetto a un valore di 255, ma l'hardware grafico eseguiva i calcoli come se fosse tutto lineare"

In buona sostanza, non era possibile gestire l'ombreggiatura in base alla fonte di luce e all'angolazione dell'oggetto rispetto alla sorgente. A prescindere da questi elementi, la GPU imponeva una luminosità del 22% rispetto al valore massimo anche dove, ad esempio, era necessaria una luminosità del 50%. Di conseguenza, le ombre erano sempre troppo profonde e completamente arrotondate facendo apparire l'ambiente innaturale.

Birdwell spiega anche che, ancora oggi, in alcune aree della programmazione è un errore grafico comune. Al programmatore, infatti, viene richiesto di tenere presente che "tutti i valori bitmap sono probabilmente non lineari, non è possibile sommarli, fonderli o combinarli con calcoli lineari senza considerare in quale 'spazio gamma' si sta lavorando".

Tuttavia, nell'era moderna, anche questo problema è stato risolto con i nuovi processori grafici. Anche in presenza di un errore, infatti, la GPU applica la cosiddetta "gamma correction" convertendo automaticamente qualsiasi formato non lineare.

Ad ogni modo, la prova dei fatti non bastò ai produttori di chip per riconoscere l'errore e riprogettare i loro chip. Birdwell spiega che le sue informazioni non vennero prese in considerazione e ci vollero ben due anni e mezzo per convincere i progettisti hardware del fatto che i calcoli dei loro chip erano sbagliati.

"Dissi ai ragazzi dell'hardware, le persone che progettavano gli acceleratori hardware, che fondamentalmente la matematica delle loro schede era sbagliata. Ci sono voluti circa due anni e mezzo. Non riuscii a convincerli, alla fine assumemmo Gary McTaggart (3DFX) e Charlie Brown che avevano abbastanza influenza [nel settore]…io ero solo un laureato in Belle Arti".

Peraltro, la risposta da parte dei progettisti fu tutt'altro che cordiale. "La reazione fu 'avete appena dimostrato che i nostri chip sono difettosi, vi odio'. Non furono belle conversazioni e dovetti affrontare rabbia, frustrazione, negazione ecc ciclicamente con ogni produttore di chip. Sono stato felice di trasferire quelle conversazioni ai nuovi programmatori grafici di HL2, Gary McTaggert e Charlie Brown che hanno affrontato tutto passo dopo passo nel corso degli anni".

2 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
JoJo06 Dicembre 2024, 13:43 #1
Scusate l'OT, ma su "Charlie Brown" ho riso fortissimo!
cignox109 Dicembre 2024, 08:36 #2
Mi piacerebbe saperne di piú.

>>l'hardware grafico eseguiva i calcoli come se fosse tutto lineare

A me pare il comportamento corretto, questo. Sono gli sviluppatori del gioco a dover rimuovere il gamma dalle texture. Detta cosí sembra che sia la gpu a dover gestire i dati di ingresso come valori RGB con gamma, cosa che puó essere una comoda feature, ma la sua assenza non puó essere considerata un "errore".
Quindi, ipotizzo che sotto la questione sia piú complessa.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^