De ce sticlele în timpul vieții: Alyx arata atât de bine

Noi toți am luat hobby-uri în acest an. Și în timp ce eu sunt sigur că viața mea a fost îmbogățită de maratoning Coroana și Astral Proiectarea din corpul meu în weekend, Matthew Wilde a avut un proiect de blocare care este puțin mai substanțial: el a făcut shaders bomboane de înjumătățire: Alyx.

Shaderele au fost adăugate la joc într-un patch-uri mai și au început imediat să iubească pe Internet. Este ușor de văzut de ce: arată într-adevăr, foarte bine. Shader-ul face ca sticlele să apară transparente, cu lichid care reacționează când scuturați sticla. Înainte de plasture, sticlele au făcut un sunet de sloshing când au fost agitați, dar altfel au apărut opac.

Voiam să aflu cum a lucrat shader-ul și nu a existat o persoană mai bună să o întrebe decât pe Wilde însuși.

A petrecut o bucată bună de blocare, făcând această lucrare importantă. Shay Shoy Shader, acum disponibil în ultima actualizare pentru Half-Life: Alyx Pic.stare de nervozitate.COM / IW9H98PMEG

- Matthew Wilde (@skilful) 28 mai 2020

Wilde este un dezvoltator VFX și lucra la Valve când Alyx a fost în curs de dezvoltare - dar pe starea de la Dota. El a făcut un shader de sticlă de vin pentru personajul Dota Jull, care a atras atenția lui Scott Dalton pe Timpul de înjumătățire: Echipa Alyx. Există o mulțime de sticle împrăștiate în Alyx, dar un anumit nivel are loc într-o distilerie și cere jucătorului să interacționeze cu sticle foarte mult.

Dezvoltarea unui shader care a făcut sticlele să pară pline de lichid ar face nivelul mult mai impresionant. Și Wilde nu ar fi pornit de la nimic, nici: jocul a fost făcut practic, cu active detaliate și un sistem puternic de iluminat în loc.

"Toate sticlele au existat ca modele și au fost toate frumos texturate și arată bine, a spus Wilde. "Și așa imediat, am putea vedea că a fost într-adevăr promițătoare. "

Dar cu data de lansare a lui Alyx a-ul, nu a fost doar timp să implementeze noul shader fără a provoca probleme de performanță.

"Dacă ar fi fost doar sticla ocazională în jur... probabil că nu ar fi fost o problemă, "Wilde mi-a spus. "Dar din nou, a fost acest nivel de distilerie care avea mii de recuzită și mii de sticle. "

Shader a fost rafinat pentru eliberare și, deși Wilde a fost dezamăgit, el a luat-o în pas. Half-Life: Alyx a ieșit pe 23 martie 2020. În aceeași zi, Jay Inslee, guvernatorul statului Washington, a emis o ședere la comanda la domiciliu care ar închide birourile Bellevue valvei.

"Și așa am avut timp brusc, a spus Wilde. "Lockdown ne-a dat ocazia de a avea o privire înapoi la lucrurile pe care nu le-am reușit să o fac anterior. "

Făcând shader-ul

Shadere sunt programe care spun obiecte 3d cum să se uite. Acest shader specific este un shader pixel, care spune fiecărui pixel ce culoare să fie, pe baza modului în care este aprins. Tot ceea ce este redat într-un joc are un shader.

"Este doar că unele shadere sunt puțin mai implicate decât altele," Wilde mi-a spus.

Shaderele sfârșesc să contabilizeze o mulțime de detalii pe care le vedem. De fapt, făcând ceva în 3D - toate canelurile și nodurile în coaja de copac, de exemplu - ar fi consumatoare de timp și de performanță. Dar un shader poate crea iluzia coaja de copac, armura sau pielea sau bere spumarea într-o sticlă, chiar dacă obiectul pe care îl aplică este făcut doar din poligoane netede netede.

Acum aflat la domiciliu, Wilde sa întors la Shader. Alyx a avut deja un sistem de iluminat, deci ceea ce arborele trebuia să facă a fost să afle ce valori să se utilizeze când iluminatul a fost calculat. Shader-ul ia în considerare intrările cum ar fi culorile de bază, texturi și reflecții atât pentru lichid, cât și pentru sticla în sine și apoi le combină împreună.

"Și atunci ceea ce ieșire este o altă culoare," Wilde a spus. "O faci pentru fiecare pixel, și primești un rezultat la sfârșit. "

Combinând lichidul și o sticlă de bere în timpul vieții: Alyx GIF: Matthew Wilde / supapă

Shader este, în primul rând, rezultatul observării obsesive. Wilde destul de literalmente în subsol, ridicându-se și jucând cu sticle pentru a vedea cum sa comportat lichidul.

"Te uiți la un shader și vezi toată lucrarea care a intrat în ea și pagini și pagini de lucruri, dar asta nu a făcut niciodată un fel de a ieși din mintea cuiva, știi tu , direct în dosar, "Wilde mi-a spus. "A fost întotdeauna un caz de construire încet... și apoi obțineți idei pe măsură ce mergeți, un fel de schiță. "

Wilde ar face observații despre sticla de viață reală - spuma care se dezvoltă pe bere sau modul în care lichidul captează lumina - și apoi să tweak acele intrări în shader, astfel încât creația sa reflectată realitatea. A fost ca și cum ați crea o pictură de puncte, pixel de pixeli. În special, nu se întâmplă nici o simulare lichidă aici.

"Este cu adevărat făcut să se comporte cum am hotărât că ar trebui să se comporte, nu ceva mai realist decât asta, a spus Wilde. "Nu există simulare, este doar observată. "

