In che modo motori come Unreal si collegano a OpenGL o DirectX?


8

Sono completamente nuovo alla computer grafica, e ancora di più, allo sviluppo del gioco. Sto cercando informazioni per apprendere rapidamente le basi. Ho una domanda in testa; come si relazionano motori come Crytek Engine o Unreal Engine con OpenGL o DirectX?

Sono molto interessato alla fisica del gioco, ma non riesco a capire come si uniscono la fisica, la grafica e il motore; ci sono lacune che non posso colmare.


Ecco parte della risposta, ma porta solo altre domande. scientificninja.com/blog/write-games-not-engines
BRabbit27

Dove entra la fisica? È come se dovessi scrivere un algoritmo di fisica, ad esempio un algoritmo di collisione e fare in modo che alcuni cerchi creati su OpenGL si comportino secondo il mio algoritmo di fisica?
BRabbit27

Risposte:


10

TL; DR: un motore è solo una raccolta di componenti riutilizzabili.

Muro di testo: i giochi memorizzano una rappresentazione del mondo, ad esempio avresti un'entità come una casa, che ha una maglia che definisce l'aspetto della sua geometria e una posizione.

Ora, probabilmente hai più di un'entità. Diciamo che abbiamo un personaggio controllato dal giocatore e alcune caselle. Quando il giocatore vuole muoversi, muovi il personaggio e controlli se si scontra con qualche scatola. È qui che entra in gioco la fisica. A seconda di come sono modellate la fisica, il personaggio potrebbe semplicemente camminare attraverso le scatole, fermarsi davanti alle scatole o spingere le scatole.

Intendiamoci, questo cambia solo lo stato interno del mondo di gioco.

Quindi, dopo aver calcolato il movimento e la fisica, avresti eseguito il rendering di una cornice, ad esempio disegnando lo stato attuale del mondo sullo schermo.

OpenGL e DirectX sono API grafiche, vengono utilizzate solo per eseguire il rendering di elementi (ad es. Il personaggio) sullo schermo.

Quindi, sostanzialmente stai dicendo a OpenGL / DirectX "Voglio disegnare il personaggio in posizione 1 e un riquadro in posizione 2, e ...".

Naturalmente, questa è una semplificazione eccessiva.

Comunque, dal momento che non vogliamo seguire questa procedura passo dopo passo tutto il tempo, inseriamo quella roba in funzioni e classi. Quindi, potremmo avere una fisica di classe che contiene tutte le funzioni necessarie per la simulazione fisica, o una classe di grafica che si interfaccia con l'API grafica e disegna le nostre entità. Et voilà, abbiamo un motore.


Manca un accento "Et voilà" ahah scherzando. Grazie mille penso di aver pensato bene ma non ero sicuro quindi ho deciso di chiedere. Molte grazie!
BRabbit27

2
DirectX non è un'API grafica, ma lo sono Direct2D e Direct3D.

@JaakkoLipsanen sì, lo vedo ora, DirectX è un framework completo per lo sviluppo di giochi (3d, audio, video, ecc.) E Direct3D è solo il modulo grafico.
BRabbit27
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.