Motor grafic

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Motorul grafic este nucleul software al unui joc video sau al oricărei alte aplicații cu grafică în timp real . Oferă tehnologii de bază, simplifică dezvoltarea și adesea permite jocului să ruleze pe diferite platforme, cum ar fi console sau sisteme de operare pentru computer personal . Funcționalitatea de bază furnizată în mod obișnuit de un motor de joc include un motor de redare („renderer”) pentru 2D și 3D grafice , un motor de fizică sau detectarea coliziunilor , sunet , scripting , animație , inteligență artificială , rețea și scenografie .

Istorie

Termenul „motor grafic” a luat naștere la mijlocul anilor ’90 ai secolului al XX-lea , având o legătură strânsă cu jocurile video 3D, în special cu shooter-urile la prima persoană . Popularitatea lui Doom și Quake (ambele produse de id Software ) a fost de așa natură încât ceilalți dezvoltatori, mai degrabă decât să creeze jocuri de la zero, au licențiat componentele de bază ale codului și au creat pur și simplu „ conținutul jocului ” (sau „ activele jocului ”): setare, arme și niveluri. Unele jocuri ulterioare, precum Quake III Arena și Unreal de la Epic Games , au fost dezvoltate urmând această metodă. Licențierea acestor tehnologii s-a dovedit a fi o intrare valoroasă în bugetele unor echipe de programare, întrucât o licență unică pentru un motor comercial de ultimă generație poate varia de la 8.000 EUR până la 3.000.000 EUR (cum ar fi în cazul Warcraft III ) și puteți avea zeci de companii licențiate (pentru Unreal Engine ). Cu siguranță motoarele reutilizabile vă permit să creați continuări de jocuri într-un mod mult mai ușor și mai rapid, iar acesta este un avantaj important în industria modernă a jocurilor.

Progresul continuu al tehnologiei motoarelor grafice a permis o separare clară între redare , scenarii , lucrări de artă și design de nivel . În zilele noastre, un raport 4: 1 dintre artiști și programatori este obișnuit la dezvoltatori.

Shooters-urile la prima persoană sunt în continuare utilizatorul principal al motoarelor grafice de la terți, dar utilizarea lor se răspândește și în alte genuri. Câteva exemple sunt jocul de rol The Elder Scrolls III: Morrowind , MMORPGs Dark Age of Camelot (bazat pe NetImmerse ) și Lineage II (bazat pe motorul Unreal ). Motoarele grafice sunt, de asemenea, utilizate în mediul consolei, cum ar fi Renderware , utilizat în Rayman 2 Revolution , Grand Theft Auto III și în jocurile video din seria Burnout .

Motoarele moderne se numără printre cele mai complexe programe realizate vreodată și au frecvent zeci de sisteme sincronizate cu grijă pentru a asigura un control bun al experienței oferite utilizatorului final.

Deși termenul a fost inventat în anii nouăzeci , tot în deceniul precedent s-a văzut lumina unui software ale cărui caracteristici îl fac „motoare grafice”. De exemplu, " joc de aventură interpret și interpret Creative Sierra din Sierra , The SCUMM de LucasArts și a motorului freescape de software de stimulare . Cu toate acestea, aceste sisteme nu au fost niciodată utilizate în titluri ale unor terți.

Caracteristici

La fel ca alte aplicații de tranziție, motoarele grafice sunt adesea independente de platformă, permițând ca același joc să ruleze pe mai multe platforme, inclusiv console precum PlayStation , Xbox , Nintendo și sisteme de operare precum Microsoft Windows și Mac OS , fără niciunul sau câteva mici comutați la codul sursă al jocului.

Middleware

Pictogramă lupă mgx2.svg Același subiect în detaliu: Middleware .

Motoarele grafice avansate precum Unreal Engine 4 , Unity Engine, Source Engine , id Tech 5 , RenderWare și Gamebryo oferă o suită de instrumente de dezvoltare vizuală pe lângă componenta software reutilizabilă. Aceste instrumente sunt, în general, furnizate într-un mediu de dezvoltare integrat ( sau mai frecvent IDE) pentru a permite dezvoltarea simplificată și rapidă ( RAD ) a jocurilor în conformitate cu o metodă de proiectare bazată pe date . Aceste motoare grafice sunt adesea denumite „middleware de joc” deoarece, în conformitate cu semnificația comercială a termenului , oferă o platformă flexibilă și reutilizabilă care oferă toate funcționalitățile cheie necesare extern pentru dezvoltarea unei aplicații de joc, reducând în același timp costurile, complexitatea și timp angajat; toți factorii critici și extrem de concurențiali din industria jocurilor video și a computerelor.

