Site icon Online Guider, Tips, Tester Och Nyheter Om Alla Spel

Varför flaskorna i Half-Life: Alyx ser så bra ut

Varför flaskorna i Half-Life: Alyx ser så bra ut

VFX-utvecklaren Matt Wilde spiller ölet

Vi har alla tagit på hobbyer i år. Och även om jag är säker på att mitt liv har berikats genom marathoning av The Crown och astrala som skjuter ut ur min kropp på helgerna, hade Matthew Wilde ett lockdown-projekt som är lite mer omfattande: han gjorde spritflaskor för Half-Life: Alyx.

Skuggarna lades till i spelet i maj-patch, och de började genast få kärlek på internet. Det är lätt att se varför: de ser riktigt, riktigt bra ut. Skuggaren gör att flaskorna verkar transparenta, med vätska som reagerar när du skakar flaskan. Innan plåstret gjorde flaskorna ett skakande ljud när de skakades, men annars verkade de ogenomskinliga.

Jag ville ta reda på hur skuggaren fungerade, och det var ingen bättre person att fråga än Wilde själv.

Tillbringade en bra bit av lock-down gör detta viktiga arbete. Boozy liquid shader, nu tillgänglig i den senaste uppdateringen för Half-Life: Alyx pic.twitter.com/Iw9h98pmEg

– Matthew Wilde (@skilful) 28 maj 2020

Wilde är en VFX-utvecklare, och han arbetade på Valve när Alyx var under utveckling – men på Dota Underlords. Han gjorde en vinglasskuggare för Dota-karaktären Jull, som fångade Scott Daltons uppmärksamhet på Half-Life: Alyx-teamet. Det finns många flaskor utspridda i Alyx, men en viss nivå äger rum i ett destilleri och kräver att spelaren interagerar mycket med flaskor.

Att utveckla en shader som fick flaskorna att se fulla av vätska skulle göra nivån mycket mer imponerande. Och Wilde skulle inte heller starta från ingenting: spelet var i princip gjort, med detaljerade tillgångar och ett kraftfullt belysningssystem på plats.

“Alla flaskor fanns som modeller, och de var alla vackert strukturerade och de ser bra ut”, sa Wilde. “Och så omedelbart kunde vi se att det verkligen lovade.”

Men med Alyx släppdatum på väg, fanns det bara inte tid att implementera den nya skuggan utan att orsaka prestandaproblem.

“Om det bara fanns enstaka flaskor … hade det förmodligen inte varit ett problem”, sa Wilde till mig. “Men återigen, det var denna destilleri nivå som hade tusentals rekvisita och tusentals flaskor.”

Skuggan fick hyllas för frisläppande, och även om Wilde blev besviken tog han det i steg. Half-Life: Alyx kom ut den 23 mars 2020. Samma dag utfärdade Jay Inslee, guvernören i staten Washington, en vistelse hemma för att stänga av Valves Bellevue-kontor.

“Och så hade vi tid plötsligt”, sa Wilde. “Lockdown gav oss möjlighet att se tillbaka på saker som vi inte lyckats göra tidigare.”

Gör skuggan

Shaders är program som berättar för 3D-objekt hur de ska se ut. Denna specifika skuggning är en pixelskuggning som berättar för varje pixel vilken färg som ska vara, baserat på hur den tänds. Allt som återges i ett spel har en skuggning.

“Det är bara att vissa skuggare är lite mer involverade än andra,” sa Wilde till mig.

Shaders slutar redogöra för många av de detaljer som vi ser. Att faktiskt rendera något i 3D – till exempel alla spår och knutar i trädbark – skulle vara tidskrävande och prestandatungt. Men en skuggare kan skapa en illusion av trädbark eller rustning eller hud eller ölskumning i en flaska, även om objektet det appliceras på bara är gjort av släta, släta polygoner.

Nu försvunnen hemma, återvände Wilde till skuggan. Alyx hade redan ett belysningssystem, så vad skyggaren behövde göra var att ta reda på vilka värden som skulle användas när belysningen beräknades. Skuggaren tar hänsyn till ingångar som basfärger, texturer och reflektioner för både vätskan och själva flaskan och kombinerar sedan alla dem tillsammans.

“Och vad du matar ut är en annan färg,” sa Wilde. “Du gör det för varje pixel och du får ett resultat i slutet.”

En gif som visar hur skuggaren kombinerar vätska och en flaska för att skapa effekten av vätska i en flaska.

Kombinera vätska och en ölflaska i Half-Life: AlyxGIF: Matthew Wilde / Valve

Shader är först och främst resultatet av tvångsmässig observation. Wilde satt bokstavligen i källaren och plockade upp och lekte med flaskor för att se hur vätska beter sig.

“Du tittar på en skuggare och du ser allt arbete som har gått in i det, och det är sidor och sidor med saker, men det har aldrig bara slagit ut ur någons sinne, du vet, rakt in i filen”, sa Wilde till mig . “Det har alltid varit ett fall av att bygga upp det långsamt … och sedan få idéer när du går vidare, typ av att skissa ut det.”

Wilde skulle göra observationer av den verkliga flaskan – skummet som utvecklas på öl, eller hur vätska fångar ljuset – och sedan justera dessa ingångar i skuggaren så att hans skapande återspeglade verkligheten. Det var som att skapa en pointillistisk målning, pixel för pixel. Det är särskilt ingen vätskesimulering som händer här.

