Setările grafice în jocuri: ce afectează acestea? Jurnalism de investigație: trucuri ATI cu optimizarea filtrarii texturii.

Acum vă voi arăta cum să configurați partea grafică în Counter-Strike: Global Offensive prin interfața de utilizator a jocului și cum să influențați FPS-ul în acest fel. Acesta este primul articol și pentru majoritatea jucătorilor va fi destul de previzibil, cu câteva completări mici și ciudate (în mod surprinzător, nu toate setările ar trebui reduse la valorile minime). Setarea fps-ului în CS GO este un subiect destul de amplu și voluminos, așa că vom aborda sistematic creșterea lui, sub forma unei serii de articole. Mai întâi, să încercăm să-l configuram cu mijloace simple, ușor de înțeles, iar după aceea vom trece la comenzile consolei. Și încă un moment, pentru că Dacă ați ajuns la acest articol cel mai probabil dintr-un motor de căutare, atunci implicit vom presupune că computerul pe care sunt configurate toate acestea „nu rulează jocul în mod normal” și, în același timp, toate driverele sunt actualizate, defragmentarea este făcută , sistemul de operare este lipsit de servicii inutile și frumusețe, nu există viruși și chiar mai mult. Dacă este cazul, atunci să mergem.

Comanda pentru a afișa fps în CS: GO

În consolă, tastați una dintre comenzi:
  • cl_showfps 1
  • graficul net 1
  • sau în Steam, selectați elementul de meniu Aburi - Setare- fila " În joc" - Afișarea ratei cadrelor


Cum să crești fps

Înainte de a începe să modificați parametrii care afectează grafica, mai scrieți o comandă în consolă:
fps_max 0 sau fps_max „monitorizează rata de reîmprospătare”
Primul, dacă vrei să înțelegi și să vezi cât FPS poți avea în CS:GO.
Și al doilea, dacă vrei să folosești cu înțelepciune puterea prietenului tău de fier. Adică veți potrivi rata de reîmprospătare a ecranului și rata de cadre generată de placa video. Atunci nu va permite generarea de fps „inactiv”. Cu alte cuvinte. tot nu vei vedea mai multe cadre create de placa video decât are timp să arate monitorul tău. (Sper ca am explicat clar).
Al doilea parametru are un plus material și tangibil: dacă FPS-ul tău este mai mare decât frecvența monitorului, atunci în acest fel nu vei încărca complet placa video, va face mai puțin zgomot, se va încălzi mai puțin și va avea o anumită marjă de performanță, în cazul unei schimbări bruște și dinamice în joc și atunci probabil vor exista reduceri mai puțin neplăcute. Dar există un dezavantaj: unor jucători nu le place capacitatea de răspuns a mouse-ului în acest mod. Așa că vă las alegerea.
Am făcut-o pentru mine fps_max 0, pentru că am vrut să înțeleg cât de mult pot crește fps-ul.

Setări video în CS:GO


Voi descrie doar acei parametri care afectează cu adevărat FPS-ul.

  1. Permisiune- Cred că mulți dintre voi știți că profesioniștii joacă fie la rezoluție 1024x768, fie la 800x600. Și asta pe monitoare mari! Acest parametru afectează foarte mult FPS-ul. Diferența mea între 1280x960 și 1024x768 a fost de 14 cadre, iar între 1280x960 și 800x600 - 23 fps.
  2. Modul de afișare- Se potrivește în cazul nostruPe ecran complet. Dacă este setat Ecran complet în fereastrăatunci fps-ul va scadea.
  3. Modul de economisire a energiei - OffConfigurarea este în principal pentru laptopuri. Dar dacă o pui caPe, atunci fps-ul va scădea.
  4. Calitatea generală a umbrei- În general, practic nu afectează FPS-ul. Pentru plăcile video medii și de vârf, cu siguranță nu există o mare diferență întreFoarte josși Înalt.În plus, la rezoluție scăzută, diferențele vizuale sunt cu greu sesizabile, mai are rost, atunci, frumusețea? Am pusFoarte jos.
  5. Detalierea modelelor și texturilor- Această setare este resimțită în principal doar de placa video. Prin urmare, dacă are suficientă memorie, atunci pune-o la discreția ta. Cu cei 256 MB ai mei, am avut o diferență de 2 fps întreScăzutși Înalt.
  6. Detaliu efect- afectează distanța de desen și calitatea efectelor. Deci, aceste efecte apar de obicei atunci când există un „lot” puternic, o grămadă de explozii, scântei, foc și multă lume. Dacă în astfel de momente FPS-ul tău scade foarte mult, atunci încearcă să scazi acest parametru. În toate celelalte cazuri -Înalt.Diferența mea a fost de 1 fps.
  7. Detaliu shader- La alegerea valorii maxime, fps-ul meu a scăzut cu 3 puncte. Deși această setare este responsabilă pentru calitatea umbrelor și a luminii, este puțin probabil ca toată lumea să aibă un astfel de efect. Prin urmare, jucați-vă cu acești parametri în ambele direcții, în special pentru cei care au o vidyuha slabă.
  8. Procesare multi-core- în luptele cu un număr mare de jucători, se observă un câștig de performanță. Pentru mine a fost 6 fps. Acest mod folosește mai multe nuclee de procesor în același timp, ceea ce în mod ideal ar trebui să afecteze reducerea întârzierilor și a frânelor. Dar asta e in teorie. În practică, există excepții. Asigurați-vă că vă jucați cu această valoare. PlecămPe
  9. Modul anti-aliasing cu mai multe mostre- Îndepărtează efectul „deformat” asupra obiectelor din CS:GO. Toată sarcina cade pe placa video. Am o diferență între dezactivat și 4xMSAA a fost de 7 fps. Pentru cei interesați, acest mod (MSAA) oferă o calitate grafică puțin mai proastă, dar oferă o economie uriașă de putere de procesare în comparație cu predecesorul său SSAA.
  10. Modul de filtrare a texturii- Pentru posesorii de plăci video slabe, se recomandă biliniar. În rest, trilinear este potrivit. Deoarece nu există nicio diferență notabilă în performanță. Când alegeți filtrarea anizotropă, fiți pregătit să pierdeți 1-2-3 fps.
  11. Anti-aliasing cu FXAA- Un alt mod de netezire Rapid aproxXImate Anti-Aliasing, nu este clar de ce a fost mutat într-un paragraf separat, dar este considerată o soluție mai rapidă și mai productivă în comparație cu MSAA, dar pe placa mea video ATI fps-ul a scăzut cu 13 valori. (Nu știu cu ce se leagă asta, poate cu șoferul).
  12. Sincronizare verticală- în acest mod, FPS maxim este legat de rata de reîmprospătare a monitorului. Pe plăcile grafice superioare și medii, le economisește resursele și creează mai puțin zgomot, deoarece se încălzesc mai puțin.
  13. neclaritate de miscare- netezește imaginea când mouse-ul se mișcă brusc. Nu afectează prea mult FPS.