Middleware este deseori proiectat cu o arhitectură modulară care vă permite să înlocuiți sau să extindeți părți ale motorului cu soluții mai specializate (și, eventual, mai scumpe), cum ar fi software-ul Havok pentru fizică, FMOD pentru sunet sau SpeedTree pentru redare. Unele motoare grafice precum RenderWare sunt concepute chiar ca o serie de middleware independente care pot fi combinate după bunul plac pentru a crea un motor personalizat, mai degrabă decât să modifice un motor existent. Cu toate că flexibilitatea este realizată, rămâne o prioritate ridicată, datorită varietății largi de aplicații la care motoarele grafice trebuie să răspundă. Deși ideea unui motor grafic se referă imediat la conceptul de jocuri video, în realitate acestea sunt utilizate în multe alte tipuri de aplicații interactive care necesită grafică în timp real, precum demonstrații comerciale, proiectare arhitecturală, simulări și medii de modelare.

Unele motoare oferă doar capacități grafice, în loc de gama largă de caracteristici pe care le necesită un joc video. Aceste motoare încredințează dezvoltatorilor sarcina de a le insera, chiar și prin alte middleware, poate din alte jocuri. Motoare ca acestea se potrivesc cu adevărat definiției „motorului grafic” în sens strict. Cu toate acestea, nu există o convenție comună cu privire la termen: pentru sensul general se poate folosi termenul „ motor 3D ”. Exemple de motor grafic în sens strict sunt: Irrlicht , Axiom , OGRE , Power Render , Crystal Space și Genesis 3D . Multe motoare moderne oferă scenografia , o reprezentare orientată obiect a lumii 3D care simplifică adesea dezvoltarea jocului și poate fi utilizată pentru redarea mai eficientă a lumilor virtuale foarte mari.

Abstracție hardware

Motoarele grafice sunt în mare parte construite pe API-uri grafice, precum Direct3D sau OpenGL , care oferă o abstractizare software a GPU - ului sau a plăcii video . Bibliotecile de nivel scăzut, precum DirectX , SDL și OpenAL , sunt, de asemenea, adesea folosite, care oferă acces direct la alte componente hardware (cum ar fi mouse-ul , tastatura , joystick-ul , placa de rețea și placa de sunet ). Înainte de apariția graficii 3D accelerate, au fost utilizate randări software , cum ar fi API-ul Glide . Soluții software de acest gen sunt încă utilizate în unele instrumente de modelare sau de redare statică, unde precizia este mai importantă decât viteza sau când hardware-ul computerului nu îndeplinește cerințele (cum ar fi suportul pentru umbrere sau Direct3D 10 , cum ar fi în cazul Windows Vista ).

Pasionat

Dezvoltarea motoarelor grafice este un proiect obișnuit în rândul studenților în informatică , entuziaștilor și dezvoltatorilor de jocuri. Poate necesita cunoștințe interdisciplinare deosebite, de la geometrie la teoria culorilor . Deoarece industria are o expunere excelentă, totuși, acestor dezvoltatori le pare distractiv și plin de satisfacții. Crystal Space , de exemplu, este un motor grafic popular ( gratuit ) pe mai multe platforme .

Un sistem faimos și ieftin a fost creat începând cu 1999 de Mark Overmars . Ei Object Oriented Game Maker interpret vă permite să dezvolte jocuri în format grafic bidimensional cu extremă ușurință. Sistemul poate suporta multe formate de jocuri, inclusiv RPG . Cele mai recente versiuni ale Game Maker permit, de asemenea, programatorilor mai experimentați să proiecteze jocuri video cu grafică poligonală și efecte de iluminare.

Motoare 3D

Un motor 3D este un software conceput cu scopul de a reprezenta o scenă 3D compusă din elemente sintetice pe o suprafață 2D (cum ar fi ecranul). Există diferite categorii de motoare 3D, dar în esență pot fi împărțite în două tipuri, în funcție de scopul pentru care sunt destinate: motoare 3D în timp real și motoare 3D pentru producerea de imagini fotorealiste.

Motoare 3D în timp real

