Sok újítást kínál a TressFX 2.0

A Crystal Dynamics, az AMD, a Confetti és a Nixxes a Tomb Raider című játékhoz fejlesztette ki a TressFX effektet, mely a világ első olyan megoldása volt, ami a grafikus processzor erejét hasznosította a haj fizikai szimulációjához. Később a hivatalos fejlesztőkörnyezet is megjelent, melyben az eredeti effekthez képest pár extra is helyet kapott, így szimulálható volt a száraz és vizes haj. Az aktuális verziót azonban hamarosan leváltja a 2.0-s változat is, ami végre lényeges előrelépést képvisel.

Az újításokat érdemes úgy megközelíteni, hogy az aktuális verzió milyen problémákkal küzdött. A közhiedelemmel ellentétben a TressFX sebességét elsődlegesen a leképzéshez szükséges két fázis és nem a szimuláció határozta meg. Az első fázis lényegében a szimulált geometria leképzése volt egy A-pufferbe, amiben már benne volt a megvilágítás, az árnyékolás és az élsimítás, majd ebből a fragment színét, mélységét és fedettségét egy PPLL (per-pixel linked list) adatstruktúrában kellett tárolni. Utóbbi az OIT (Order Independent Transparency, azaz sorrendtől független átlátszóság) megvalósításához szükséges, mivel a második fázis lényegében csak arról szólt, hogy a hajszálak leképzése megfelelő sorrendben történjen. Sajnos az első fázis nagyon számításigényes, de a fejlesztők rájöttek, hogy elsősorban azért, mert minden egyes hajtincs megvilágított és árnyékolt. A Tomb Raider esetében 7014 hajtincsnél ez nem ideális, tehát kell keresni valami megoldást annak érdekében, hogy részletgazdagabb lehessen a haj.

Az AMD szerint a végső eredmény szempontjából lényegtelen több ezer hajtincset tökéletesen leképezni, mivel főleg azok a hajszálak határozzák meg a tényleges kinézetet, amelyek legfelül vannak. Éppen ezért a TressFX 2.0 – bár zömében ugyanúgy működik mint elődje – pár feladatott átcsoportosít. Az első fázisnál a szimulált geometria leképzésében csak az élsimítás van benne. A megvilágítás és az árnyékolás azonban átkerült a második fázisba, egészen pontosan oda, ahol már kiderült, hogy mely hajszálak határozzák majd meg a végső képkocka színét. Ezeket természetesen jó minőségben kell feldolgozni, így megkapják az árnyékolást és a megvilágítást, de az úgymond rejtett hajtincsek már nem annyira lényegesek, így ezek esetében nem szükséges a lehető legjobb minőségű leképzés. Ennyi változással sikerült elérni, hogy a TressFX 2.0 egy AMD Radeon R9 280X VGA-n 1,2 ezredmásodperc alatt lefusson, miközben a TressFX 1.0-nak ugyanilyen körülmények között 2,8 ezredmásodpercre van szüksége. Gyakorlatilag a felújított algoritmus VGA-től függően nagyjából kétszer gyorsabban fut, de az így nyert sebességet extra hajszálakra is lehet költeni.

A TressFX 1.0 és 2.0 teljesítménye
A TressFX 1.0 és 2.0 teljesítménye

A szimulációra vonatkozóan is folynak a kutatások, így a TressFX 2.0 jobban kezeli majd az extrém gyorsulásokat, ami az aktuális verziónál még probléma. Ez ott érhető tetten, hogy a szimulált haj egy hirtelen mozdulat hatására irreális mértékben elnyúlik a mozdulatnak megfelelően. Ez a Tomb Raider című játékban szépen megfigyelhető, ha a játékos álló helyzetből, hirtelen ugrik egyet előre. A megoldást új szimulációs formulák jelenthetik. Mivel a TressFX eléggé általános megoldás a problémákra, így az aktuális szimuláció könnyen lecserélhető. A fejlesztők több különféle megoldást is fejlesztenek az eltérő hatások szimulálására, így a haj mellett a rendszer képes lesz a szőr vagy a fű modellezésére is.

A TressFX 2.0 a fentiek mellett egy lényeges előrelépés lesz a hajra, és most már a szőrre illetve a fűre vonatkozó szimulációs hatások modellezésében, ráadásul a rendszer továbbra is teljesen szabványos kódra épít, ami DirectX 11-es API alól működőképes bármilyen hardveren. A fejlesztés azonban folytatódik, ugyanis probléma még bőven akad. Bár az objektumra vonatkozó szimuláció kellően kiforrott, a Tomb Raider című játékot abból a szempontból érte kritika, hogy miért csak Lara Croft haja kapott TressFX-et, hiszen Samantha Nishimura is szerepelt több jelenetben, de csak normál hajjal, ami illúzióromboló volt, főleg akkor, ha a játékos hozzászokott a főhős frizurájához.

A TressFX első bevetése
A TressFX első bevetése [+]

A Crystal Dynamics és a Nixxes azonban jó okkal használta a TressFX-et csak Lara Croft hajára, ugyanis az effekt működése két UAV-t igényel. Mivel ebből a DirectX 11 alatt csak nyolc áll rendelkezésre, így ezt a limitált mennyiséget nagyon be kell osztani. A Tomb Raider többek között a többi effektre elhasznált már hat UAV-t, így tulajdonképpen Samantha Nishimura haja nem fért bele az API által maximalizált kvótába. Ezen a DirectX 11.1 segíthet, mivel ez az API már 64 UAV-t is megenged, ami már kellő mennyiség a többi szereplő hajának modernizálására. Ha más effektekkel nem számolunk, akkor maximum 32 szereplő haja szimulálható, ráadásul a TressFX 2.0 kapott egy LOD rendszert is, így a kamerától távoli karakterek hajának csak egy része lesz szimulálva, illetve leképezve, amivel nyilván komoly sebességet lehet nyerni.

A TressFX 2.0 az eddigi bejelentések alapján ott lesz a Lichdom és a Star Citizen című játékokban. Az új fejlesztőkörnyezet az alábbi linkről tölthető le.

  • Kapcsolódó cégek:
  • AMD

Azóta történt

Előzmények

Hirdetés