Acesta a fost cel mai simplu și mai accesibil mod de a reduce fps-ul în Counter-Strike: Global Offensive. Nu este nimic inovator aici, spre deosebire de ceea ce este indicat în videoclipul de mai jos.

Jocurile moderne folosesc din ce în ce mai multe efecte grafice și tehnologii care îmbunătățesc imaginea. În același timp, dezvoltatorii de obicei nu se obosesc să explice exact ce fac. Când nu este disponibil cel mai productiv computer, unele dintre capabilități trebuie sacrificate. Să încercăm să vedem ce înseamnă cele mai comune opțiuni grafice pentru a înțelege mai bine cum să eliberați resursele PC cu consecințe minime pentru grafică.

Filtrare anisotropic
Când orice textură este afișată pe monitor care nu este în dimensiunea inițială, este necesar să introduceți pixeli suplimentari în ea sau, dimpotrivă, să eliminați pe cei suplimentari. Acest lucru se face folosind o tehnică numită filtrare.


triliniar

anizotrop

Filtrarea biliniară este cel mai simplu algoritm și necesită mai puțină putere de calcul, dar oferă și cel mai prost rezultat. Trilinear adaugă claritate, dar totuși generează artefacte. Filtrarea anizotropă este considerată cea mai avansată metodă care elimină distorsiunile vizibile pe obiectele care sunt puternic înclinate față de cameră. Spre deosebire de cele două metode anterioare, combate cu succes efectul de aliasing (atunci când unele părți ale texturii sunt neclare mai mult decât altele, iar granița dintre ele devine clar vizibilă). Când se utilizează filtrarea biliniară sau triliniară, textura devine din ce în ce mai neclară odată cu creșterea distanței, în timp ce filtrarea anizotropă nu are acest dezavantaj.

Având în vedere cantitatea de date procesate (și pot exista multe texturi de înaltă rezoluție pe 32 de biți într-o scenă), filtrarea anizotropă este deosebit de solicitantă pentru lățimea de bandă a memoriei. Puteți reduce traficul în primul rând datorită compresiei texturii, care este acum folosită peste tot. Anterior, când se practica mai rar, iar lățimea de bandă a memoriei video era mult mai mică, filtrarea anizotropă reducea semnificativ numărul de cadre. Pe plăcile video moderne, aproape că nu are niciun efect asupra fps.

Filtrarea anizotropă are o singură setare a factorului de filtru (2x, 4x, 8x, 16x). Cu cât este mai sus, cu atât texturile arată mai clare și mai naturale. De obicei, cu o valoare mare, artefactele mici sunt vizibile doar pe cei mai exteriori pixeli ai texturilor înclinate. Valorile de 4x și 8x sunt de obicei suficiente pentru a scăpa de partea leului de distorsiuni vizuale. Interesant este că atunci când treceți de la 8x la 16x, degradarea performanței va fi destul de mică chiar și în teorie, deoarece doar un număr mic de pixeli nefiltrați anterior vor avea nevoie de procesare suplimentară.

Shaders
Shaders sunt programe mici care pot efectua anumite manipulări pe o scenă 3D, cum ar fi schimbarea luminii, aplicarea texturilor, adăugarea de post-procesare și alte efecte.

Shaderele sunt împărțite în trei tipuri: vertex (Vertex Shader) operează cu coordonate, geometric (Geometry Shader) poate procesa nu numai vârfuri individuale, ci și forme geometrice întregi, constând din maximum 6 vârfuri, pixeli (Pixel Shader) lucrează cu puncte individuale. pixeli și parametrii acestora.

Umbritoarele sunt folosite în principal pentru a crea efecte noi. Fără ele, setul de operațiuni pe care dezvoltatorii le-ar putea folosi în jocuri este foarte limitat. Cu alte cuvinte, adăugarea de shadere a făcut posibilă obținerea de noi efecte care nu erau incluse implicit în placa video.

Shaders lucrează foarte productiv în paralel, motiv pentru care adaptoarele grafice moderne au atât de multe procesoare de flux, care sunt numite și shaders.

Maparea paralaxei
Paralax Mapping este o versiune modificată a binecunoscutei tehnici de bumpmapping folosită pentru a reliefa texturile. Maparea paralaxă nu creează obiecte 3D în sensul obișnuit al cuvântului. De exemplu, o podea sau un perete dintr-o scenă de joc va arăta dur, rămânând de fapt complet plat. Efectul de relief aici se realizează numai prin manipulări cu texturi.

Obiectul original nu trebuie să fie plat. Metoda funcționează pe diferite obiecte de joc, dar utilizarea sa este de dorit doar în cazurile în care înălțimea suprafeței se modifică fără probleme. Picăturile ascuțite sunt procesate incorect, iar artefactele apar pe obiect.

Maparea paralaxă economisește semnificativ resursele de calcul ale unui computer, deoarece atunci când se utilizează obiecte analogice cu o structură 3D atât de detaliată, performanța adaptoarelor video nu ar fi suficientă pentru a reda scenele în timp real.

Efectul se aplică cel mai adesea pe pavaje de piatră, pereți, cărămizi și plăci.

Anti-Aliasing
Înainte de apariția DirectX 8, anti-aliasing în jocuri se făcea folosind SuperSampling Anti-Aliasing (SSAA), cunoscut și sub numele de Full-Scene Anti-Aliasing (FSAA). Utilizarea sa a dus la o scădere semnificativă a performanței, așa că odată cu lansarea lui DX8 a fost imediat abandonat și înlocuit cu Multisample Anti-Aliasing (MSAA). În ciuda faptului că această metodă a dat rezultate mai proaste, a fost mult mai productivă decât predecesorul ei. De atunci, au apărut algoritmi mai avansați, precum CSAA.

AA oprit AA activat

Având în vedere că în ultimii câțiva ani, performanța plăcilor video a crescut considerabil, atât AMD, cât și NVIDIA au returnat suportul pentru tehnologia SSAA acceleratoarelor lor. Cu toate acestea, nici acum nu va fi posibil să îl utilizați în jocurile moderne, deoarece numărul de cadre/e va fi foarte mic. SSAA va fi eficient doar în proiecte din anii precedenți, sau în cei actuali, dar cu setări modeste pentru alți parametri grafici. AMD a implementat suport SSAA doar pentru jocurile DX9, dar în NVIDIA SSAA funcționează și în modurile DX10 și DX11.

Principiul netezirii este foarte simplu. Înainte ca cadrul să fie afișat pe ecran, anumite informații sunt calculate nu în rezoluție nativă, ci mărite și un multiplu de doi. Apoi rezultatul este redus la dimensiunea necesară, iar apoi „scara” de-a lungul marginilor obiectului devine mai puțin vizibilă. Cu cât imaginea originală și factorul de netezire sunt mai mari (2x, 4x, 8x, 16x, 32x), cu atât mai puțini pași vor fi pe modele. MSAA, spre deosebire de FSAA, netezește doar marginile obiectelor, ceea ce economisește semnificativ resursele plăcii grafice, dar această tehnică poate lăsa artefacte în interiorul poligoanelor.