Asta e motivul pentru care formularea în notele de patch-uri Alyx 's este foarte intenționată: sticlele acum par să aibă lichid în interiorul lor, care se prăbușesc în timp ce le scutură. "

Reflecție și refracție

Maparea cubului a fost de mult timp modul în care jocurile se ocupă de reflecții și chiar și cu trasarea de raze în viitorul nostru, care nu a câștigat o schimbare peste noapte. O hartă cub este compusă din șase vederi coapte într-un cub. În funcție de locul în care camera foto este indicată, jocul va trage o vedere aproximativă de la cub pentru a crea o reflecție. Este de ce oglinzile nu funcționează într-adevăr în jocuri - Hărți cube nu creați reflexii perfecte și într-adevăr nu trebuie să.

Există un exemplu excelent al acestuia în păianjenul de pe PS4, unde reflecțiile asupra clădirilor ar putea arăta ceva din apropiere, dar nu neapărat cel mai precis lucru. De obicei, suntem destul de capabili să suspenim necredincioșii, deoarece reflecția arată suficient de bună.

Acest shader booze utilizează o hartă cub pentru a crea reflecții, dar, de asemenea, pentru a crea iluzia de refracție - care este lumina care trece printr-un obiect, mai degrabă decât să se rătăcească.

Sticlele nu sunt transparente. Dar ele arata transparente, deoarece Alyx trage harta cubului pentru coordonatele voastre aproximative si proiectarea faptului că imaginea pre-coaptă pe partea laterală a sticlei pe care o căutați. Vă arată o vedere distorsionată a spațiului, dar este o iluzie sălbatică care funcționează absolut.

"Folosind-le pentru o sticlă în care lucrurile sunt deja distorsionate, unde totul este un pic murdar... Este de fapt o modalitate foarte bună de a face acest lucru, a spus Wilde. "Cred că, de asemenea, ajută atunci când vă uitați la sticlă și lichid, nimeni nu știe cum ar trebui să arate, la fel de instinctiv. Pur și simplu acceptați când începeți să căutați prin sticlă și lucrurile merg puțin ciudate. "

Dacă lipiți o sticlă de vin în fața voastră, veți vedea că este, de fapt, goală. GIF: Poligon prin supapă

Imaginea hărții cu Cub este distorsionată de două ori în cazul în care shader-ul spune că există lichid. Wilde combină reflecții deasupra reflecțiilor pentru a face ca acestea să pară două suprafețe: sticla de sticlă și lichidul "în interiorul ".

Și cum obțineți iluzia lichidului în interiorul unei sticle de sticlă transparente - când, de fapt, sticla este goală și opacă.

Fizica falsă

Ceea ce iubesc cel mai mult despre acest shader este că este suficient de detaliat pentru a trece pragul nostru mental de realism - chiar dacă, din nou, nu există nici o simulare implicată.

"Totul este falsificat, totul este înșelat. Totul este doar un fel de observat, și au fost modificate și valori modificate până când se simte bine, "Wilde a spus. "Când am scuturat o sticlă, [lichidul un fel de bătăi în jurul unui pic. Așa că facem să se rătăcească un pic, în măsura în care se uită la dreapta. "

Este această răsturnare care inițial a întârziat shader, deoarece nu a fost o modalitate eficientă de a obține informațiile în joc. În cele din urmă, costul de performanță a fost neglijabil, deoarece colegii Wilde 's la supapa au realizat că ar putea stoca date în culoarea vertexului Shader .

Culoarea vertexului este "o relicvă de la un timp mai devreme înainte de iluminarea și textul realist," Wilde mi-a spus într-un e-mail. "În acest caz, a fost doar o culoare care a fost aplicată peste tot. Și nu am folosit acea culoare pentru nimic. "

O sticlă de vodcă în timpul vieții: Alyx GIF: Poligon prin supapă

Și astfel agitația (sau, profesional, sloshiness) a lichidului, direcția gravitației și spumei sau bulelor, sunt stocate în aceste canale RGB neutilizate. Când am o sticlă în jurul valorii de sălbatic, viteza sticlei este folosită pentru a conduce agitația, făcând lichidul să apară în jurul lui. Bubblele sau spuma sunt, de asemenea, legate de viteza, și treptat dezavantajul când mișcarea se oprește. Dar toate cele mai intense calcule - iluminat, reflecții, umbre - sunt deja făcute pentru fiecare obiect din joc, indiferent dacă jucătorul merge nuci cu sticle sau nu.

De ce reușește

Deși lucrul la un proiect de blocare care implică cantități abundente de alcool ar putea fi izolarea, atunci când a venit la implementarea shaderului și crăparea problemei de performanță, Wilde nu a fost singură - efectele vizuale Alyx sunt un efort de echipă.

"Succesul vine de la, în primul rând, faptul că activele în sine sunt doar atât de bune pentru a începe," Wilde a spus. "Când scrieți un shader, cu siguranță acest tip de shader... Piggybacking pe o conductă existentă și setări existente de iluminare. Așa că este vorba despre încercarea de a exploata ce e cel mai bun posibil. "

Scuturarea unei sticle ar putea fi simplă de a face în viața reală, dar nu este atât de simplu să faci o sticlă virtuală răspunzând în natură. Cu puteri de timp și sincer impresionante de observare, timp de înjumătățire: sticlele lui Alyx 's a venit să se simtă atât de bine încât nu trebuie să suspendăm necredincioșii când le vedem. Este genul de inteligent, creativ, creativ că dezvoltarea jocului va beneficia întotdeauna de, indiferent cât de avansată a tehnologiei.

Lasă Un Comentariu

Please enter your comment!
Please enter your name here