• sirpalee
    #59
    Tervbe volt véve a válasz, de mással foglalkoztam eddig...

    Egyrészt, textúrázva vannak a folyadékok is néhol, persze legtöbbször procedurális textúrákkal, de textúrázva vannak / lehetnek. (pl nálunk inkább kitolják nagyobb felbontásba a folyadékokat - mint tűz, füst, vér stb - de nem textúrázzák, de az is egy lehetséges megoldás lenne)

    Igen a hszetekből itélve nincs rálátásotok erre a problémára, de ha tévedtem győzzetek meg róla ;) (hint - shaderprogramozással is foglalkozok)

    A felmerülő probléma... Igaz, hogy a fizikai shadelésnek iszonyú előnyei vannak, nehéz túllőni az anyagokat, nehezebb idióta beállításokat kreálni, kevesebb AOV (kevésbé van megterhelve a pipeline...), kevesebb beállítás magán az anyagokon... Ez baromi jó, csak mire ezt elfogadtatod egy grafikussal, kétszer kihullik a hajad. Ilyeneken ügyködök 2 hete (ünnepeket kivéve ofc), hogy a klasszikus össze-vissza tweakelhető shader fizikai alapú megoldásra legyen lecserélve, és a legnagyobb ellenállás a shaderezőktől jön, mert hogy megszokták a régi módszert, nem lesz nukeba elég pass stb... Én meg tépem a hajam, hogy ezt kéne, nem a régit...

    Ez egy jó párhuzam a textúrára... Hiába van neked egy baromi jól működő, baromi jó fizikai alapú anyagod, ami össze-vissza töri meg szórja a fényt, ha az nem igazán állítható... Mondjuk van x mért anyagod, azokat tudod beállítani, és? Pont arra lesz szükséged ami hiányzik... És ha ilyen komplex fizikai modelleket valaki kézzel állítgat, akkor szinte lehetetlen olyan kinézetet létrehozni amit a művész szeretne (és ez a lényeg, nem az hogy fizikailag korrekt legyen valami, hanem hogy JÓL nézzen ki). Ebből a szempontból a textúrázás kilövőse agyhalál az összes art directornak...

    Effektíve amit te mondtál, az is arról szól, hogy a voxelek (maradok ennél a terminológiánál, érthetőbb) tartalmazzák a szineket is (ezért írtam a 3d-s textúra kifejezést), de hol találsz olyan embert aki ezt megfesti neked belátható időn belül? Persze nem mondom, hogy nem lehet, de egyelőre az ehhez kellő eszközök is hiányoznak.

    A technikai problémákra visszatérve... Látszik, hogy nincs programozási háttér, mert mindenki arra gondol, óh szuper 1000 mag, 250szer gyorsabb (4 maghoz képest), de a valóságban az a helyzet, hogy a memória alrendszer megöl mindent... Pl a videókártyákat nem a számítási teljesítmény fogja vissza, hanem a memória rendszer (nyilván nem játékokról beszélek, ahol elég speciális trükkök vannak). A kártyákba rakott 170G/s-es memória sem elég mindig, iszonyatos latencykkel dolgoznak a shader procik... És gyakorlatilag azért, hogy el tudd tüntetni ezeket, sokszor annyi threadot kell futtatnod, ahány tényleges proci van. Valószínűleg hasonló helyzet állna fenn egy sokszáz magos procinál is, intelnek sincsenek akkora trükkjei ami nvidiának ne lenne ;) .

    Ekkor meg már fellép az a probléma, oké futtassunk raytracet, de ledöglik az egész, mert önmagában ahhoz, hogy elinduljon a render lefoglalunk 5-6 giga memet (vagy még többet... hint - stack... esetleg még ha ügyködünk valami stackless módszeren is, akkor is baromi nehezen oldható meg, hogy tetszőleges shader futtathasson a render - ez pedig egy produkciós renderelőnél elsődleges dolog...)

    Aztán pedig előjön egy halom szinkronizációs probléma... Ez abban az esetben oldódhat meg, ha van elég memóriánk betölteni minden textúrát és minden adatot statikusan a membe, hogy mindenki onnan olvasgasson. Ami egy komolyabb jelenetnél 20-30 giga. (mivel előre nem tudjuk megmondani mire lesz szükségünk, és ha több ezer szál között elkezdünk lockolni az ronda lesz...). És ilyenkor szépen várunk perceket mire végigpörgeti a vinyót a gép... (vagy rosszabb esetben a hálózatot, és minden lerohad)

    Ezzel nem azt akarom mondani, hogy szar a sokmag, sőt jöjjön nyugodtan. De a szokásos tévhittel ellentétben, ez nem úgy megy, hogy x szálon futtassuk akkor a proginkat, még ha az csúcsszuperül is van megírva. Egy bizonyos mennyiség felett, már a cpuk is hasonlóan viselkednének mint a gpu-k, és ott az előadások, tréningek nagy része arról szól, hogyan küzdjünk meg az architektúrával, és hogy varázsoljuk elő a számítási kapacitás kemény 10%-át (nyilván sarkítok kicsit, de remélem érthető a példa)...