Anterior, Anti-Aliasing a redus întotdeauna semnificativ fps-ul în jocuri, dar acum afectează ușor numărul de cadre și uneori nu afectează deloc.

teselație
Folosind teselația într-un model computerizat, numărul de poligoane este crescut de un număr arbitrar de ori. Pentru a face acest lucru, fiecare poligon este împărțit în mai multe noi, care sunt situate aproximativ la fel ca suprafața originală. Această metodă facilitează creșterea detaliilor obiectelor 3D simple. În acest caz, însă, încărcarea computerului va crește și, în unele cazuri, nici micile artefacte nu pot fi excluse.

La prima vedere, teselarea poate fi confundată cu cartografierea Parallax. Deși acestea sunt efecte complet diferite, deoarece teselația schimbă de fapt forma geometrică a obiectului și nu doar simulează relieful. În plus, poate fi folosit pentru aproape orice obiect, în timp ce utilizarea cartografierii Parallax este foarte limitată.

Tehnologia teselării este cunoscută în cinema încă din anii 80, dar a devenit abia recent suportată în jocuri, mai exact după ce acceleratoarele grafice au atins în sfârșit nivelul necesar de performanță la care poate fi realizată în timp real.

Pentru ca jocul să folosească teselarea, este nevoie de o placă grafică care acceptă DirectX 11.

Sincronizare verticală

V-Sync este sincronizarea cadrelor de joc cu rata de reîmprospătare verticală a monitorului. Esența sa constă în faptul că un cadru de joc complet calculat este afișat pe ecran în momentul în care imaginea este actualizată pe acesta. Este important ca următorul cadru (dacă este deja gata) să apară, de asemenea, nu mai târziu și nu mai devreme de când ieșirea celui precedent se încheie și începe următorul.

Dacă rata de reîmprospătare a monitorului este de 60 Hz, iar placa grafică are timp să redeze o scenă 3D cu cel puțin același număr de cadre, atunci fiecare reîmprospătare a monitorului va afișa un nou cadru. Cu alte cuvinte, cu un interval de 16,66 ms, utilizatorul va vedea pe ecran o actualizare completă a scenei jocului.

Trebuie înțeles că atunci când sincronizarea verticală este activată, fps-ul din joc nu poate depăși rata de reîmprospătare verticală a monitorului. Dacă numărul de cadre este mai mic decât această valoare (în cazul nostru, mai mic de 60 Hz), atunci pentru a evita pierderile de performanță, este necesar să activați triplu buffering, în care cadrele sunt calculate în avans și stocate în trei buffere separate. , ceea ce le permite să fie trimise mai des pe ecran.

Sarcina principală a sincronizării verticale este de a elimina efectul unui cadru deplasat care apare atunci când partea inferioară a afișajului este umplută cu un cadru, iar partea superioară este umplută cu un altul, deplasat față de cel precedent.

post procesare
Acesta este numele general al tuturor efectelor care sunt aplicate unui cadru deja terminat al unei scene 3D complet redate (cu alte cuvinte, unei imagini bidimensionale) pentru a îmbunătăți calitatea imaginii finale. Post-procesarea folosește pixel shaders și este folosită în cazurile în care efectele suplimentare necesită informații complete despre întreaga scenă. Izolat de obiectele 3D individuale, astfel de tehnici nu pot fi aplicate fără apariția unor artefacte în cadru.

Interval dinamic ridicat (HDR)
Un efect adesea folosit în scenele de joc cu iluminare contrastantă. Dacă o zonă a ecranului este foarte luminoasă și alta este foarte întunecată, o mulțime de detalii din fiecare zonă se pierde și arată monoton. HDR adaugă mai multe gradații cadrului și vă permite să detaliați scena. Pentru a-l folosi, de obicei trebuie să lucrați cu o gamă mai largă de nuanțe decât o poate oferi precizia standard de 24 de biți. Precalculele au loc cu o precizie crescută (64 sau 96 de biți) și doar în etapa finală imaginea este ajustată la 24 de biți.

HDR este adesea folosit pentru a implementa efectul de adaptare a vederii atunci când eroul din jocuri părăsește un tunel întunecat pe o suprafață bine luminată.

a inflori
Bloom este adesea folosit împreună cu HDR și are, de asemenea, o rudă destul de apropiată de Glow, motiv pentru care aceste trei tehnici sunt adesea confundate.

Bloom simulează efectul care poate fi văzut atunci când filmați scene foarte luminoase cu camerele convenționale. În imaginea rezultată, lumina intensă pare să ocupe mai mult volum decât ar trebui și „urcă” pe obiecte chiar dacă se află în spatele lor. Când utilizați Bloom, pe marginile obiectelor pot apărea artefacte suplimentare sub formă de linii colorate.

Granul de film
Grainul este un artefact care apare la televizorul analogic cu un semnal slab, pe casetele video magnetice vechi sau pe fotografii (în special imaginile digitale realizate în lumină slabă). Jucătorii dezactivează adesea acest efect, deoarece strică imaginea într-o anumită măsură și nu o îmbunătățește. Pentru a înțelege acest lucru, puteți rula Mass Effect în fiecare dintre moduri. În unele filme de groază, precum Silent Hill, zgomotul de pe ecran, dimpotrivă, adaugă atmosferă.

neclaritate de miscare
Motion Blur Efectul de estompare a imaginii la mișcarea rapidă a camerei. Poate fi folosit cu succes atunci când scenei trebuie să primească mai multă dinamică și viteză, prin urmare este solicitat în special în jocurile de curse. La împușcători, folosirea blurului nu este întotdeauna percepută fără ambiguitate. Aplicarea corectă a Motion Blur poate adăuga calitate cinematografică la ceea ce se întâmplă pe ecran.

Efectul va ajuta, de asemenea, la mascarea ratelor de cadre scăzute, dacă este necesar, și la adăugarea netedă a jocului.

SSAO
Ocluzia ambientală este o tehnică folosită pentru a adăuga fotorealism unei scene prin crearea unei iluminari mai realiste a obiectelor din ea, care ține cont de prezența altor obiecte în apropiere cu propriile caracteristici de absorbție și reflectare a luminii.

Screen Space Ambient Occlusion este o versiune modificată a Ambient Occlusion și, de asemenea, simulează iluminarea indirectă și umbrirea. Apariția SSAO s-a datorat faptului că la nivelul actual de performanță GPU, Ambient Occlusion nu a putut fi folosit pentru a reda scene în timp real. Pentru o performanță sporită în SSAO, trebuie să plătiți cu o calitate mai scăzută, dar chiar și aceasta este suficient pentru a îmbunătăți realismul imaginii.

SSAO funcționează după o schemă simplificată, dar are multe avantaje: metoda nu depinde de complexitatea scenei, nu folosește RAM, poate funcționa în scene dinamice, nu necesită preprocesare a cadrelor și încarcă doar grafica adaptor fără a consuma resurse CPU.

