Tehnologiile moderne îmbunătăți calitatea imaginilor 3D - Aleksey Ignatenko

filtrare textura

Texturare este un element esențial al aplicațiilor 3D de astăzi, fără multe din modelul tridimensional, pierd o mare parte din recursul său vizual. Cu toate acestea, procesul de aplicare a texturii pe suprafața nu este lipsită de artefacte și metodele corespunzătoare pentru suprimarea acestora. În lumea jocurilor tridimensionale și apoi sunt termenii de specialitate, cum ar fi „MIP-cartografiere“, „filtrarea tri-linear,“ etc. care este legat de aceste metode.







Un caz particular al efectului aliasing, discutat anterior, este efectul aliasing suprafețe texturate, care, din păcate, nu pot fi îndepărtate prin metode multi- sau supersampling așa cum este descris mai sus.

Imaginați-vă o tablă de șah alb-negru, de mari dimensiuni aproape infinit. Să presupunem că trage placa de pe ecran și uita-te la ea, la un unghi mic. Pentru suficient de celule de la distanță site-uri de dimensiuni de bord va scădea în mod inevitabil la dimensiunea de un pixel sau mai puțin. Această textură optică așa-numita reducere (minification). Intre pixeli textura va „lupta“ pentru posesia pixelilor pe ecran, rezultând într-un pâlpâirea neplăcut, care este o formă de efect aliasing. Creșterea rezoluției ecranului (reală sau efectivă) ajută doar un pic, deoarece pentru obiecte suficient de îndepărtate texturi detaliu vor deveni încă pixeli mai mici.

Pe de altă parte, partea cea mai apropiată de bord pentru a ne ocupa o mare suprafață a ecranului, și puteți viziona textura imens pixeli. Aceasta se numește textura cu zoom optic (mărire). Deși această problemă nu este la fel de răspândită, pentru a reduce efectul negativ este de asemenea necesar să se lupte.

Tehnologiile moderne îmbunătăți calitatea imaginilor 3D - Aleksey Ignatenko

Tehnologiile moderne îmbunătăți calitatea imaginilor 3D - Aleksey Ignatenko

Această textură tablă de șah

Plane maparea texturii. Fiți atenți la distorsiunile cauzate de scăderea în celula

Pentru a rezolva problemele de texturare se utilizează așa-numita filtrare textura. Dacă ați înțeles procesul de desen un obiect tridimensional, cu o textură mapate, se poate observa că calculul culorii pixelului este, așa cum au fost, „dimpotrivă“, - în primul rând este pixel de ecran, care va fi proiectată pe un anumit punct al obiectului, și apoi la acest punct sunt toți pixelii de textură, care se încadrează l. pixeli Selection textura și combinația lor (în medie) pentru a obține culoarea finală a filtrării pixel și ecran numit textura.

Tehnologiile moderne îmbunătăți calitatea imaginilor 3D - Aleksey Ignatenko

Figura 7. Dimensiunea ecranului și imaginea sa în textura

În procesul de texturarea fiecare pixel de ecran este atribuit o coordonată în textura, iar acest lucru de coordonate nu este neapărat un număr întreg. Mai mult decât atât, un pixel corespunde o anumită zonă în textura imaginii, care poate introduce mai multe pixeli de textura. Să numim acest domeniu, formând un pixel în textura. părțile interioare ale noastre pixeli ecran de bord devine mult mai mică decât textura pixeli și altele asemenea stocate în acesta (imaginea de conținut în textura pixeli). Pentru Invers de la distanță, un număr mare de pixeli textura (imaginea conține mai multe puncte de textură) devine în fiecare pixel. Un pixel de imagine poate avea diferite forme și, în general, reprezintă un patrulater arbitrar.

Luați în considerare diferite tehnici de filtrare textura și variații ale acestora.

Cel mai apropiat vecin (cel mai apropiat vecin)

In aceasta, cea mai simplă, metoda de pixel de culoare selectează pur și simplu cel mai apropiat pixel corespunzătoare de culoare textura. Această metodă este cea mai rapidă, dar cea mai slabă calitate. De fapt, nici măcar nu o metodă de filtrare specială, ci pur și simplu o modalitate de a selecta cel puțin unele pixel textura corespunzătoare pixel de ecran. Acesta a fost utilizat pe scară largă înainte de apariția acceleratori hardware, impreuna cu prevalenta care este abilitatea de a folosi metode mai calitative.

