OpenGL vs OGRE: qual è il migliore per i principianti? [chiuso]


10

Sono interessato allo sviluppo del gioco e possiede buone capacità di programmazione C / C ++. Ho provato OGRE prima e sono curioso di sapere se dovrei imparare OGRE o OpenGL come punto di partenza.

Da quanto ho capito, OGRE è un wrapper per OpenGL e DirectX. Quindi, supponendo che io impari OGRE, devo ancora imparare OpenGL anche per sviluppare un gioco?

Inoltre, qualcuno può indicarmi un buon tutorial per OpenGL? Ho scoperto che OGRE è ben documentato (è persino arrivato con la distribuzione!) Ma per OpenGL, la maggior parte dei tutorial che ho seguito sono obsoleti.


Se sei completamente nuovo nella programmazione grafica 3D, proverei a capire come funzionano prima le API di basso livello (OpenGL o D3D, non importa davvero) e poi passare a un motore grafico già pronto come come OGRE in modo che tu possa concentrarti sulla tua applicazione / gioco anziché sul rendering del design / sviluppo del motore.
drxzcl,

1
Vorrei prima andare in 2D, piuttosto che in 3D.
Il comunista Duck il

1
La maggior parte del 2D non è solo "3D senza Y" e ha i suoi modi di dire e le sue tecniche di avvicinamento, non sono così sicuro che prendere una traccia laterale in 2D sarebbe già buono per qualcuno con "buon c / c ++".
Patrick Hughes,

Perché questa domanda non è costruttiva?
Songbreaker

Risposte:


13

Ogre è davvero un wrapper per OpenGL, tuttavia l'idea di un tale wrapper è che non devi preoccuparti delle complessità di OpenGL. Ovviamente ti aiuterà a conoscere un po 'OpenGL, ma Ogre ti nasconderà molti brutti dettagli.

Direi che Ogre è probabilmente più facile da imparare rispetto a OpenGL, o almeno ti darà risultati interessanti più velocemente. Naturalmente dipende totalmente da cosa ti piacerebbe fare per valutare se vale la pena imparare OpenGL.

A proposito dei tutorial OpenGL, sì, la maggior parte di essi è piuttosto obsoleta, tuttavia le specifiche non si sono spostate molto velocemente, quindi molti di questi vecchi tutorial si applicano ancora alla maggior parte di OpenGL.

Alcuni dei miei preferiti:


28
PER FAVORE, PER FAVORE, PER FAVORE, smettere di inviare persone a NeHe. I tutorial sono buoni, ma incredibilmente obsoleti. I giorni di OpenGL 1.x sono ormai lontani, proviamo a non paralizzare la prossima generazione di programmatori grafici fin da subito!
drxzcl,

5
Vedi "An Intro to Modern OpenGL": duriansoftware.com/joe/…
drxzcl

1
@Ranieri Sono assolutamente, molto d'accordo. Il sito è rimasto lo stesso per anni e anni, e ora che OpenGL è cambiato abbastanza drasticamente negli ultimi due anni, deve davvero essere scoraggiato. @Songbreaker per favore, prendi nota di questo e considera di evitare i tutorial di NeHe, o almeno di prenderli con un granello di sale. La pipeline fissa è sparita da tempo.
Ricket,

1
@ Ranieri, @ Ricket Non sono assolutamente d'accordo. Considera la curva di apprendimento di OpenGL 4.x per un principiante che non ha familiarità con la programmazione grafica e che sta acquisendo l'SDK sul lato nel tempo libero, senza istruzioni. Come va la documentazione per OpenGL 4.x? Vedi il mio post per maggiori dettagli.
Andrew Rasmussen,

4
@Songbreaker: ci provo. Lascio a te decidere se sono buoni o no.
Nicol Bolas,

17

OpenGL! Sì, finora non sono apertamente in disaccordo con tutti quelli che fanno parte di questo consiglio.

OGRE è un casino. La curva di apprendimento è ripida. Sì, hanno dei simpatici tutorial, ma uscire dai limiti dei tutorial e fare le tue cose è MOLTO difficile. Mi aspetto di passare tre settimane prima che tu possa configurare e lavorare OGRE, lavorare attraverso i tutorial e capire cosa fare dopo. Non c'è nulla di OGRE che sia COSÌ molto migliore o più semplice di OpenGL. Se sei un buon programmatore C come hai affermato e capisci i tuoi puntatori / matrici / funzioni, OpenGL sarà altrettanto facile, se non più facile.