Cel shading
Jocurile cu efect de Cel shading se fac încă din anul 2000, iar în primul rând au apărut pe console. Pe computer, această tehnică a devenit foarte populară abia după câțiva ani. Cu umbrirea Cel, fiecare cadru este aproape transformat într-un desen desenat manual sau într-un fragment dintr-un desen animat.

Benzi desenate sunt create într-un stil similar, așa că tehnica este adesea folosită în jocurile legate de acestea. Dintre cele mai recente lansări cunoscute, putem numi shooter-ul Borderlands, unde umbrirea Cel este vizibilă cu ochiul liber.

Caracteristicile tehnologiei sunt utilizarea unui set limitat de culori, precum și absența degradeurilor netede. Denumirea efectului provine de la cuvântul Cel (celuloid), adică un material transparent (film) pe care sunt desenate filme de animație.

Adancimea terenului
Adâncimea câmpului este distanța dintre marginile apropiate și îndepărtate ale spațiului, în care toate obiectele vor fi focalizate, în timp ce restul scenei va fi neclară.

Într-o anumită măsură, adâncimea câmpului poate fi observată pur și simplu prin focalizarea pe un obiect care se află aproape în fața ochilor. Totul din spatele lui se va estompa. Opusul este și adevărat: dacă te concentrezi pe obiecte îndepărtate, atunci totul în fața lor se va dovedi a fi neclar.

Puteți vedea efectul adâncimii de câmp într-o formă hipertrofiată în unele fotografii. Acest grad de neclaritate este adesea încercat să fie simulat în scenele 3D.

În jocurile care utilizează Profunzimea câmpului, jucătorul are de obicei un sentiment mai puternic al prezenței. De exemplu, uitându-se undeva prin iarbă sau tufișuri, vede în focalizare doar mici fragmente ale scenei, ceea ce creează iluzia prezenței.

Impactul asupra performanței

Pentru a afla cum afectează includerea anumitor opțiuni performanța, am folosit benchmark-ul pentru jocuri Heaven DX11 Benchmark 2.5. Toate testele au fost efectuate pe un sistem Intel Core2 Duo e6300, GeForce GTX460 la o rezoluție de 1280×800 pixeli (cu excepția sincronizării verticale, unde rezoluția a fost de 1680×1050).

După cum sa menționat deja, filtrarea anizotropă nu are aproape niciun efect asupra numărului de cadre. Diferența dintre anizotropia dezactivată și 16x este de doar 2 cadre, așa că vă recomandăm să o setați întotdeauna la maxim.

Anti-aliasing în Heaven Benchmark a redus fps-ul mai mult decât ne așteptam, mai ales în cel mai greu mod 8x. Cu toate acestea, deoarece 2x este suficient pentru o îmbunătățire vizibilă a imaginii, vă sfătuim să alegeți această opțiune dacă este incomod să jucați la cele mai mari.

Teselarea, spre deosebire de parametrii anteriori, poate lua o valoare arbitrară în fiecare joc individual. În Heaven Benchmark, imaginea se deteriorează semnificativ fără ea, iar la nivel maxim, dimpotrivă, devine puțin nerealist. Prin urmare, valorile intermediare ar trebui setate la moderate sau normale.

A fost aleasă o rezoluție mai mare pentru sincronizarea verticală, astfel încât fps-ul să nu fie limitat de rata de reîmprospătare verticală a ecranului. După cum era de așteptat, numărul de cadre de-a lungul aproape întregului test cu sincronizarea activată a fost în mod clar la aproximativ 20 sau 30 de cadre/s. Acest lucru se datorează faptului că sunt afișate simultan cu reîmprospătarea ecranului și la o rată de reîmprospătare de 60 Hz, acest lucru se poate face nu cu fiecare puls, ci numai cu fiecare secundă (60/2 = 30 fps) sau a treia ( 60/3 = 20 fps).cadre/s). Când V-Sync a fost dezactivat, numărul de cadre a crescut, dar artefacte caracteristice au apărut pe ecran. Tripla tamponare nu a avut un efect pozitiv asupra netedei scenei. Poate că acest lucru se datorează faptului că în setările driverului plăcii video nu există nicio opțiune de a forța dezactivarea tamponului, iar dezactivarea normală este ignorată de benchmark și încă folosește această funcție.

Dacă Heaven Benchmark ar fi un joc, atunci la setări maxime (1280×800; AA 8x; AF 16x; Tessellation Extreme) ar fi incomod să îl joci, deoarece 24 de cadre clar nu sunt suficiente pentru asta. Cu o pierdere minimă de calitate (1280×800; AA 2x; AF 16x, Tessellation Normal), se poate obține un 45 fps mai acceptabil.



Din cauza numeroaselor întrebări și dispute legate de FPS în testele pentru plăcile video prezentate pe site-ul nostru, am decis să ne oprim pe această problemă mai detaliat și să vă vorbim despre setările jocului.

Toată lumea știe că jocurile moderne au suficiente setări grafice pentru a îmbunătăți calitatea imaginii sau a îmbunătăți performanța în jocul în sine. Luați în considerare setările de bază care sunt prezente în aproape toate jocurile.

Rezolutia ecranului

Poate că acest parametru este unul dintre principalii care afectează atât calitatea imaginii, cât și performanța jocului. Acest parametru depinde numai de matricea laptopului și de suportul acestei rezoluții de către joc (de la 640x480 la 1920x1080). Totul este simplu și proporțional aici, cu cât rezoluția este mai mare, cu atât imaginea este mai clară și încărcarea sistemului este mai mare și, în consecință, invers.

Calitate grafică

Aproape fiecare joc are setările sale grafice implicite pe care le puteți utiliza. De obicei, acestea sunt „scăzute”, „medie”, „mare”, iar în unele jocuri există o coloană „ultra”. Aceste setări au deja un set de setări (calitate texturii, anti-aliasing, filtrare anizotropă, umbre... și multe altele) iar utilizatorul poate alege profilul care se potrivește cel mai bine configurației computerului său. Cred că totul este clar aici, cu cât setarea grafică este mai bună, cu atât jocul arată mai realist și, desigur, cerințele pentru dispozitiv cresc. Mai jos puteți viziona videoclipul și puteți compara calitatea imaginii în toate profilurile.


În continuare, vom lua în considerare mai detaliat setările din jocuri separat.

Calitatea texturii

Această setare este responsabilă pentru rezoluția texturii din joc. Cu cât rezoluția texturilor este mai mare, cu atât imaginea pe care o vedeți este mai clară și mai detaliată, iar sarcina pe GPU va fi mai mare.

Calitate umbră

Această setare controlează detaliile umbrelor. În unele jocuri, umbrele pot fi dezactivate cu totul, ceea ce va oferi o creștere semnificativă a performanței, dar imaginea nu va fi la fel de saturată. La setări înalte, umbrele vor fi mai realiste și mai moi.

Calitatea efectului

Acest parametru afectează calitatea și intensitatea efectelor, cum ar fi fumul, exploziile, împușcăturile, praful și multe altele. În diferite jocuri, această setare afectează în moduri diferite, în unele diferența dintre setările scăzute și ridicate este foarte greu de observat, iar în unele diferențele sunt evidente. Efectul acestui parametru asupra performanței depinde de optimizarea efectelor din joc.