Filtrarea de către cel mai apropiat vecin

Filtrarea biliniară (biliniară)

Filtrarea biliniară este de patru textura pixel cel mai apropiat de punctul curent de pe ecran și culoarea rezultată este determinată ca rezultat al amestecării culorilor acestor pixeli într-o anumită proporție.

Filtrarea de către cel mai apropiat vecin și filtrare biliniar funcționează suficient de bine, atunci când, în primul rând, gradul de reducere a texturii este mică, și în al doilea rând, atunci când vom vedea textura unui unghi drept, și anume, frontal. Care este motivul?







Dacă luăm în considerare, așa cum este descris mai sus, „imaginea“ pixelului ecran din textura, cazul unei reduceri puternice a acesteia va include o mulțime de pixeli textura (până la toți pixelii!). Mai mult decât atât, dacă ne uităm la textura unui unghi, imaginea va fi extins foarte mult. În ambele cazuri, metodele descrise nu vor funcționa corect deoarece filtrul nu va „capta“ pixeli textura relevante.

Pentru a rezolva aceste probleme, utilizați așa-numitul MIP-cartografiere și filtrare anizotrope.

MIP Mapping

Cu o reducere semnificativă a punctului optic al ecranului poate corespunde o mulțime de pixeli textura. Acest lucru înseamnă că punerea în aplicare a filtrului chiar și cel mai bun va necesita o mulțime de timp pentru o medie de toate punctele. Cu toate acestea, problema poate fi rezolvată în cazul în care creați și versiuni magazin de textura în care valorile vor fi mediate în avans. Și în căutare de pixeli scenă, imagistica pentru versiunea necesară a texturii originale și să ia valoarea din ea.

Termenul este derivat din multum mipmap Latină în parvo - multe mici. Atunci când se utilizează această tehnologie în memoria accelerator grafic, în plus față de o textură de imagine este stocată un set de miniaturi ei, fiecare nou exact de două ori mai mică decât cea anterioară. Ie pentru dimensiunea texturii 256x256 128x128 imaginile stocate în plus, 64x64 etc. până la 1x1.

Apoi, pentru fiecare pixel selectat mipmap nivel adecvat (cat mai mare „imaginea“ pixelului în textura, este luat mipmap mai mici). Alte valori mipmap pot fi mediate biliniară sau cea mai apropiată metodă vecin (așa cum este descris mai sus) și filtrare ulterioară are loc între nivelurile mipmap adiacente. Această filtrare se numește tri-linear. Acesta oferă rezultate foarte înaltă calitate și este utilizat pe scară largă în practică.

Figura 9. nivelurile mipmap

Cu toate acestea, problema cu „întins“ pixel de imagine în textura rămâne. Doar pentru acest motiv, consiliul nostru la o distanta arata foarte neclare.

anisotropic filtering

Filtrare anizotropică - acest proces de filtrare textura, mai ales ținând cont de pixel a imaginii de caz alungit în textură. De fapt, în loc de pătrat a filtrului (ca în filtrarea biliniar) este utilizat extins, permițând selectarea mai calitativ pentru o culoare pixel de afișare. Această filtrare este utilizat în conjuncție cu mipmeppingom și oferă rezultate foarte înaltă calitate. Cu toate acestea, există dezavantaje: realizarea de filtrare anisotropic este destul de complicată și este activat atunci când viteza de trefilare scade semnificativ. Filtrare anizotropică susține ultima generatie NVIDIA și ATI GPU. Și cu nivel diferit de anizotropie - cu atât mai mult nivelul, cu atât mai multe imagini pixel „întindeau“ pot fi prelucrate în mod corect și cu atât mai bună calitate.

Compara filtrări