Ecco perché consiglio vivamente di iniziare con OpenGL. OpenGL ti costringerà ad apprendere tutti i fondamenti della grafica. È molto più interessante in quanto ti renderai davvero conto di cosa diavolo sta succedendo in background. E SÌ inizia con i tutorial di NeHe. Sì, sono 1.x che è molto obsoleto (questo è per te, Ranieri), ma saltare in OpenGL 4.x è una curva di apprendimento troppo ripida.

Inizia con la modalità immediata in 1.x (glBegin, glEnd), quindi scopri le matrici Vertex. Se vuoi, gioca con gli elenchi di visualizzazione solo per imparare. Quindi spostati verso gli oggetti buffer vertici. Quindi scopri gli shader. Ognuna di queste transizioni è molto semplice e ci sono molti ottimi tutorial online. I VBO sono nel nucleo della 4.1, quindi quando lo fai lì, non stai più imparando materiale obsoleto, ed è molto più facile arrivarci partendo dalle cose 1.x.

Inoltre, se hai mai desiderato una carriera di sviluppo di giochi, nessuno ti assumerà perché puoi girare un cubo in qualche libreria fuori dallo scaffale. Ti assumeranno perché capisci cosa sta succedendo al livello più basso possibile e puoi prendere decisioni di progettazione basate su quella preziosa conoscenza.

Riferimenti: ero dove eri. Ho trascorso un mese su OGRE, una settimana a provare Irrlicht, una settimana a provare Horde3d, due giorni giocando con DirectX e un mese giocando con OpenGL. Dopo un mese con OGRE ho potuto a malapena andare oltre lo scopo dei tutorial. Dopo un mese con OpenGL ho avuto un personaggio che correva in un mondo di minecraft, realizzando 260.000 cubi strutturati per frame con oltre 700 framerate.


Non sono d'accordo con le tue dichiarazioni e non credo che l'esperienza che stai esponendo abbia alcun significato. Sia Ogre che OGL richiedono una conoscenza di base su come parlare con la scheda grafica, il che non significa che devi conoscere OGL o DX, ma fondamentalmente devi sapere cosa possono fare. A questo punto, Ogre aggiunge un livello che un principiante impiegherà mesi a configurare correttamente e che non puoi vedere con un esempio che hai impostato in un mese. È sempre bene conoscere OGL, ma licenziare Ogre a causa della tua esperienza non significa nulla.
Klaim

1
No, OGRE non richiede davvero che tu sappia come parlare con la scheda grafica: questo è il punto. Inoltre, OGRE non è solo un wrapper attorno a un'API grafica, ma è anche un gestore di scene, caricatore di modelli, ecc.
Jarrett

5

Risposta breve? ORCO.

Risposta longish? OGRE è un wrapper su OpenGL, quindi devi fare molto meno lavoro. Non devi preoccuparti così tanto di inviare dati alla GPU o di associare shader o di ordinare vertici a basso livello. È molto più veloce usare OGRE che usare OpenGL per la produzione, e probabilmente anche il tuo codice sarà (molto marginalmente) più veloce.

Se sei interessato allo sviluppo del motore, usa GL. Altrimenti, usa OGRE. E probabilmente inizierei comunque con OGRE.


3

Conoscere l'hardware della computer grafica non è necessario per lo sviluppo del gioco. È necessario diventare programmatore di grafica o parte del team di sviluppatori di rendering in una società di giochi (Nota personale: che è il miglior divertimento sullo sviluppo di un intero gioco :)).

Se non desideri diventare ingegnere di rendering, probabilmente non hai bisogno di imparare tutto openGL o DX per sviluppare giochi.


2

Direi che nessuno dei due è il migliore per un principiante, ma poi "migliore" è un termine relativo che dipende da cosa esattamente stai cercando di guadagnare. Ad esempio, se ciò che desideri è imparare la programmazione grafica 3D al fine di acquisire competenze che potresti utilizzare per ottenere un lavoro come programmatore di grafica 3D per un'azienda di giochi, allora queste scelte hanno senso. Con questo obiettivo potresti anche guardare DirectX.

Se tuttavia hai in mente altri obiettivi, ti consiglio di esaminare altre opzioni. Per cominciare, mentre dalla tua domanda si potrebbe presumere che tu voglia essere coinvolto nello sviluppo del gioco come programmatore, non lo hai specificato. Sia scrivere un motore grafico in OpenGL sia costruire su Ogre sono sicuramente per programmatori hard-core.

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.