Calitatea mediului

Un parametru responsabil pentru complexitatea geometrică a wireframes-urilor din obiectele din lumea de joc înconjurătoare, precum și pentru detaliile acestora (diferența este vizibilă mai ales la obiectele îndepărtate). La setări scăzute, detaliile obiectelor (case, copaci, mașini etc.) se pot pierde. Obiectele îndepărtate devin aproape plate, formele rotunjite nu sunt chiar rotunde și aproape fiecare obiect este lipsit de câteva detalii mici.

Acoperire a terenului

În unele jocuri, este denumit „Densitatea ierbii” sau are alte nume similare. Responsabil pentru cantitatea de iarbă, tufișuri, crengi, pietre și alte resturi de pe pământ. În consecință, cu cât parametrul este mai mare, cu atât pământul arată mai saturat cu diferite obiecte.

Filtrare anisotropic

Când o textură este redată la o altă dimensiune decât dimensiunea inițială, pixeli suplimentari sunt inserați sau sunt eliminați pixeli suplimentari. Pentru asta este filtrarea. Există trei tipuri de filtrare: biliniară, triliniară și anizotropă. Cea mai simplă și mai puțin solicitantă este filtrarea biliniară, dar rezultatul este cel mai rău. Nici filtrarea triliniară nu vă va oferi rezultate bune, deși adaugă definiție, generează și artefacte.

Cea mai bună filtrare este anizotropă, care elimină semnificativ distorsiunile texturilor care sunt puternic înclinate față de cameră. Pentru plăcile video moderne, această setare nu are aproape niciun efect asupra performanței, dar îmbunătățește semnificativ claritatea și aspectul natural al texturii.

Netezire

Principiul anti-aliasing este următorul: înainte ca imaginea să fie afișată pe ecran, aceasta este calculată nu în rezoluția sa nativă, ci într-o creștere de două ori. În timpul ieșirii, imaginea este redusă la dimensiunea dorită, iar neregularitățile de la marginile obiectului devin mai puțin vizibile. Cu cât imaginea originală este mai mare și factorul de netezire (x2, x4, x8, x16), cu atât mai puțină rugozitate va fi observată pe obiecte. De fapt, netezirea în sine este necesară pentru a scăpa pe cât posibil de „efectul de scară” (dinții de-a lungul marginilor texturii).

Există diferite tipuri de anti-aliasing, cele mai comune în jocuri sunt FSAA și MSAA. Full Screen Anti-Aliasing (FSAA) este utilizat pentru a elimina deformarea imaginilor pe tot ecranul. Dezavantajul acestui anti-aliasing este procesarea întregii imagini, care desigur îmbunătățește semnificativ calitatea imaginii, dar necesită multă putere de procesare a GPU-ului.

Multisample anti-aliasing (MSAA), spre deosebire de FSAA, netezește doar marginile obiectelor, rezultând o ușoară degradare a graficii, dar economisind o cantitate uriașă de putere de procesare. Deci, dacă nu aveți o placă grafică de top pentru jocuri, MSAA este cel mai bun pariu.

SSAO (Screen Space Ambient Occlusion)

Tradus în rusă, înseamnă „blocarea luminii ambientale în spațiul ecranului”. Este o imitație a iluminării globale. Mărește realismul imaginii, creând mai multă iluminare „live”. Oferă sarcina numai pe GPU. Această opțiune reduce semnificativ cantitatea de FPS pe adaptoarele grafice slabe.

Încețoșează în mișcare

Cunoscut și sub denumirea de estompare de mișcare. Acesta este un efect care estompează imaginea atunci când mișcați rapid camera. Oferă scenei mai multă dinamică și viteză (folosită adesea în curse). Mărește sarcina pe GPU, reducând astfel numărul de FPS.

Adancimea terenului

Un efect pentru crearea iluziei de prezență prin estomparea obiectelor în funcție de poziția lor față de focalizare. De exemplu, când vorbești cu un anumit personaj din joc, îl vezi clar, dar fundalul este neclar. Același efect poate fi observat dacă focalizați pe un obiect situat în apropiere, obiectele mai îndepărtate vor fi neclare.

Sincronizare verticală (V-Sync)

Sincronizează rata de cadre în joc cu rata de reîmprospătare verticală a monitorului. Cu V-Sync activat, FPS maxim este egal cu rata de reîmprospătare a monitorului. Dacă numărul de cadre din joc este mai mic decât rata de reîmprospătare a monitorului, ar trebui să activați triplu buffering, în care cadrele sunt pregătite în avans și stocate în trei buffer-uri separate. Avantajul sincronizării verticale este că vă permite să scăpați de smuciturile nedorite atunci când există salturi bruște în FPS.

Nu fără dezavantaje, de exemplu, în noile jocuri solicitante, este posibilă o scădere puternică a performanței. De asemenea, în shooter-urile dinamice sau în jocurile online, V-Sync poate doar să doară.

Concluzie

Cele de mai sus sunt setările principale, dar nu toate, în jocuri. Merită să ne amintim că fiecare joc are propriul său nivel de optimizare și propriul set de setări. În unele cazuri, jocurile cu o grafică mai bună vor rula mai repede pe laptop decât jocurile neoptimizate cu cerințe mai mici. Majoritatea jocurilor vă permit să utilizați atât setări gata făcute, cât și să setați manual fiecare parametru individual. Unele dintre efectele discutate mai sus sunt acceptate doar în jocurile DirectX 11 mai noi, iar jocurile DirectX 9 mai vechi pur și simplu nu le au.

Texturarea este un element esențial al aplicațiilor 3D de astăzi, fără ea multe modele 3D își pierd mult din atractivitatea lor vizuală. Cu toate acestea, procesul de aplicare a texturilor pe suprafețe nu este complet fără artefacte și metode adecvate pentru suprimarea acestora. În lumea jocurilor 3D, există din când în când termeni specializați precum „mip-mapping”, „trilinear filtering” etc., care se referă doar la aceste metode.

Un caz special al efectului de aliasing, discutat mai devreme, este efectul de aliasing al suprafețelor texturate, care, din păcate, nu poate fi înlăturat prin metodele de multi-sau supraeșantionare descrise mai sus.

Imaginați-vă o tablă de șah alb-negru de o dimensiune mare, aproape infinită. Să presupunem că desenăm această placă pe ecran și o privim dintr-un unghi ușor. Pentru zonele suficient de îndepărtate ale plăcii, dimensiunea celulelor va începe inevitabil să scadă la dimensiunea de un pixel sau mai puțin. Aceasta este așa-numita reducere a texturii optice (minificare). Între pixelii de textură va începe o „luptă” pentru posesia pixelilor ecranului, ceea ce va duce la pâlpâirea neplăcută, care este una dintre varietățile efectului de aliasing. Creșterea rezoluției ecranului (actuală sau efectivă) ajută doar puțin, deoarece detaliile texturii devin în continuare mai mici decât pixelii pentru obiectele suficient de îndepărtate.

