concepte de bază

Un descendent al cubului Rubik

concepte de bază

Cu voxel au dificultăți. Doi oameni care au jucat de Comanche, a declarat că „voxel - este un pixel cub“. Un alt amintit un articol din revista urmă cu doi ani, adăugând că „tridefiksy capabil de a digera numai poligoane triunghiulare, voxeli și pătrat scuipat înapoi.“ După ce a făcut această idee inteligent, familiarizat cu gânditor cochetat intins pe masa de 3D-accelerator și murmură: „Nu înțeleg! Cipul este pătrată, voxeli, prea, poligoane triunghiulare, dar accelerează motiv poligoane, voxeli în loc să ... devilry unii. "

Asta e modul în care ideea de a scrie un articol care explică voxeli și motoarele poligonale, avantajele și dezavantajele lor. În acest caz, nu de mult supraincarcarea detaliile sale tehnice pentru a înțelege nu numai oameni de știință de calculator, dar, de asemenea, oameni care nu face față cu „pervym_monstrom_iz_kvaki“.

Toată lumea știe că tridimensionale, imagini sintetizate de calculator nu există. Cel puțin, aceasta este prognoza pentru următorii zece ani. Și nu va fi atâta timp cât aparatul capabil de a schimba transparența mediului și de a crea o hologramă tridimensională este opacă, devine pentru noi același lucru obișnuit, cum ar fi monitor de șaptesprezece inch. Până atunci, trebuie să se stabilească pentru o imagine de pe ecran plat.

Și apoi au gândit dezvoltatorii: „Ce dacă am face masina nu arata doar imagini, dar, de asemenea, pentru a modela propria lor, în timp real?“. Apoi, modelul de caractere poate fi descris de curbe, se rupe în elementele sale componente, vopsite în culoarea dorită, evidențiați, în cazul în care este necesar, și palma pe imaginea feței. Și apoi rândul său, modelul în toate colțurile lumii, pentru a ridica mâinile, prăfuire nas. Pe aceasta deoarece nu sprite nu va salva suficient!

O astfel de tehnologie necesită multe calcule complexe, și de mai mulți ani a fost folosit doar în film și televiziune. Dar, odată cu apariția primului 3D-accelerator pe platforma PC, au existat jocuri și aplicații care funcționează cu grafică tridimensională în timp real. 3D-accelerator funcționează pe modele, a căror suprafață este împărțită într-o multitudine de triunghiuri, numite poligoane (forme alegere, datorită faptului că orice poligon poate fi împărțit în triunghiuri). Deci, de multe ori 3D-joc, și doar motorul care funcționează cu modele tridimensionale, numit „poligonal“.

Procesul de producere a unei imagini pe 3D-accelerator denumit în continuare „conducte-randare 3D“. Condițional poate fi împărțit în două etape principale: etapa de construcție a figurilor geometrice și stadiul formării 2D-imagini, adică imediat de redare.

În primul motor etapă generează un model geometric care face lumea virtuală. Trebuie spus că această parte a lucrării în prezent atribuite CPU (și este puțin probabil să fie vreodată scos din ea). Apoi, modelele rezultate sunt împărțite în primitivelor (în cazul nostru - poligoane). După aceea, sursele de lumină sunt aranjate, iar în același timp, există o legare textura.

Până în acest moment, toate operațiunile sunt efectuate pe lumea tridimensională, în cazul în care fiecare cifră există trei coordonate în spațiu. Pe ecran în 3D-jocuri pe care le vedem într-o proiecție 2D dintr-un anumit punct (în Quake - din ochii eroului, în Tomb Raider - din spate). Alegerea unui punct de observație, motorul, astfel încât să nu facă de lucru inutile, exprimate invizibil din acest punct primitivele și convertește datele într-un format ușor de înțeles 3D-accelerator.

După aceea, etapa de redare începe. Datele privind coordonatele poligoanelor în buffer-cadru sunt încărcate 3D accelerator, atunci valoarea coordonatelor Z ale fiecărui punct al poligonului este stocat într-o memorie specială în acest scop (Z-tampon) și se compară cu coordonatele celorlalte puncte. Este necesar de a afla ce primitivele sunt vizibile pe ecran, și care a pus în umbră celelalte modele. Pe „vizibile“ textură suprapuse poligoane (în acest caz, se pot utiliza diverși algoritmi pentru a obține efecte de transparență, de suprafață de relief, și așa mai departe. D.). Deci, imaginea gata este afișată pe ecran.

Avantaje Motoarele poligonale sunt evidente: în primul rând, ușor de utilizat - există o mulțime de biblioteci pentru lucrul cu 3D-grafica (Direct 3D, Open GL, Glide). De asemenea, poligonale 3D-jocuri sunt disponibile pentru un public larg - este acum aproape fiecare calculator primul jocuri este echipat cu un 3D-accelerator. Iar dezvoltarea rapidă a tehnologiei poate fi, de asemenea, numit demnitate, în fiecare an, există noi algoritmi, și chipset-uri grafice moderne oferă accelerare hardware completă a tuturor etapelor conductei de redare.

Amintiți-vă cum am la început au numit voxel.

Voxeli - punctul în lumea virtuală tridimensională, un fel de cuburi mici, pentru a construi orice formă. În cazul în care lumea a avut un scaner tridimensional, el va păstra imaginea obiectului scanat este în voxeli. Cât de mult va cântări, astfel încât este o imagine tridimensională (și hard disk-uri ale volumului vor fi în calculatoarele la momentul inventarea scanerului), am fost un pic ingrijorat - cel mai important, că utilizarea voxeli ne permite să mențină cifra tridimensională de orice complexitate. Prin urmare, motoarele voxeli în jocurile pe calculator sunt cel mai des folosite pentru generarea peisajului terestru, toate denivelări și a neregularităților acestuia. Un exemplu perfect - o serie de elicopter Comanche simulatoare de la compania Novalogic. Cu toate acestea, motorul voxel poate fi, de asemenea, folosite în alte scopuri (în Blade Runner toate modelele tridimensionale ale personajelor sunt compuse din voxeli).

