Movatterモバイル変換


[0]ホーム

URL:


Vai al contenuto
WikipediaL'enciclopedia libera
Ricerca

Motore grafico

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento daMotore 3D)
Niente fonti!
Questa voce o sezione sugli argomenti computer grafica e videogiochinon cita le fonti necessarie o quelle presenti sono insufficienti.

Puoimigliorare questa voce aggiungendo citazioni dafonti attendibili secondo lelinee guida sull'uso delle fonti. Segui i suggerimenti delprogetto di riferimento.

Ilmotore grafico è il nucleosoftware di unvideogioco o di qualsiasi altra applicazione con grafica intempo reale. Esso fornisce le tecnologie di base, semplifica lo sviluppo, e spesso permette al gioco di funzionare su piattaforme differenti come leconsole osistemi operativi perpersonal computer. La funzionalità di base fornita tipicamente da un motore grafico include unmotore di rendering ("renderer") pergrafica2D e3D, unmotore fisico orilevatore di collisioni,suono,scripting,animazioni,intelligenza artificiale,networking, escene-graph.

Storia

[modifica |modifica wikitesto]

Il termine "motore grafico" è nato alla metà deglianni novanta delXX secolo, con uno stretto legame ai videogiochi 3D, in particolare aglisparatutto in prima persona. La popolarità diDoom e diQuake (entrambi prodotti daid Software) era tale che gli altri sviluppatori, piuttosto che creare giochi da zero, prendevano in licenza le componenti principali del codice e si limitavano a creare il "game content" (o "game assets"): ambientazione, armi e livelli.Alcuni giochi successivi, comeQuake III Arena eUnreal diEpic Games furono sviluppati seguendo questo metodo. La concessione di licenze di queste tecnologie si è dimostrata una valida voce in entrata per i bilanci di alcuniteam di programmatori, visto che una singola licenza per un motore commerciale di fascia alta può variare da 8 000 € fino a 3 000 000 € (come nel caso diWarcraft III), e si possono avere decine di compagnie licenziatarie (per l'Unreal Engine). Sicuramente motori riutilizzabili permettono di creare seguiti di giochi in modo molto più facile e veloce, e questo è un importante vantaggio nella moderna industria videoludica.

Il continuo avanzamento della tecnologia dei motori grafici ha permesso una netta separazione trarendering,scripting,artwork elevel design. Al giorno d'oggi è comune negli sviluppatori un rapporto tra artisti e programmatori di 4:1.

Gli sparatutto in prima persona sono ancora la principale utenza dei motori grafici di terze parti, ma il loro uso si sta diffondendo in altri generi. Alcuni esempi sono ilgioco di ruoloThe Elder Scrolls III: Morrowind, iMMORPGDark Age of Camelot (basati suNetImmerse) eLineage II (basato sull'Unreal Engine). I motori grafici sono egualmente usati in ambito console, come ilRenderWare, usato inRayman 2 Revolution,Grand Theft Auto III e nei videogiochi della serieBurnout.

I motori moderni rientrano di diritto tra isoftware più complessi in assoluto, e possiedono frequentemente decine di sistemi accuratamente sincronizzati per garantire un buon controllo dell'esperienza offerta all'utente finale.

Nonostante il termine sia stato coniato neglianni novanta, anche nel decennio precedente videro la lucesoftware le cui caratteristiche ne fanno "motori grafici". Ad esempio l'Adventure Game Interpreter e ilSierra's Creative Interpreter diSierra, loSCUMM diLucasArts e ilFreescape engine diIncentive Software. Ad ogni modo, questi sistemi non furono mai impiegati in titoli di terze parti.

Caratteristiche

[modifica |modifica wikitesto]

Come altre applicazioni di transizione, i motori grafici sono spesso indipendenti dalla piattaforma, permettendo allo stesso gioco di girare su più piattaforme, incluse le console qualiPlayStation,Xbox,Nintendo e su sistemi operativi comeMicrosoft Windows eMac OS, con nessuno o qualche piccolo cambiamento alcodice sorgente del gioco.

Imiddleware

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Middleware.

Motori grafici avanzati come l'Unreal Engine 4, loUnity Engine, ilSource Engine, l'id Tech 5, ilRenderWare e ilGamebryo forniscono una suite di strumenti di sviluppo visuali in aggiunta alla componente software riutilizzabile. Questi strumenti vengono forniti generalmente all'interno di un ambiente di sviluppo integrato (dall'ingleseintegrated development environment o più comunemente IDE) affinché permettano lo sviluppo semplificato e rapido (RAD) dei giochi secondo un metodo di progettazionedata-driven. Questi motori grafici vengono chiamati spesso "game middleware" perché, in accordo con il significato commerciale deltermine, forniscono una piattaforma flessibile e riutilizzabile che fornisce tutte le funzionalità chiave necessarie esternamente per sviluppare un'applicazione ludica riducendo i costi, la complessità e il tempo impiegato; tutti fattori critici e altamente competitivi nell'industria di videogiochi e computer.

Spesso imiddleware sono progettati con un'architettura modulare che permette di sostituire o estendere parti del motore con soluzioni più specializzate (e magari costose), come il softwareHavok per la fisica, FMOD per il suono, oSpeedTree per il rendering. Alcuni motori grafici come ilRenderWare sono addirittura concepiti come una serie di middleware indipendenti che possono essere combinati a piacere per creare un motore personalizzato, piuttosto che modificare un motore già esistente. In qualunque modo si ottenga la flessibilità, questa rimane comunque una forte priorità, a causa della grande varietà di applicazioni cui i motori grafici devono rispondere. Nonostante l'idea di motore grafico rimandi immediatamente al concetto di videogioco, in verità essi sono usati in molti altri tipi di applicazioni interattive che richiedono grafica in tempo reale, come dimostrazioni commerciali, progettazioni architetturali, simulazioni e ambienti di modellazione.

Alcuni motori forniscono solo capacità grafiche, invece della vasta gamma di funzionalità richieste da un videogioco. Questi motori affidano agli sviluppatori il compito di inserirle, anche tramite altri middleware, magari da altri giochi. A motori come questi calza veramente la definizione di "motore grafico" in senso stretto. Non c'è comunque una convenzione condivisa sul termine: per il senso generale si può usare il termine "motore 3D". Esempi di motore grafico in senso stretto sono:Irrlicht, Axiom,OGRE,Power Render,Crystal Space eGenesis 3D. Molti motori moderni forniscono loscene-graph, una rappresentazione del mondo 3D orientata agli oggetti che spesso semplifica lo sviluppo del gioco e che può essere usata per unrendering più efficiente di mondi virtuali molto vasti.

Astrazione dell'hardware

[modifica |modifica wikitesto]

I motori grafici sono costruiti nella maggior parte dei casi su delleAPI grafiche, comeDirect3D oOpenGL, che offrono un'astrazionesoftware dellaGPU o dellascheda video. Sono spesso usate anchelibrerie di basso livello, comeDirectX,SDL eOpenAL, le quali offrono un accesso diretto ad altrohardware (ad esempiomouse,tastiera,joystick,scheda di rete, escheda audio). Prima dell'avvento della grafica 3D accelerata, si usavanorender software come le APIGlide. Soluzionisoftware come questa sono ancora utilizzate in alcuni strumenti di modellazione o direndering statico, in cui la precisione è più importante della velocità, o quando l'hardware del computer non soddisfa i requisiti (come il supporto deglishader o delleDirect3D 10, come nel caso diWindows Vista).

Appassionati

[modifica |modifica wikitesto]

Lo sviluppo di motori grafici è un progetto comune tra gli studenti diinformatica, appassionati, e sviluppatori di videogiochi. Può richiedere grandi conoscenze interdisciplinari che spaziano dallageometria allateoria del colore. Dal momento che il settore ha grande visibilità, comunque, questisviluppatori lo trovano divertente e remunerativo.Crystal Space, ad esempio, è un popolare motore graficomultipiattaforma (gratuito).

Un famoso ed economico sistema venne creato a partire dal1999 daMark Overmars. Il suointerpreteObject OrientedGame Maker permette di sviluppare giochi in grafica bidimensionale con estrema facilità. Il sistema può supportare molti formati ludici incluso l'RPG. Le ultime versioni di Game Maker permettono ai programmatori più esperti anche la progettazione di videogiochi con grafica poligonale ed effetti di luci.

Motori 3D

[modifica |modifica wikitesto]

UnMotore 3D è unsoftware progettato con lo scopo di rappresentare su unasuperficie 2D (come lo schermo) una scena 3D composta da elementi sintetici. Esistono diverse categorie di motori 3D, ma essenzialmente si possono distinguere in due tipi, a seconda dello scopo per il quale sono preposti: motori 3D in tempo reale e motori 3D per la produzione di immagini fotorealistiche.

Motori 3D in tempo reale

[modifica |modifica wikitesto]

I motori 3D in tempo reale (in inglese "real time 3D engine") sono impiegati laddove sia necessario produrre immagini tridimensionali "al volo". Con questa espressione si indica la capacità di calcolare, e quindi di mostrare a schermo (oppure tramite altri dispositivi ottici, ad esempio occhiali per la realtà virtuale) le immagini in brevissimo tempo, tale da ottenere un certo numero di immagini al secondo, tipicamente 30-60 immagini al secondo (abbreviato spesso come fps, dall'inglese "Frames Per Second"). Questi requisiti di velocità possono essere raggiunti con varie tecniche, evolutesi nel tempo grazie soprattutto all'invenzione di dispositivi hardware dedicati allo scopo: gli acceleratori grafici 3D. Questi dispositivi, costituiti in sostanza da un coprocessore matematico e da una certa quantità di memoria RAM, svolgono certe funzioni matematiche estremamente ottimizzate e consentono allo sviluppatore di sgravare la CPU da un'enorme quantità di calcoli, permettendo quindi di realizzare motori grafici più raffinati e più veloci.L'introduzione degli acceleratori grafici ha decretato la formazione di due sottocategorie di motori in tempo reale: i motori grafici software e i motori accelerati in hardware. Nonostante il nome possa trarre in inganno, si parla in entrambi i casi di software. La differenza consiste nel fatto che i primi sfruttano esclusivamente la CPU (ed eventualmente la FPU e le istruzioni SIMD come MMX, SSE, 3DNow!, ecc.) per effettuare i calcoli geometrici necessari, mentre i secondi relegano molte delle funzioni primarie (come la trasformazione, l'illuminazione, l'applicazione delle texture, ecc.) all'acceleratore hardware. Ovviamente entrambi gli approcci portano dei vantaggi e degli svantaggi: i motori software renderizzano le immagini esattamente nel modo previsto dal programmatore ma risultano lenti, quindi non possono produrre immagini di elevata qualità per l'eccessiva quantità di calcoli necessari; i motori accelerati, invece, sono estremamente veloci e producono immagini di elevata qualità, ma richiedono la presenza di hardware dedicato e l'accuratezza delle immagini è soggetta al particolare acceleratore utilizzato.I motori 3D in tempo reale trovano largo impiego nella realizzazione di videogames, simulatori, interfacce grafiche, realtà virtuale.

Motori 3D fotorealistici

[modifica |modifica wikitesto]

Si definiscono così quei motori grafici 3D che producono immagini di qualità prossima o addirittura paragonabile a immagini di scene reali. I motori grafici di questa categoria sono esclusivamente di tipo software, cioè non si appoggiano su hardware di accelerazione 3D. Nelle applicazioni in cui vengono sfruttati i motori 3D fotorealistici, la precisione e la qualità delle immagini renderizzate è prioritaria rispetto alla velocità di calcolo. I motori grafici di questa categoria sfruttano algoritmi molto sofisticati per simulare fedelmente gli effetti ottici di diffusione, rifrazione, riflessione, pulviscolo, proiezione di ombre, aberrazioni cromatiche e altri effetti che contribuiscono a rendere la scena estremamente realistica. Molti di questi algoritmi non possono essere implementati nei motori in tempo reale per la loro estrema complessità, oppure vengono implementati in forma semplificata e approssimativa. Alcuni di questi algoritmi sono il Ray Tracing, il Photon Mapping, e altri.Data la mole di calcoli necessaria, generalmente i motori 3D fotorealistici sono progettati per essere eseguiti su macchine multiprocessore e su cluster. Questi motori grafici sono usati per la realizzazione di opere artistiche, progettazione architettonica e meccanica, design, produzioni cinematografiche (per effetti speciali o per interi film d'animazione).

Matematica dei motori 3D

[modifica |modifica wikitesto]

La maggior parte della matematica implicata nella realizzazione di un engine è quella deivettori e dellematrici.

Motori per sparatutto in prima persona

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Motore grafico per sparatutto in prima persona.

Una nota sottoclasse di motori grafici 3D è quella che comprende glisparatutto in prima persona (FPS, First Person Shooter). Lo sviluppo in termini di qualità è fatto utilizzando la scala umana. Mentre isimulatori di volo, quellidi guida ed i giochi distrategia in tempo reale forniscono realismo su larga scala, i FPS sono la punta dellacomputer grafica su scala umana.

Lo sviluppo di nuovi motori può essere caratterizzato da un aumento della tecnologia disponibile.

I tentativi di classificarli in generazioni portano ad una definizione arbitraria della linea di separazione tra i "vecchi motori" e quelli nuovi.

La classificazione è complicata dal momento che attingono sia a nuove che a vecchie tecnologie. Quelli considerati avanzati un anno, diventano lo standard della stagione successiva. I giochi composti da un misto di vecchie e nuove caratteristiche sono la norma. Ad esempio,Jurassic Park: Trespasser (1998) introdusse la fisica negli FPS, ma il suo uso non divenne comune sino al2002 circa.Red Faction (2001) usò muri e pavimenti distruttibili, cosa di uso limitato fino al2004.Codename Eagle (2000) aggiunse i veicoli da combattimento ai giochi FPS.Tribes 2 eBattlefield 1942 potenziarono l'integrazione di mezzi-veicolari e sparatutto, seguiti a breve termine daHalo edUnreal Tournament 2004.

Voci correlate

[modifica |modifica wikitesto]

Altri progetti

[modifica |modifica wikitesto]

Altri progetti

Collegamenti esterni

[modifica |modifica wikitesto]
Controllo di autoritàGND(DE103437396X
Estratto da "https://it.wikipedia.org/w/index.php?title=Motore_grafico&oldid=142406516"
Categoria:
Categorie nascoste:

[8]ページ先頭

©2009-2025 Movatter.jp