Pe de altă parte, părțile plăcii cele mai apropiate de noi ocupă o suprafață mare a ecranului și poți vedea pixeli de textură uriași. Aceasta se numește mărire a texturii optice. Deși această problemă nu este atât de acută, trebuie abordată și pentru a reduce efectul negativ.

Pentru a rezolva problemele de texturare, se folosește așa-numita filtrare a texturii. Dacă înțelegeți procesul de desenare a unui obiect tridimensional cu o textură suprapusă, puteți vedea că calculul culorii unui pixel merge, așa cum ar fi, „invers” - mai întâi, se găsește un pixel de ecran unde un punct. a obiectului vor fi proiectați, iar apoi pentru acest punct toți pixelii de textură care cad în ea. Selectarea pixelilor de textură și combinarea acestora (medierea) pentru a obține culoarea finală a pixelului ecranului se numește filtrare de textură.

În timpul procesului de texturare, fiecărui pixel de pe ecran i se atribuie o coordonată în interiorul texturii, iar această coordonată nu este neapărat un număr întreg. Mai mult, un pixel corespunde unei anumite zone din imaginea texturii, care poate conține mai mulți pixeli din textură. Vom numi această zonă imaginea unui pixel din textură. Pentru părțile apropiate ale plăcii noastre, pixelul ecranului devine mult mai mic decât pixelul texturii și, așa cum ar fi, se află în interiorul acestuia (imaginea este conținută în interiorul pixelului texturii). Pentru cele la distanță, dimpotrivă, un număr mare de puncte de textură cad în fiecare pixel (imaginea conține mai multe puncte de textură). Imaginea unui pixel poate avea o formă diferită și, în general, este un patrulater arbitrar.

Să aruncăm o privire la diferitele metode de filtrare a texturii și la variațiile acestora.

Cel mai apropiat vecin

În această metodă cea mai simplă, culoarea celui mai apropiat pixel de textură corespunzător este pur și simplu aleasă ca culoare a pixelului. Această metodă este cea mai rapidă, dar și cea mai puțin calitativă. De fapt, aceasta nu este nici măcar o metodă specială de filtrare, ci pur și simplu o modalitate de a selecta cel puțin un pixel de textură corespunzător pixelului ecranului. A fost utilizat pe scară largă înainte de apariția acceleratoarelor hardware, împreună cu utilizarea pe scară largă a cărora, a devenit posibilă utilizarea unor metode mai bune.

Filtrare biliniară (biliniară)

Filtrarea biliniară găsește cei patru pixeli de textură cei mai aproape de punctul curent al ecranului, iar culoarea rezultată este determinată ca rezultat al amestecării culorilor acestor pixeli într-o anumită proporție.

Filtrarea celui mai apropiat vecin și filtrarea biliniară funcționează destul de bine atunci când, în primul rând, gradul de reducere a texturii este mic și, în al doilea rând, când vedem textura în unghi drept, adică. frontal. Cu ce ​​este legat?

Dacă luăm în considerare, așa cum este descris mai sus, „imaginea” unui pixel de ecran într-o textură, atunci în cazul unei reduceri puternice va include o mulțime de pixeli de textură (până la toți pixelii!). În plus, dacă privim textura dintr-un unghi, această imagine va fi foarte alungită. În ambele cazuri, metodele descrise vor funcționa prost, deoarece filtrul nu va „captura” pixelii de textură corespunzători.

Pentru a rezolva aceste probleme, se folosesc așa-numitele mip-mapping și filtrarea anizotropă.

mip-mapping

Cu o reducere optică semnificativă, un punct de ecran poate corespunde la o mulțime de pixeli de textură. Aceasta înseamnă că implementarea chiar și a celui mai bun filtru va necesita mult timp pentru a media toate punctele. Cu toate acestea, problema poate fi rezolvată dacă creăm și stocăm versiuni ale texturii în care valorile vor fi mediate în prealabil. Și în etapa de randare pentru pixel, căutați versiunea dorită a texturii originale și luați valoarea de pe aceasta.

Termenul mipmap provine din latinescul multum in parvo, adică mult în puțin. Când se folosește această tehnologie, pe lângă imaginea de textură, în memoria acceleratorului grafic este stocat un set de copii reduse ale texturii, fiecare copie nouă având exact jumătate din dimensiunea celei precedente. Acestea. pentru o textură de 256x256, imaginile de 128x128, 64x64 etc., până la 1x1, sunt stocate suplimentar.

În continuare, este selectat un nivel de mipmap adecvat pentru fiecare pixel (cu cât dimensiunea „imaginei” pixelului din textură este mai mare, cu atât este mai mică mipmap-ul). În plus, valorile din mipmap pot fi mediate biliniar sau prin metoda celui mai apropiat vecin (așa cum este descris mai sus) și se efectuează suplimentar filtrarea între nivelurile adiacente ale mipmap-ului. O astfel de filtrare se numește triliniară. Oferă rezultate de foarte înaltă calitate și este utilizat pe scară largă în practică.


Figura 9 niveluri mipmap

Cu toate acestea, problema cu imaginea „întinsă” a pixelului din textură rămâne. Din acest motiv, placa noastră la distanță mare arată foarte neclară.

Filtrare anisotropic

Filtrarea anizotropă este un proces de filtrare a texturii care ia în considerare în mod specific cazul unei imagini de pixeli întinse într-o textură. De fapt, în locul unui filtru pătrat (ca în filtrarea biliniară), se folosește un filtru alungit, care face posibilă selectarea culorii dorite pentru un pixel de ecran cu o calitate mai bună. O astfel de filtrare este utilizată împreună cu mipmapping și oferă rezultate de foarte înaltă calitate. Cu toate acestea, există și dezavantaje: implementarea filtrării anizotrope este destul de complicată, iar atunci când este activată, viteza de desen scade semnificativ. Filtrarea anizotropă este susținută de ultimele generații de GPU-uri NVidia și ATI. Mai mult, cu un nivel diferit de anizotropie - cu cât este mai mare acest nivel, cu atât imaginile cu pixeli mai „alungite” pot fi procesate corect și cu atât calitatea este mai bună.

Filtru de comparare

Rezultatul este următorul: pentru a suprima artefactele de aliasing al texturii, mai multe metode de filtrare sunt acceptate de hardware, care diferă în calitate și viteză. Cea mai simplă metodă de filtrare este metoda vecinului cel mai apropiat (care nu se ocupă de fapt de artefacte, ci pur și simplu completează pixelii). În prezent, filtrarea biliniară este folosită cel mai adesea împreună cu maparea mip sau filtrarea triliniară. Recent, GPU-urile au început să accepte modul de filtrare de cea mai înaltă calitate - filtrarea anizotropă.

Bump mapping

Bump mapping este un tip de efecte speciale grafice concepute pentru a da impresia de suprafețe „aspre” sau accidentate. Recent, utilizarea bump mapping a devenit aproape standardul pentru aplicațiile de jocuri.