Motoarele 3D în timp real sunt utilizate acolo unde este necesar să se producă imagini tridimensionale „din mers”. Această expresie indică abilitatea de a calcula și, prin urmare, de a afișa pe ecran (sau prin intermediul altor dispozitive optice, de exemplu ochelari pentru realitate virtuală) imaginile într-un timp foarte scurt, cum ar fi obținerea unui anumit număr de imagini pe secundă, de obicei 30 -60 imagini pe secundă (adesea prescurtată ca fps, din engleza „Frames Per Second”). Aceste cerințe de viteză pot fi realizate cu diverse tehnici, care au evoluat în timp datorită mai ales inventării dispozitivelor hardware dedicate scopului: acceleratoare grafice 3D. Aceste dispozitive, constând în esență dintr-un coprocesor matematic și o anumită cantitate de memorie RAM, îndeplinesc anumite funcții matematice extrem de optimizate și permit dezvoltatorului să scutească CPU de o cantitate enormă de calcule, permițând astfel crearea unor motoare grafice mai rafinate și mai rapide. Introducerea acceleratoarelor grafice a dus la formarea a două subcategorii de motoare în timp real: motoare grafice software și motoare accelerate hardware. Deși numele poate fi înșelător, ambele cazuri sunt denumite software. Diferența constă în faptul că primele exploatează în mod exclusiv CPU (și, eventual, instrucțiunile FPU și SIMD, cum ar fi MMX, SSE, 3DNow! Etc.) pentru a efectua calculele geometrice necesare, în timp ce cele din urmă retrogradează multe dintre funcțiile primare. (cum ar fi transformarea, iluminarea, aplicarea texturii etc.) la acceleratorul hardware. Evident, ambele abordări au avantaje și dezavantaje: motoarele software redau imaginile exact așa cum se aștepta de programator, dar sunt lente, deci nu pot produce imagini de înaltă calitate din cauza cantității excesive de calcule necesare; motoarele accelerate, pe de altă parte, sunt extrem de rapide și produc imagini de înaltă calitate, dar necesită prezența unui hardware dedicat, iar acuratețea imaginilor este condiționată de acceleratorul folosit. Motoarele 3D în timp real sunt utilizate pe scară largă în crearea de jocuri video, simulatoare, interfețe grafice, realitate virtuală.

Motoare 3D fotorealiste

Aceasta este definiția acelor motoare grafice 3D care produc imagini de o calitate apropiată sau chiar comparabilă cu imagini de scene reale. Motoarele grafice din această categorie sunt exclusiv de tip software, adică nu se bazează pe hardware de accelerare 3D. În aplicațiile în care sunt exploatate motoare 3D fotorealiste, precizia și calitatea imaginilor redate au prioritate față de viteza de calcul. Motoarele grafice din această categorie utilizează algoritmi foarte sofisticați pentru a simula cu fidelitate efectele optice ale difuziei, refracției, reflexiei, prafului, proiecției umbrelor, aberațiilor cromatice și a altor efecte care contribuie la realizarea scenei extrem de realiste. Mulți dintre acești algoritmi nu pot fi implementați în motoare în timp real datorită complexității lor extreme sau sunt implementați într-o formă simplificată și aproximativă. Unii dintre acești algoritmi sunt Ray Tracing, Photon Mapping și alții. Având în vedere cantitatea de calcule necesară, motoarele 3D fotorealiste sunt, în general, proiectate să funcționeze pe mașini și clustere multiprocesor. Aceste motoare grafice sunt utilizate pentru crearea de lucrări artistice, proiectare arhitecturală și mecanică, design, producții de filme (pentru efecte speciale sau pentru filme de animație întregi).

Matematica motorului 3D

Cea mai mare parte a matematicii implicate în construirea unui motor este cea a vectorilor și a matricilor .

Motoare pentru shooterul la prima persoană

Pictogramă lupă mgx2.svg Același subiect în detaliu: Motor grafic shooter pentru prima persoană .

Un motor grafic 3D cunoscut din subclasă este cel care include shooterul la prima persoană (FPS, First Person Shooter). Dezvoltarea calității se face folosind scara umană. În timp ce simulatoarele de zbor , simulatoarele de conducere și jocurile de strategie în timp real oferă realism la scară largă, FPS este culmea graficii computerizate la scară umană.

Dezvoltarea de noi motoare poate fi caracterizată printr-o creștere a tehnologiei disponibile.

Încercările de a le clasifica în generații duc la o definiție arbitrară a liniei de separare între „motoarele vechi” și cele noi.

Clasificarea este complicată, deoarece se bazează pe tehnologii noi și vechi. Cei considerați avansați cu un an devin standardul pentru sezonul următor. Jocurile alcătuite dintr-un amestec de funcții vechi și noi sunt norma. De exemplu, Jurassic Park: Trespasser ( 1998 ) a introdus fizica în FPS, dar utilizarea sa nu a devenit obișnuită decât în 2002 . Red Faction ( 2001 ) a folosit pereți și podele distructibile, care a fost de utilizare limitată până în 2004 . Codename Eagle ( 2000 ) a adăugat vehicule de luptă jocurilor FPS. Tribes 2 și Battlefield 1942 au îmbunătățit integrarea vehiculelor și a shooterelor, urmată în scurt timp de Halo și Unreal Tournament 2004 .

Elemente conexe

linkuri externe

Controlul autorității GND ( DE ) 103437396X