Šta je novo?

The Blood of Dawnwalker



Ovu mogućnost bi svaka igra iz 3. lica trebalo da ima... Napraviti ovo uoptše nije neki zadatak. Bukvalno za jedno popodne premeštanje kamere ovog tipa može da se skocka i ubaci na test u igru.
 
Poslednja izmena:


Ovu mogućnost bi svaka igra iz 3. lica trebalo da ima... Napraviti ovo uoptše nije neki zadatak. Bukvalno za jedno popodne premeštanje kamere ovog tipa može da se skocka i ubaci na test u igru.

I meni se sviđa! Deluje mnogo bolje i imerzivnije.
Nego, zar to ne podiže zahtevnost same igre ako se kamera udalji? Onda trebaju veće proporcije da se renderuju ili kako to već ide?
 
@Dragonbane poveće sa malo viewport pa više 3D modela upadaju u kadar, verovatno minimalno povećanje zahtevnosti.
Za ovakve izmene sad im trenutak da odrade, pre nego što će da prelaze svaku scenu i da optimizuju rendering gde je kompleksnija scena.

Ova igra sad još više obećava.
 
Ne znam jeste li primetili, premda deluje slično, Coen se ipak dosta različito bori nego Geralt. Geralt je nekako okretniji, deluje fluidnije i brže.
 
@Dragonbane poveće sa malo viewport pa više 3D modela upadaju u kadar, verovatno minimalno povećanje zahtevnosti.
Za ovakve izmene sad im trenutak da odrade, pre nego što će da prelaze svaku scenu i da optimizuju rendering gde je kompleksnija scena.

Ova igra sad još više obećava.
Tako je. Ako je premeštanje kamere samo malo unapred kao što je ovde slučaj onda to nije nikakav problem, učitava se LOD sa više detalja i veći mips za teksturu. Mips je veći problem nego LOD (detaljniji meš), jer se povećava potrošnja video memorije. Međutim Unreal je tu inače dobro stojeći zato što može da koristi takozvane virtualne teksture koje se izoštravaju sekvencijalno shodno onome što vidi kamera. Ova metoda rasterećuje VRAM, a downside je da se može primetiti kašenjenje prilikom izoštravanja tekstura (učitavanja delova teksture u većoj rezoluciji) u zavisnosti od CPU-a i SSD-a koji neko koristi, kao i kompleksnosti same scene. U testovima koje sam ja radio kašnjenje je bilo jedva primetno na mojoj mašini. Recimo da je to možda par milisekundi u pitanju i to u kompleksinijim scena sa kamerom iz prvog lica što je najzahtevnija situacija. Nisam siguran kako bi to radilo na nekoj slabijoj mašini sa sporijim diskom.

Ostaviću ovde i nešto detaljnije pojašnjenje, za slučaj da nekoga ova problematika zanima.

Razlog za mikro kašnjenja (micro-stutter) pri izoštravanju je u načinu na koji se VT sistem učitava i strimuje mip-nivoe tekstura:
  • Virtualne teksture nisu uvek kompletno u memoriji.
    Samo deo teksture koji je trenutno potreban za prikaz scene nalazi se u memoriji. Kada kamera pogleda u novo područje ili se približi površini, engine mora da "zahteva" dodatne blokove (tile-ove) viših mip-nivoa.
  • Tile streaming i dekodiranje u letu.
    Kada engine detektuje da je potreban detaljniji mip, taj tile mora biti učitan sa diska u RAM, a zatim u VRAM. To ume da stvori mali "hiccup" dok se tile prebaci i dekodira. Ako SSD/HDD ili memorijski bandwidth nisu dovoljno brzi, stutter postaje primetniji.
  • GPU feedback loop.
    UE koristi tzv. feedback buffer – GPU javlja CPU-u koji tile-ovi fale, pa tek u sledećem frejmu (ili nekoliko njih kasnije) dolazi novi tile. To znači da tokom par frejmova možeš da vidiš zamućenu teksturu ili da osetiš sitno kašnjenje dok se detalji „popune“.
  • Asinhrono učitavanje nije uvek savršeno.
    Iako VT koristi asinhroni streaming, u nekim slučajevima (velike scene, puno unikatnih tekstura, nagli okret kamere) može doći do mikro-pauze jer sistem prioritizuje koje tile-ove da povuče i popuni.
Ukratko ovo je glavni razlog zbog čega se u nekim Unreal igrama javljao takozvani problem seckanja (stutter) kao i problem izoštavanja tekstura. Developeri nisu propisno uradili prenos i optimizaciju šejdera. Ako je igra inače dobro optimizovana u budžetu će uvek ostati malo dodatnog prostora koji se bez problema i dodatnih podešavanja može iskoristi za repozicioniranje kamere. Ukoliko to nije slučaj, neophodno je uključiti VT i napraviti rebalans u delu sa šejderima. Ni to nije neki problem, zato što se VT može kombinovati sa drugim master materijalima koji koriste klasičan metod gde se odmah učitavaju pune teksture. Ako se ovo dobro odradi i pronađe odgovarajući balans, u scenama neće biti nikakvog primetnog kašnjenja prilikom učitavanja VT-a. Kašnjenje je inače teže primetiti u igrama iz 3. lica zato što je kamera dalje i nivo detalja je inače nešto manji. Takođe je teže primetiti kašnjenje tekstura na elementima kašto što je rastinje (foliage) koje se pomera, što znači da je ovde situacija prilično zahvalana za upotrebu VT-a.

Neki moj utisak je da će buduće Unreal igre biti prilično dobro optimizovane zato što je ovaj problem u fokusu već neko vreme i neki moj utisak je da je solidan broj ljudi pohvatao do sada šta tačno treba da se tu uradi kako bi sve radilo valjano. Problematika jeste specifična, ali daleko od toga da je to rocket science, što znači da ovo može svako da skonta uz malo redovne prakse.
 
Poslednja izmena:
Vrh Dno