Ideea de bază a mapării bump este de a folosi texturi pentru a controla modul în care lumina interacționează cu suprafața unui obiect. Acest lucru vă permite să adăugați mici detalii fără a crește numărul de triunghiuri. În natură, distingem mici neregularități ale suprafeței prin umbre: orice tubercul va fi deschis pe o parte și întunecat pe cealaltă. De fapt, este posibil ca ochiul să nu poată distinge modificările formei suprafeței. Acest efect este utilizat în tehnologia bump mapping. Una sau mai multe texturi suplimentare sunt aplicate pe suprafața obiectului și utilizate pentru a calcula iluminarea punctelor obiectului. Acestea. suprafața obiectului nu se schimbă deloc, se creează doar iluzia neregulilor.

Există mai multe metode de mapare a denivelărilor, dar înainte de a intra în ele, trebuie să ne dăm seama cum să definim denivelările de pe suprafață. După cum sa menționat mai sus, texturile suplimentare sunt utilizate pentru aceasta și pot fi de diferite tipuri:

Harta normala. În acest caz, fiecare pixel al texturii suplimentare stochează un vector perpendicular pe suprafață (normal), codificat ca culoare. Normalele sunt folosite pentru a calcula iluminarea.

Harta deplasarii. Harta deplasării este o textură în tonuri de gri, fiecare pixel din care stochează un decalaj față de suprafața originală.

Aceste texturi sunt pregătite de designerii de modele 3D împreună cu geometria și texturile de bază. Există și programe care vă permit să obțineți automat hărți normale sau de deplasare.

Cartografie de denivelări precalculată

Texturile care vor stoca informații despre suprafața obiectului sunt create în prealabil, înainte de etapa de randare, prin întunecarea unor puncte ale texturii (și deci suprafața însăși) a obiectului și strălucirea altora. În plus, în timpul desenului, se folosește o textură obișnuită.

Această metodă nu necesită trucuri algoritmice în timpul desenului, dar, din păcate, nu există modificări în iluminarea suprafețelor la schimbarea pozițiilor surselor de lumină sau a mișcării obiectului. Și fără aceasta, nu poate fi creată o simulare cu adevărat reușită a unei suprafețe neuniforme. Metode similare sunt folosite pentru părțile statice ale scenei, adesea pentru arhitectura de nivel etc.

Maparea bumpului în relief

Această tehnologie a fost folosită pe primele procesoare grafice (NVidia TNT, TNT2, GeForce). O hartă de deplasare este generată pentru obiect. Desenul are loc în două etape. În prima etapă, harta deplasării este adăugată pixel cu pixel. Acest lucru mută a doua copie la o mică distanță în direcția sursei de lumină. În acest caz, se obține următorul efect: valorile diferențelor pozitive determină pixelii iluminați, valorile negative determină pixelii din umbră. Aceste informații sunt folosite pentru a schimba în consecință culoarea pixelilor de textură principal.

Maparea bump în relief nu necesită hardware care acceptă pixel shaders, dar nu funcționează bine pentru nereguli de suprafață relativ mari. De asemenea, obiectele nu arată întotdeauna convingător, depinde foarte mult de unghiul din care privești suprafața.

Maparea pixelilor

Maparea pixelilor este în prezent punctul culminant al dezvoltării unor astfel de tehnologii. În această tehnologie, totul este calculat cât se poate de sincer. Pixel shader-ului primește o hartă normală ca intrare, din care sunt luate valori normale pentru fiecare punct al obiectului. Apoi valoarea normală este comparată cu direcția către sursa de lumină și se calculează valoarea culorii.

Această tehnologie este suportată în hardware începând cu plăcile video de nivel GeForce2.

Deci, am văzut cum trăsăturile percepției umane asupra lumii pot fi folosite pentru a îmbunătăți calitatea imaginilor create de jocurile 3D. Fericiții posesori ai celei mai recente generații de plăci video NVidia GeForce, ATI Radeon (cu toate acestea, și nu numai cel mai recent) se pot juca în mod independent cu unele dintre efectele descrise, deoarece setările de dealiasing și filtrarea anizotropă sunt disponibile din opțiunile driverului. Acestea și alte metode care depășesc domeniul de aplicare al acestui articol sunt implementate cu succes de dezvoltatorii de jocuri în produse noi. Una peste alta, viața devine mai bună. Altceva va fi!

Filtrarea texturii.

Filtrarea rezolvă problema determinării culorii unui pixel pe baza texelilor disponibili dintr-o imagine de textură.

Cea mai simplă metodă de mapare a texturii este numită eșantionarea punctuală(eșantionare într-un singur punct). Esența sa este că pentru fiecare pixel care alcătuiește poligonul, se selectează câte un texel din imaginea de textură, situată cel mai aproape de centrul punctului luminos. Se comite o eroare deoarece mai mulți texeli determină culoarea unui pixel și a fost selectat doar unul.

Această metodă este foarte inexactă și rezultatul aplicării sale este apariția denivelărilor. Și anume, ori de câte ori pixelii sunt mai mari decât texelii, se observă un efect de pâlpâire. Acest efect apare dacă o parte a poligonului este suficient de departe de punctul de vedere, astfel încât mulți texeli se suprapun simultan în spațiul ocupat de un pixel. Rețineți că dacă poligonul este foarte aproape de punctul de vedere și texelii sunt mai mari decât pixelii, se observă un alt tip de degradare a calității imaginii. În acest caz, imaginea începe să arate blocată. Acest efect apare atunci când textura poate fi destul de mare, dar limitarea rezoluției disponibile a ecranului face imposibilă reprezentarea corectă a imaginii originale.

A doua metoda - filtrare biliniară(Bi-Linear Filtering) constă în folosirea unei tehnici de interpolare. Pentru a determina texelii care ar trebui utilizați pentru interpolare, se folosește forma principală a punctului de lumină - un cerc. În esență, cercul este aproximat cu 4 texeli. Filtrarea biliniară este o tehnică de eliminare a distorsiunii imaginii (filtrare), cum ar fi texturile „blocate” atunci când sunt mărite. Atunci când obiectul se rotește sau se mișcă lent (apropiindu-se/eliminând), pixelii pot „sări” dintr-un loc în altul, de exemplu. apare blocajul. Pentru a evita acest efect, se folosește filtrarea biliniară, care utilizează media ponderată a culorii a patru texeli adiacenți pentru a determina culoarea fiecărui pixel și, ca urmare, determină culoarea texturii suprapuse. Culoarea pixelilor rezultată este determinată după efectuarea a trei operații de amestecare: mai întâi, culorile a două perechi de texeli sunt amestecate, iar apoi cele două culori rezultate sunt amestecate.

Principalul dezavantaj al filtrării biliniare este că aproximarea este efectuată corect numai pentru poligoane care sunt paralele cu ecranul sau punctul de observare. Dacă poligonul este rotit într-un unghi (și este în 99% din cazuri), se folosește o aproximare greșită, deoarece o elipsă trebuie aproximată.