“Det är verkligen gjort att bete sig hur jag har bestämt att det ska bete sig, inte något mer realistiskt än så,” sa Wilde. “Det finns ingen simulering, det är bara observerat.”

Därför är formuleringen i Alyx lappanteckningar väldigt avsiktlig: “Flaskor verkar nu ha vätska inuti som snurrar när du skakar dem.”

Reflektion och brytning

Kubkartläggning har länge varit hur spel hanterar reflektioner, och även med strålspårning hotande i vår framtid kommer det inte att förändras över en natt. En kubkarta består av sex vyer bakade i en kub. Beroende på var spelarens kamera pekar drar spelet en ungefärlig vy från kuben för att skapa en reflektion. Det är därför speglar inte fungerar i spel – kubkartor skapar inte perfekta reflektioner och de behöver verkligen inte.

Det finns ett bra exempel på det i Marvels Spider-Man på PS4, där reflektioner över byggnader kan visa något från närliggande, men inte nödvändigtvis det mest exakta. Vi är vanligtvis ganska kapabla att upphäva misstro, eftersom reflektionen ser tillräckligt bra ut.

Denna spritskuggare använder en kubkarta för att skapa reflektioner, men också för att skapa en illusion av brytning – vilket är ljus som passerar genom ett objekt snarare än att studsa av det.

Flaskorna är inte transparenta. Men de ser genomskinliga ut, för Alyx drar kubkartan för dina ungefärliga koordinater och projicerar den förbakade bilden på sidan av flaskan du tittar på. Det visar dig en förvrängd bild av rymden, men det är en vild illusion som helt fungerar.

“Använda dem för en flaska där saker redan är lite förvrängda, där allt är lite smutsigt … det är faktiskt ett riktigt bra sätt att göra det”, säger Wilde. ”Jag tror att det också hjälper att när man tittar på glas och vätska, vet ingen hur det ska se ut, precis som en instinktiv sak. Du accepterar bara när du börjar titta genom glas och saker går lite konstigt. ”

Om du sticker en vinflaska i ansiktet ser du att den faktiskt är tom. Gif: ProSpelare via Valve

Kubkartbilden är dubbelt förvrängd där skuggaren säger att det finns vätska. Wilde kombinerar reflektioner ovanpå reflektioner så att det verkar som om det finns två ytor: glasflaskan och vätskan ”inuti” den.

Och så får du illusionen av vätska i en transparent glasflaska – när flaskan faktiskt är tom och ogenomskinlig.

Falsk fysik

Det jag älskar mest med denna skuggare är att den är tillräckligt detaljerad för att klara vår mentala tröskel för realism – även om det återigen inte är någon simulering inblandad.

”Allt är förfalskat, allt är lurat. Allt observeras bara och justeras och värdena ändras tills det nästan känns rätt, sa Wilde. ”När jag skakar en flaska, [the liquid] slags vaggar lite runt. Så vi får det att vackla lite, eftersom vacklingen ser ungefär rätt ut. ”

Det är den här skakningen som ursprungligen försenade skuggningen, eftersom det inte fanns ett effektivt sätt att få informationen till spelet. I slutändan var prestationskostnaden försumbar, för att Wildes kollegor på Valve insåg att de kunde lagra data i skuggans toppfärg.

Hörnfärgen är ”en relik från en tidigare tid före realistisk belysning och texturer”, sa Wilde till mig i ett mejl. ”I det här fallet var det bara en färg som applicerades över hela saken. Och vi använde inte den färgen för någonting. ”

En vodkaflaska i Half-Life: AlyxGif: ProSpelare via ventil

Och så lagras rörelsen (eller, professionellt, sloshiness) av vätskan, gravitationens riktning och skum eller bubblor i dessa oanvända RGB-kanaler. När jag vinkar en flaska vildt, används flaskans hastighet för att driva upp omrörning, vilket gör att vätskan tycks glida runt. Bubblor eller skum är också bundna till hastighet och förfaller gradvis när rörelsen slutar. Men alla de mest intensiva beräkningarna – belysning, reflektioner, skuggor – görs redan för varje objekt i spelet, oavsett om spelaren går med flaskor eller inte.

Varför det lyckas

Även om arbetet med ett lockdown-projekt med stora mängder alkohol kanske låter isolerande, men när det gällde att implementera skuggningen och knäcka prestandafrågan var Wilde inte ensam – Alyx visuella effekter är ett lagarbete.

“Framgången med det kommer först och främst från det faktum att tillgångarna själva är så bra att börja med”, sa Wilde. ”När du skriver en shader, verkligen den här typen av shader … du ryggsäker på en befintlig pipeline och befintliga belysningsinställningar. Så det handlar bara om att försöka utnyttja det som finns så bra du kan. ”

Att skaka en flaska kan vara enkelt att göra i verkliga livet, men det är inte så enkelt att få en virtuell flaska att svara naturligt. Med tiden och uppriktigt sagt imponerande observationsförmåga kom Half-Life: Alyx’s spritflaskor att kännas så rätta att vi inte behöver upphäva misstro när vi ser dem. Det är ett slags smart, kreativt tänkande som spelutveckling alltid kommer att dra nytta av, oavsett hur avancerad teknik blir.

Exit mobile version