Să încercăm să înțelegem modul în care motorul voxel creează un peisaj tridimensional. Inițial, se ia o imagine plană (ca și în cazul în care am fotografiat-o bucată de pământ din partea de sus) și așa-numita „hartă elevație“ (heightmap) - o serie de date care stochează valorile de altitudine pentru fiecare pixel al imaginilor noastre. Acum, motorul este capabil să transforme un pixel plat într-un voxel tridimensional. În același timp, - cu atât mai precisă va fi harta înălțime, mai realist este peisajul nostru tridimensional. În schimb, dacă luați cartea mare va fi prea inexacte (de exemplu, poate stoca doar zece probe diferite pe axa Z), imaginea finală se va dovedi foarte unghiular (așa-numitul efect al scării).

Lumea din jurul nostru este plin cu cele mai fine detalii. vedere panoramică de mare plajă arată bucată galben monotonă de teren. Dar este necesar să se meargă pe picioarele lui și am observat imediat tot felul de lovituri și dealuri. Și dacă vă îndoiți în jos și ridica pietricele, fiecare piatră va avea propria textura unica. Dacă folosim un microscop, atunci. Ce binecuvântare că în simulator de elicopter nu se întâmplă microscop! Dar chiar și fără ea, pentru a crea o lume virtuală realistă va necesita harta elevație foarte precisă (numărare pe scara metru, vom primi 10.000 de valori unice pentru zece axa Z!). Prin urmare, tehnologia specială este utilizat în motoarele voxel care îmbunătățesc calitatea de rezoluție scăzută heightmap. Cele două metode de cele mai comune sunt bazate pe algoritmi diametral opuse: prima adaugă multe probe noi în harta înălțime folosind pseudo-aleatoare carte de deplasare (deplasare de hărți), al doilea netezește unghiului pentru a da noi valori pentru axa Z prin interpolare între existente.

În acest moment, motorul nostru poate construi bine un schelet tridimensional de o bucată de pământ. Rămâne doar pentru a găsi o hartă de culoare (culoare hartă) și voxeli Topsheet culoare cu culorile curcubeului. Acest lucru ar necesita o textură plată obișnuită. Acum, dacă ai pus cuburi-voxeli unul la altul și de a atribui o culoare specifică la început, mai devreme sau mai târziu, puteți obține rezultatul dorit. Cu toate acestea, rezultatul vom ajunge mai târziu, mai degrabă decât mai devreme, pentru că motorul nostru poartă prea mult de lucru inutile. Omenirea nu a învățat încă să vadă prin lucruri, așa că ochii noștri sunt fixate numai stratul superior de cuburi și chiar nu cred că sub toate acestea se află o grămadă de voxeli, fiecare dintre care a făcut motorul nostru greu de lucru. Pentru a-l salveze de la locul de muncă inutilă, redarea finală folosind tehnologia de urmărire a razelor. În ciuda numelui greoaie, nimic dificil în ea.

Motorul cu oftalmologi noastre nu știu, deci cred că ochiul uman funcționează exact așa cum este descris în paragraful precedent. Și astfel redarea imaginii finale utilizând ray tracing este după cum urmează: cel mai mic coordonatei în harta înălțime, eliberată la fasciculul, sa întâlnit cu orice obstacol, ia în considerare valoarea în harta de culoare, pixelii colorați și până la un pixel mai inalt. Din nou, lasa raza dat peste ceva greu, și așa mai departe. N. Este interesant că, în această etapă, este posibil să se accelereze un pic de lucru motor ușor de modificare a algoritmului. Să presupunem, pornit fasciculul odihnit un perete de zaruri roșii, și chiar la partea de jos. În continuare pe numărul de pixeli din partea de sus, de asemenea, va fi de culoare roșie, și cel mai important - vor avea aceleași coordonate X și Y. De ce, ei cer, să o altă rază de „ochi“, în cazul în care puteți merge mai întâi la etaj și a vedea ce e acolo a. Dacă peretele, apoi vopsea imediat, și din nou în partea de sus - până atunci, până la aer curat nu ieși, adică să nu găsească nimic. Asta e atunci când o nouă versiune ray. Deficiențele în această abordare nu exista - economii de timp continuă.

Dacă motorul voxel scrise fără erori (și sunt), atunci mai devreme sau mai târziu, fasciculul se sprijină pe rama de plastic a monitorului, iar următoarea imagine apare pe ecran. Apoi, totul va începe de la început, dar repetiția, chiar dacă mama învățării, dar nu este un motiv pentru a scrie două sau trei paragrafe, o scurtă repovestire a ultimelor două sau trei paragrafe.

Acum piață există foarte puține cu jocurile grafice voxel (practic, acest simulator de zbor). Explicând această situație, pur și simplu: motor voxel, chiar și cel mai puternic 3D-accelerator poate avea doar un singur „urs“ de serviciu - pentru a frotiu pixelii la câini. Cu toate acestea, există jocuri care combină ambele grafice poligonale și voxel (primul se face creatorii Zar). Iar rezultatul este de-a dreptul superb: peisaje frumoase detaliate și modele îngrijite cu iluminare colorate.

Deci, pe viitor, cred că a fost doar pentru o astfel de simbioză.

articole similare