Erorile de aliasing de adâncime rezultă din faptul că obiectele mai îndepărtate de punctul de vedere apar mai mici pe ecran. Pe măsură ce obiectul se mișcă și se îndepărtează de punctul de vedere, imaginea de textură suprapusă pe obiectul micșorat devine din ce în ce mai comprimată. În cele din urmă, imaginea textura aplicată obiectului devine atât de comprimată încât apar erori de randare. Aceste erori de randare sunt deosebit de nedorite în animație, unde astfel de artefacte de mișcare provoacă efecte de pâlpâire și de mișcare lentă într-o parte a imaginii care ar trebui să fie nemișcată și stabilă.

Următoarele dreptunghiuri cu texturare biliniară pot servi ca ilustrare a efectului descris:

Orez. 13.29. Umbrirea unui obiect folosind metoda de filtrare biliniară. Apariția artefactelor „depth-aliasing”, exprimată prin faptul că mai multe pătrate se îmbină într-unul singur.

Pentru a evita erorile și a simula faptul că obiectele aflate la distanță par mai puțin detaliate decât cele mai apropiate de punctul de vedere, o tehnică cunoscută sub numele de mip-mapping. Pe scurt, mip-mapping este o suprapunere de texturi care au un grad sau un nivel diferit de detaliu, atunci când, în funcție de distanța până la punctul de observație, este selectată o textură cu detaliul necesar.

Mip-texture (mip-map) constă dintr-un set de imagini prefiltrate și scalate. Într-o imagine asociată cu un strat mip-hartă, un pixel este reprezentat ca media a patru pixeli din stratul anterior cu rezoluție mai mare. Prin urmare, imaginea asociată fiecărui nivel mipmap este de patru ori mai mică decât nivelul precedent mipmap.

Orez. 13.30. Imaginile asociate fiecărui nivel mip-hartă al texturii undei.

De la stânga la dreapta, avem nivelurile mip-map 0, 1, 2 și așa mai departe. Cu cât imaginea devine mai mică, cu atât se pierd mai multe detalii, până se apropie de sfârșit, când nu se vede decât o neclaritate de pixeli gri.

Nivelul de detaliu, sau pur și simplu LOD, este folosit pentru a determina ce nivel de mip-hartă (sau nivel de detaliu) ar trebui să fie selectat pentru textura obiectului. LOD trebuie să se potrivească cu numărul de texeli aplicați pe pixel. De exemplu, dacă texturarea are loc la un raport apropiat de 1:1, atunci LOD va fi 0, ceea ce înseamnă că va fi utilizat nivelul mip-hartă cu cea mai mare rezoluție. Dacă 4 texeli se suprapun pe un pixel, atunci LOD va fi 1 și va fi utilizat următorul nivel mip de rezoluție mai mic. De obicei, la îndepărtarea din punct de vedere, obiectul care merită cea mai mare atenție are o valoare LOD mai mare.

În timp ce mipmapping rezolvă problema erorilor „depth-aliasing”, utilizarea acesteia poate introduce alte artefacte. Pe măsură ce obiectul se îndepărtează mai mult de punctul de vedere, are loc o tranziție de la un nivel scăzut al hărții mip la unul ridicat. Când un obiect se află într-o stare de tranziție de la un nivel de mip-hartă la altul, apare un tip special de eroare de randare, cunoscut sub numele de „mip-banding” - banding sau layering, de exemplu. limite de tranziție clar distinse de la un nivel mip-hartă la altul.

Orez. 13.31. Panglica dreptunghiulară este formată din două triunghiuri texturate cu o imagine în formă de undă, unde artefactele „mip-banding” sunt indicate prin săgeți roșii.

Problema erorilor „mip-banding” este deosebit de acută în animație, datorită faptului că ochiul uman este foarte sensibil la deplasări și poate observa cu ușurință locul unei tranziții ascuțite între nivelurile de filtrare atunci când se deplasează în jurul unui obiect.

Filtrarea tri-linear(filtrarea triliniară) este a treia metodă care elimină artefactele „mip-banding” care apar atunci când se utilizează mip-texturarea. Cu filtrarea triliniară, pentru a determina culoarea unui pixel, se ia valoarea medie a culorii de opt texeli, patru din două texturi învecinate și, în urma a șapte operații de amestecare, se determină culoarea pixelului. Când utilizați filtrarea triliniară, este posibil să afișați un obiect texturat pe ecran cu tranziții netede de la un nivel mip la altul, ceea ce se realizează prin determinarea LOD prin interpolarea a două niveluri mip-hărți adiacente. Rezolvând astfel majoritatea problemelor asociate cu texturarea mip și erorile datorate calculului incorect al adâncimii scenei („aliasarea adâncimii”).

Orez. 13.32. Harta MIP piramidală

Un exemplu de utilizare a filtrării triliniare este prezentat mai jos. Din nou, se folosește același dreptunghi, texturat cu o imagine în formă de undă, dar cu tranziții netede de la un nivel mip la altul datorită utilizării filtrării triliniare. Observați absența oricăror erori vizibile de redare.

Orez. 13.33. Dreptunghi texturat ondulat redat folosind mipmapping și filtrare triliniară.

Există mai multe moduri de a genera texturi MIP. Una este pur și simplu să le pregătiți din timp folosind pachete grafice precum Adobe PhotoShop. O altă modalitate este de a genera texturi MIP din mers, adică. în timpul executării programului. Texturile pre-MIPed înseamnă un suplimentar de 30% din spațiul de pe disc text în instalarea jocului de bază, dar permit un control mai flexibil asupra creării lor și vă permit să adăugați diferite efecte și detalii suplimentare la diferite niveluri MIP.

Se pare că mipmapping-ul triliniar este cel mai bun care poate fi?

Desigur că nu. Se poate observa că problema nu este doar în raportul dintre dimensiunile pixelilor și texelilor, ci și în forma fiecăruia dintre ele (sau, mai precis, în raporturile de formă).

Metoda mipmapping funcționează cel mai bine pentru poligoane care sunt direct „față în față” cu punctul de vedere. Cu toate acestea, poligoane care sunt oblice în raport cu punctul de vedere deformează textura de suprapunere, astfel încât pixelii să poată fi suprapusi cu zone cu aspect diferit și în formă pătrată ale imaginii de textură. Metoda de miptexturing nu ține cont de acest lucru și are ca rezultat efectul de estompare prea mult a imaginii texturii, de parcă ar fi folosiți texeli greșiți. Soluția la această problemă este de a eșantiona mai mulți texeli care alcătuiesc textura, iar acești texeli ar trebui aleși ținând cont de forma „mapată” a pixelului în spațiul texturii. Această metodă se numește filtrare anisotropic("filtrare anisotropic"). Texturarea mip obișnuită este numită „izotropă” (izotropă sau uniformă) deoarece filtrăm întotdeauna împreună zone pătrate formate din texeli. Filtrarea anizotropă înseamnă că forma zonei texel pe care o folosim se modifică în funcție de circumstanțe.