OpenGL vs OGRE: Quel est le meilleur pour les débutants? [fermé]

10

Je suis intéressé par le développement de jeux et possède de bonnes compétences en programmation C / C ++. J'ai déjà essayé OGRE et je suis curieux de savoir si je devrais apprendre OGRE ou OpenGL comme point de départ.

D'après ma compréhension, OGRE est un wrapper pour OpenGL et DirectX. Donc, supposons que j'apprenne OGRE, ai-je encore besoin d'apprendre OpenGL pour développer un jeu?

De plus, quelqu'un peut-il me montrer un bon tutoriel pour OpenGL? J'ai trouvé que OGRE est bien documenté (il est même fourni avec la distribution!) Mais pour OpenGL, la plupart des tutoriels que j'ai rencontrés sont obsolètes.

Songbreaker
la source
Si vous êtes complètement nouveau dans la programmation graphique 3D, j'essaierais d'avoir une idée de la façon dont les API de bas niveau fonctionnent en premier (OpenGL ou D3D, cela n'a pas vraiment d'importance), puis de passer à un moteur graphique prêt à l'emploi tel en tant qu'OGRE afin que vous puissiez vous concentrer sur votre application / jeu plutôt que sur la conception / développement du moteur de rendu.
drxzcl
1
Je choisirais d'abord la 2D plutôt que la 3D.
The Communist Duck
1
La plupart des 2D ne sont pas seulement «3D sans Y» et ont leurs propres idiomes et techniques de référence, je ne suis pas sûr que prendre une piste latérale en 2D serait déjà bon pour quelqu'un avec «bon c / c ++».
Patrick Hughes
Pourquoi cette question n'est-elle pas constructive?
Songbreaker

Réponses:

13

Ogre est en effet un wrapper pour OpenGL, mais l'idée d'un tel wrapper est que vous n'avez pas à vous soucier des subtilités d'OpenGL. Il sera bien sûr utile d'en savoir un peu plus sur OpenGL, mais Ogre vous cachera beaucoup de détails moches.

Je dirais que Ogre est sans doute plus facile à apprendre que OpenGL, ou au moins il vous donnera des résultats intéressants plus rapidement. Bien sûr, cela dépend totalement de ce que vous aimeriez faire pour évaluer si cela vaut la peine d'apprendre OpenGL.

À propos des didacticiels OpenGL, oui, la plupart d'entre eux sont assez obsolètes, mais la spécification n'a pas progressé très rapidement, donc beaucoup de ces anciens didacticiels s'appliquent toujours à la plupart d'OpenGL.

Quelques uns de mes favoris:

Roy T.
la source
28
S'IL VOUS PLAÎT S'IL VOUS PLAÎT S'IL VOUS PLAÎT S'IL VOUS PLAÎT cesser d'envoyer des gens à NeHe. Les tutoriels sont bons, mais incroyablement obsolètes. Les jours d'OpenGL 1.x sont révolus depuis longtemps, essayons de ne pas paralyser la prochaine génération de programmeurs graphiques dès le départ!
drxzcl
5
Voir "Une introduction à OpenGL moderne": duriansoftware.com/joe/…
drxzcl
1
@Ranieri Je suis absolument, très fortement d'accord. Le site est resté le même pendant des années et des années, et maintenant que OpenGL a changé assez radicalement au cours des deux dernières années, il doit vraiment être découragé. @Songbreaker veuillez en prendre note et envisager d'éviter les didacticiels de NeHe, ou au moins de les prendre avec un grain de sel. Le pipeline fixe a disparu depuis longtemps.
Ricket
1
@ Ranieri, @ Ricket Je suis absolument, très fortement en désaccord. Considérez la courbe d'apprentissage d'OpenGL 4.x pour un débutant qui n'est pas familier avec la programmation graphique et qui choisit le SDK sur le côté pendant son temps libre, sans aucune instruction. Comment est la documentation d'OpenGL 4.x? Voir mon article pour plus de détails.
Andrew Rasmussen
4
@Songbreaker: J'essaye. Je vous laisse le soin de décider si elles sont bonnes ou non.
Nicol Bolas
17

OpenGL! Oui, je suis ouvertement en désaccord avec tout le monde sur ce forum jusqu'à présent.

OGRE est un gâchis. La courbe d'apprentissage est abrupte. Oui, ils ont de bons tutoriels, mais sortir des limites des tutoriels et faire votre propre chose est TRÈS difficile. Je m'attends à ce que vous passiez trois semaines avant de pouvoir configurer et travailler OGRE, parcourir les didacticiels et savoir quoi faire ensuite. Il n'y a rien sur OGRE qui soit beaucoup mieux ou plus simple qu'OpenGL. Si vous êtes un bon programmeur C comme vous l'avez affirmé, et que vous comprenez vos pointeurs / tableaux / fonctions, OpenGL sera tout aussi facile, sinon plus facile.

