De ce trebuie să cheltuiți mai mult pe un computer pentru a juca decât pe o consolă

Vechea ta consolă de acum ani rulează anumite jocuri mult mai bine decât computerul tău mai nou și mai modern. De ce se întâmplă asta? De aceea vă vom prezenta conceptul de Apel la extragere, care are de-a face cu slaba optimizare a jocurilor pe calculator comparativ cu alte sisteme. Și care este motivul acestei tendințe generale?

Multe jocuri video de astăzi sunt open world, asta înseamnă că în loc să avem o serie de părți pe care trebuie să le depășim secvențial, ceea ce avem este o hartă unificată în care se întâmplă mai multe lucruri în același timp. A trebui să calculați toate elementele în același timp ar avea ca rezultat sufocarea procesorului central. Deci harta, deși este unificată, este împărțită în mici secțiuni cu un ecran de încărcare unde sau o cinematică la mijloc. Ceea ce permite procesorului nostru să încarce doar ceea ce este în acea zonă și să arunce restul elementelor. Totuși, de multe ori există optimizări, nu sunt bine făcute.

De ce trebuie să cheltuiți mai mult pe un computer pentru a juca decât pe o consolă

Ce este un Draw Call și cum afectează acesta performanța jocurilor?

Problema este că Procesor nu are un concept vizual despre ceea ce se vede și ce nu se vede, pur și simplu are o listă de obiecte pe care trebuie să le rezolve interacțiunea cu restul de la un cadru la altul. Pentru fiecare obiect de pe scenă, ceea ce se face este ceea ce numim a Draw Call. Adică folosiți un API grafic precum DirectX, OpenGL sau Vulkan astfel încât placa grafică să deseneze respectivul obiect pe scenă . Deci generarea graficii jocului începe întotdeauna în procesorul central.

Instanțe Draw Loturi de apeluri

Pentru a reduce costurile, ceea ce se face astăzi este ca fiecare Draw Call să se refere la „un grup de poligoane care au aceleași proprietăți”. Datorită acestui fapt, dacă, de exemplu, trebuie să desenăm iarba unei pajiști, nu avem nevoie de un apel la GPU prin API pentru fiecare fir de iarbă, dar îl putem unifica. Aceasta se numește loturi sau ambalate în spaniolă. Faptul de a le unifica intr-un singur grup are sens, din moment ce nu este acelasi lucru sa astepti mai multe expedieri la rand unde procesorul trebuie sa se opreasca pentru fiecare dintre ele si sa le trimita la GPU, decat sa faci o singura expediere. si uita.

De exemplu, în imaginea din această secțiune putem observa un număr mare de bile care folosesc aceeași modelare, dar culori diferite. Putem face fiecăreia dintre ele un apel către API-ul grafic, care sunt toate dintr-o culoare, sau le putem grupa pe toate într-o singură postare.

Cum influențează utilizarea unui API grafic sau a altuia?

Dacă un procesor trebuie să efectueze o mulțime de apeluri de extragere, atunci cea mai bună soluție este să preia și să împarți munca între mai multe nuclee. Cu toate acestea, acest lucru nu este posibil, deoarece lista de desene create de CPU este doar una. Cum se reduce depășirea costurilor? Eliminați toate apelurile de sistem care pot funcționa independent de desenarea scenei și plasați-le în liste separate. Aceasta înseamnă că pot fi transportate de nuclee diferite. Cu toate acestea, lista de afișare va rula întotdeauna pe același nucleu.

Asincrono Draw Call API

Faptul de a separa grafica și calculul în două părți diferite este ceva ce am văzut în DirectX 12 și Vulkan. Dacă jocul rulează în modul DirectX 11 sau mai devreme, sau alternativ în OpenGL. Deci, suma Draw Call va fi mai mare, deși o mare parte din aceasta va fi pentru calcul și nu pentru grafică. La un nivel simplist, acestea nu sunt altceva decât solicitări ca placa grafică să efectueze o serie de calcule. Dar este important pentru a reduce numărul de apeluri către grafic, deoarece în funcție de tipul de sistem pe care rulează jocul, cantitatea de Draw Call poate fi o problemă pentru performanța sa.

Apelul Draw și placa grafică

De obicei, este unitatea DMA din interiorul GPU care copiază listele de afișare din sistem RAM la RAM-ul plăcii grafice (VRAM) utilizând interfața PCI Express. Cu toate acestea, Resizable BAR permite procesorului central să facă opusul, trimițând datele direct către grafic. Totuși, ideal ar fi un model de memorie unificată pentru acces, dar astazi nu avem asta pe PC sau console.

sacrificarea

Unul dintre lucrurile pe care trebuie să le facă placa grafică este să determine vizibilitatea obiectelor, asta înseamnă că trebuie să elimine toate obiectele care nu se văd în acel cadru. Adică: cele care sunt prea departe, cele care sunt în afara camerei sau cele care sunt acoperite de alte obiecte mai mari. Procesorul central nu știe dacă aceste obiecte îndeplinesc sau nu aceste condiții, pur și simplu știe că sunt pe scenă și GPU-ul plăcii grafice se va ocupa de efectuarea procesului de aruncare.

De ce jocurile de pe PC par să fie mai puțin optimizate?

De obicei, dacă framerate este suficient de mare, atunci dezvoltatorii jocului nu se vor îngrijora dacă numărul de apel la extragere este prea mare. Aceasta este o problemă pe PC, deoarece hardware-ul evoluează constant și tinde să lipsească de optimizare. Pe console, există tendința de a reduce numărul de apeluri API pentru a menține rata de cadre ridicată și stabilă.

gameplay Resident Evil 2 remake 4k 60 fps

În mod curios, jocurile care sunt cel mai bine optimizate sub acest aspect sunt jocurile ca serviciu, deși nu toate, motivul este că se bazează pe lăsarea oamenilor să se joace gratuit și sunt finanțate prin plăți sporadice de la utilizatorii lor. Pentru acestea este extrem de important să avem cea mai mare cotă de piață posibilă. Ceea ce a dus la o dominație a acestei clase de titluri pe piață. Simplu și simplu majoritatea publicului le poate executa fără probleme. Pe de altă parte, jocurile cu o încărcare grafică mare din cauza optimizării proaste pe PC pot necesita de două ori mai multă putere decât pe consolă pentru a oferi aceeași calitate.

Acest lucru nu se întâmplă și pe PC, deoarece s-ar putea ca un studio responsabil cu conversia unui joc într-o anumită consolă să se încadreze în aceeași problemă a lipsei de optimizare. Deci, în cele din urmă, mare parte din vina pentru acel joc care nu funcționează bine pe computer este umană și nu hardware-ul pe care îl aveți.

Realitate

Odată explicate motivele tehnice, trebuie să vorbim despre politicienii care influențează mult mai mult decât crezi. Producătorii de console au departamente de calitate care testează jocurile pentru consolele lor și văd că funcționează corect. Cu toate acestea, atunci când un titlu este foarte important, acest lucru duce la o cursă contra cronometru care se traduce în patch-uri din ziua 1 și chiar dezastre precum Cyberpunk 2077.

Asta nu există pe PC, nici Epic Store, nici Valve cu Aburi au un proces de calitate care atestă că jocurile sunt bine optimizate. Nici tu, cu multitudinea de configurații hardware diferite de pe piață. De ce să vă faceți griji că computerul de azi nu va rula bine un joc, când va fi de mâine?