Rezultatul este după cum urmează: pentru a suprima artefacte aliasing hardware textură sprijinit mai multe metode de filtrare, care diferă în calitate și viteză. Cea mai simplă metodă de filtrare - cel mai apropiat vecin (care de fapt nu se lupta cu artefacte, ci pur și simplu umple în pixeli). Cine este cel mai des utilizat de filtrare biliniar cu MIP-cartografiere și filtrare Trilinear. În ultimii ani, procesoarele grafice au început să mențină cel mai înalt modul de filtrare de calitate - modul de filtrare anizotropic.

Tehnologiile moderne îmbunătăți calitatea imaginilor 3D - Aleksey Ignatenko

Tehnologiile moderne îmbunătăți calitatea imaginilor 3D - Aleksey Ignatenko

Bump-mapping (bump mapping)

Bump-mapping (bump mapping) - este un tip de efecte vizuale, care este destinat pentru a crea impresia de suprafețe „brute“ sau hopuri. Recent, utilizarea de cucui-cartografiere a devenit aproape un standard pentru aplicații de jocuri.

Ideea de bază a bump-mapping - folosesc texturi pentru a controla interacțiunea luminii cu suprafața obiectului. Acesta vă permite să adăugați mici detalii fără a crește numărul de triunghiuri. În natură, distingem între nereguli minore suprafețele în umbră: orice cucui va pe de o parte o lumină, iar pe de altă parte - întuneric. De fapt, ochiul nu poate distinge între schimbări în forma de suprafață. Acest efect este utilizat în tehnologia cucui-cartografiere. Una sau mai multe suplimentare impuse textura de pe suprafața obiectului și utilizate pentru calcularea iluminării punctelor de obiect. Ie suprafața obiectului nu se schimba deloc, doar o iluzie a neregulilor.

Există mai multe metode de cucui-cartografiere, dar înainte de a trece să le ia în considerare, trebuie să dau seama cum să setați neregulile corespunzătoare de suprafață. După cum sa menționat mai sus, în acest scop, texturi suplimentare, iar acestea pot fi de diferite tipuri:

hartă normală. In acest caz, fiecare stochează pixel vector textură suplimentară perpendicular pe suprafața (normal), codificate sub formă de culoare. Normalele sunt utilizate pentru calculul iluminatului.

harta deplasare. Harta de deplasare este o textură în tonuri de gri, fiecare pixel care stochează un offset de la suprafața inițială.

Aceste texturi sunt pregătite de designeri de modele tridimensionale cu geometrie si texturi de bază. Există, de asemenea, programe pentru a primi în mod automat hărți normale sau de deplasare

Preprocesată bump-mapping (pre-calculat de cartografiere cucui)

Texturile care va stoca informații despre suprafața obiectului creat în avans, înainte de faza de formare a imaginii, prin reglarea intensității luminoase unele texturi puncte (și, prin urmare, de suprafață) ale obiectului și a altor nuanțelor. Mai mult, în timp ce desen folosind textura convențională.

Această metodă nu necesită anumite trucuri algoritmice în timp ce desen, dar, din păcate, modificări în iluminarea suprafeței atunci când schimbă poziția sursei de lumină sau obiectul nu se produce. Și fără această simulare într-adevăr cu succes a suprafeței neuniforme este creată. Metode similare sunt utilizate pentru piese statice ale scenei, de multe ori la niveluri de arhitectură etc.

Bump-mapping prin gofrare (Emboss bump mapping)

Această tehnologie a fost aplicată primului procesor grafic (NVidia TNT, TNT2, GeForce). Pentru un obiect creat o hartă de deplasare. Desenul are loc în două etape. În prima etapă pixel cu pixel harta de deplasare compus cu ea însăși. În acest al doilea exemplar este deplasat de către o mică distanță în direcția sursei de lumină. Acest lucru produce următorul efect: pixelii luminoase valori diferență pozitivă determinate, negativ - în pixeli umbră. Aceste informații sunt utilizate pentru a schimba pixelii de culoare corespunzătoare textura principal.

Bump mapping folosind stampare nu necesită hardware care acceptă pixel shader, dar aceasta nu funcționează bine pentru neregularitățile de suprafață relativ mari. De asemenea, obiectele nu arata intotdeauna convingătoare, depinde foarte mult de unghiul la care să se uite la suprafață.