C'est pourquoi je recommande fortement de commencer avec OpenGL. OpenGL vous obligera à apprendre tous les principes fondamentaux du graphisme. C'est beaucoup plus intéressant car vous vous rendrez compte de ce qui se passe en arrière-plan. Et OUI commencez avec les tutoriels de NeHe. Oui, ils sont 1.x, ce qui est très obsolète (c'est pour vous, Ranieri), mais sauter dans OpenGL 4.x est une courbe d'apprentissage trop abrupte.

Commencez avec le mode immédiat en 1.x (glBegin, glEnd), puis découvrez les tableaux Vertex. Si vous voulez, jouez avec les listes d'affichage juste pour apprendre. Ensuite, déplacez-vous vers les objets tampons de sommet. Découvrez ensuite les shaders. Chacune de ces transitions est très facile et il existe de nombreux didacticiels en ligne. Les VBO sont au cœur de 4.1, donc au moment où vous y arrivez, vous n'apprenez plus de matériel obsolète, et il est beaucoup plus facile d'y arriver en commençant par le truc 1.x.

De plus, si vous voulez une carrière dans le développement de jeux, personne ne vous embauchera parce que vous pouvez faire tourner un cube dans la bibliothèque standard. Ils vont vous embaucher parce que vous comprenez ce qui se passe au niveau le plus bas possible et vous pouvez prendre des décisions de conception sur la base de ces précieuses connaissances.

Références: j'étais là où vous étiez. J'ai passé un mois sur OGRE, une semaine à essayer Irrlicht, une semaine à essayer Horde3d, deux jours à jouer avec DirectX et un mois à jouer avec OpenGL. Après un mois avec OGRE, je pouvais à peine dépasser le cadre des tutoriels. Après un mois avec OpenGL, un personnage fonctionnait dans un monde minecraftien, produisant 260 000 cubes texturés par image avec plus de 700 fréquences d'images.

Andrew Rasmussen
la source
Je ne suis pas d'accord avec vos déclarations et je ne pense pas non plus que l'expérience que vous exposez ait un sens. Ogre et OGL exigent que vous ayez des connaissances de base sur la façon de parler à la carte graphique, ce qui ne signifie pas que vous devez connaître OGL ou DX mais, fondamentalement, vous devez savoir ce qu'ils peuvent faire. À ce stade, Ogre ajoute des couches qu'un débutant mettra des mois à configurer correctement et que vous ne pouvez pas voir avec un exemple que vous avez configuré en un mois. Il est toujours bon de connaître OGL, mais renvoyer Ogre à cause de votre expérience ne veut rien dire.
Klaim
1
Non, OGRE ne vous oblige pas vraiment à savoir comment parler à la carte graphique - c'est le but. De plus, OGRE n'est pas seulement un wrapper autour d'une API graphique, c'est aussi un gestionnaire de scène, un chargeur de modèle, etc.
Jarrett
5

Réponse courte? OGRE.

Réponse longue? OGRE est un wrapper sur OpenGL, vous devez donc faire beaucoup moins de travail. Vous n'avez pas à vous soucier autant d'envoyer des données au GPU ou de lier des shaders, ou de trier les sommets à un niveau bas. Il est beaucoup plus rapide d'utiliser OGRE que d'utiliser OpenGL pour la production, et il est probable que votre code sera (très marginalement) plus rapide aussi.

Si vous êtes intéressé par le développement de moteurs, utilisez GL. Sinon, utilisez OGRE. Et je commencerais probablement par OGRE de toute façon.

Le canard communiste
la source
3

Connaître le matériel graphique informatique n'est pas nécessaire pour le développement de jeux. Il est nécessaire de devenir programmeur graphique ou de faire partie de l'équipe de développement de rendu dans une entreprise de jeux (Note personnelle: ce qui est le plus amusant sur le développement de jeu entier :)).

Si vous ne souhaitez pas devenir ingénieur de rendu, vous n'avez sans doute pas besoin d'apprendre OpenGL ou DX pour développer des jeux.

Notabene
la source
2

Je dirais que ni l'un ni l'autre n'est le meilleur pour un débutant, mais "meilleur" est un terme relatif qui dépend exactement de ce que vous cherchez à gagner. Par exemple, si ce que vous voulez, c'est apprendre la programmation graphique 3D afin d'acquérir des compétences que vous pourriez utiliser pour obtenir un emploi de programmeur graphique 3D pour une société de jeux, alors ces choix ont du sens. Avec cet objectif, vous pouvez également regarder DirectX.

Si toutefois vous avez un autre objectif en tête, je vous recommande de regarder d'autres options. Pour commencer, alors que votre question suppose que vous voulez être impliqué dans le développement de jeux en tant que programmeur, vous ne l'avez pas spécifié. L'écriture d'un moteur graphique en OpenGL et la construction au-dessus d'Ogre sont définitivement pour les programmeurs hard-core.

jhocking
la source