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.
Réponses:
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:
la source
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.
la source
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.
la source
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.
la source
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.
la source