2009-08-15 5 views
0

Je suis un développeur professionnel travaillant principalement avec Java mais sur mon temps libre j'aime jouer avec différentes langues et bibliothèques. La chose est que je veux commencer à apprendre comment développer des applications 3D ou des jeux. Il ya beaucoup de moteurs là-bas, mais j'ai peur qu'en utilisant ceux-ci directement, je vais échouer à apprendre les bases du développement 3D, car ils sont si haut niveau. Dois-je commencer à programmer avec un moteur de graphe de scène, une bibliothèque comme SDL ou aller directement travailler avec OpenGL?Commencez avec un moteur de graphe de scène ou avec opengl direct?

Je fais tout le développement sur Linux, mais je veux que les choses que je développe pour être multi-plateforme.

Répondre

3

Je commencerais par OpenGl. Faites quelques scènes de base et commencez à construire votre propre "moteur 3D" à partir de là. Ça va probablement être mauvais, puisque vous apprendrez et devrez manipuler par vous-même BEAUCOUP de choses de bas niveau. Cependant, je pense que c'est ce que vous voulez apprendre. Ne pas créer des choses trop complexes, je voudrais aller seulement à l'essentiel, et après avoir maîtrisé cela (je me réfère à des manipulations matricielles, caméra, frustrum, occlusion, etc.) regardez quelques moteurs 3D, pour voir comment ils mis en œuvre. Je commencerais à les utiliser à ce moment-là.

Vous avez besoin d'une boîte à outils simple pour configurer un canevas OpenGL. Je recommande GLUT, qui est vieux et TRES TRES simple. Cela vous aidera à définir un écran simple. Un niveau inférieur à cela sera non portable, et va être un peu difficile à créer (Xorg appelle? Soupir ...). De nombreuses bibliothèques de kits d'outils ont des canevas 3D (QT, SDL, etc.). Mais le bon point de GLUT est qu'il ne fait que créer votre fenêtre, mettre en place certaines fonctions et c'est tout.

Un très bon moteur 3D, que vous pourriez vouloir regarder après avoir regardé les bases d'OpenGL est Ogre. Il est bien programmé et simple à utiliser.

+0

si je suis opposé à l'utilisation de singletons qui existent tout au long de Ogre, ainsi que tous les fichiers de configuration et plugins nécessaires pour faire quoi que ce soit. : - \ Mais je suis très d'accord pour commencer avec OpenGL. – Ricket

+0

@Ricket ouais, je suis d'accord avec vous. Cependant, c'est un moteur 3D, rien de plus, rien de moins. C'est pourquoi je l'aime pour apprendre. C'était juste une suggestion, il y a d'autres moteurs qui pourraient très bien faire le travail aussi. –

2

J'ai commencé avec OpenGL. Il y a beaucoup de tutoriels disponibles sur le web, qui en plus d'enseigner OpenGL en soi, vous permettent également d'apprendre beaucoup de choses importantes dans le développement 3d (jeu), tels que l'éclairage de scène approprié, et les bases de l'animation.

2

Les bases du développement 3D en termes d'accès OpenGL direct sont une cible en évolution rapide. Préparez-vous à apprendre de nouvelles fonctionnalités tous les quelques mois. Après des années de stagnation, trois normes OpenGL ont été publiées au cours de la dernière année, chacune d'elles présentant des changements importants. Cela peut être agréable, mais cela demande beaucoup d'efforts.

Si vous voulez juste jeter un coup d'œil sur la façon dont cela fonctionne depuis longtemps, optez pour la spécification OpenGL 2.0. Il est là pour rester, au moins pour quelques années de plus. OpenGL 3.0 introduit tous les changements dans un contexte séparé, et NVIDIA s'est engagé à ne pas abandonner les anciennes fonctionnalités. Vous ne serez pas compétitif, mais vous avez une plate-forme stable pour votre temps libre.

Si vous considérez OpenGL comme un moyen de parvenir à une fin, vous préférerez peut-être des bibliothèques de niveau supérieur qui font tout le sale boulot pour vous. Les "autres" bases des graphismes 3D, à savoir les vecteurs, les matrices, les quaternions (et ainsi de suite) apparaissent également à ce niveau. Vous n'avez simplement pas besoin de savoir comment les transmettre efficacement au GPU. Si vous optez pour des graphismes 3D de plus haut niveau, vous pouvez vous concentrer sur les choses qui restent les mêmes pour toutes les API (OpenGL, OpenGL ES, Direct3D) et les technologies (rasterisation scanline, raytracing). Donc, à la fin, c'est à vous de décider ce que vous aimeriez faire de votre temps libre. Les deux voies sont intéressantes, il n'y a pas de «meilleur» moyen inhérent s'il n'y a pas d'objectif fixe.

+0

Merci pour la réponse. Je suppose que c'est la même chose qu'avec la plupart des technologies logicielles modernes. Il prend beaucoup de temps à suivre mais c'est amusant d'essayer. –

0

je peux vous suggérer OpenSceneGraph et C++

ou peut-être Delta3D. il est une bibliothèque basée OpenSceneGraph

il y a aussi Ogre mais je ne l'utilise pas ..

Questions connexes