J'aimerais avoir une idée du type de mathématique généralement nécessaire pour la programmation du moteur de jeu 3D? Des mathématiques spécifiques (telles que la géométrie vectorielle) ou des algorithmes de calcul (tels que les transformations de Fourier rapides), ou tout cela est-il abstrait avec DirectX/OpenGL, de sorte que les mathématiques complexes ne sont plus vraiment nécessaires?Mathématiques utilisées dans la programmation du moteur 3D (jeu)
Répondre
Matrices, trig, la géométrie la plupart du temps et un peu d'algèbre linéaire
Jetez un coup d'oeil ici http://www.essentialmath.com/
mathématiques complexes entre en jeu, mais le plus important est la compréhension des concepts sous-jacents tels mathématiques et souvent pas le calcul lui-même. Tant que vous comprenez comment tout cela va de pair, il existe souvent des méthodes auxiliaires pour de nombreux calculs dont vous aurez besoin. Bien sûr, cela dépend en grande partie de la plate-forme de développement que vous utilisez également.
Avez-vous une suggestion pour savoir où apprendre les concepts et comment ils s'appliquent à la programmation de jeux. trouver des sauts dans l'enseignement/comment/faire les maths et non/quand/vous devriez l'utiliser – TheGeoff
@TheGeoff: la programmation graphique 3D nécessite une bonne compréhension de l'algèbre linéaire. [Tutoriel de mathématiques vectorielles pour 3D Computer Graphics] (http://chortle.ccsu.edu/vectorlessons/vectorindex.html) est de loin la meilleure ressource pour l'apprentissage des vecteurs et des matrices. Il est également interactif en ce qu'à la fin de chaque section il y a une question de test pour vérifier et sceller la compréhension de ce sujet. – legends2k
Algèbre linéaire et géométrie algorithmique pour la plupart; Les quaternions sont largement utilisés et l'analyse numérique est nécessaire si vous travaillez sur un moteur physique.
La quantité que vous utiliseriez quotidiennement dépend de ce que vous faites. Si vous êtes un programmeur graphique, et donc la construction du moteur graphique 3D lui-même, alors vous implémenteriez ou maintiendriez des implémentations de bibliothèques de classes et des fonctions qui font réellement le calcul, donc il serait relativement important de connaître les détails sanglants. Si vous utilisez la bibliothèque en tant que client ou travaillez sur une autre partie du moteur de jeu (IA, audio, UI, caméra, etc.), vous devrez comprendre les mathématiques de manière conceptuelle, mais vous pouvez certainement vous en passer. une matrice inverse sur un tableau blanc du haut de votre tête.
Les API graphiques n'éliminent pas le besoin pour quelqu'un de connaître cette mathématique; ils sont limités au dessin, donc toute la gestion de scène et la simulation du monde doivent être implémentées en dehors de l'API graphique. Bien sûr, il existe également des options de middleware, mais de nombreux studios développent leurs propres systèmes.
Il existe un bon nombre de ressources ciblées sur ce marché. Par exemple, sur Amazon il y a des livres comme 3D Math Primer For Graphics and Game Development, et il y a probablement beaucoup de choses en ligne aussi.
Algèbre linéaire! Beaucoup de lots d'algèbre linéaire!
Voici quelques classes et des situations d'exemple où vous les avez besoin
- Vector - position, la vitesse, normals
- Matrice - transformations
- Quaternion - rotations (grands pour les os animations)
- Ray - détection de collisions de projectiles
- Avion - détection de collision de projectile
- Frustum - rendre culling
- Sphère - rendre culling, test de collision rapide
- Axis-Align Boîte englobante - abattage, des tests de collision, le partitionnement spacial
- Boîte de jonction orientée - essais de collision
- Convex Hull - collision, le partitionnement spacial
- etc.
Vous devriez commencer par Vector et Matrix, car ils seront utilisés partout dans le moteur (graphiques, physique, AI, etc.)
On dirait que la plupart se déplacent et détectent les collisions. –
- 1. Programmation d'animations 3D?
- 2. Silverlight 3 - Moteur 3D
- 3. Moteur physique pour sandy 3d
- 4. Quel est le meilleur moteur 3d/2d portable gratuit?
- 5. Moteur de physique 3D XNA
- 6. Silverlight C# Jeu ou moteur graphique?
- 7. Effets 3D dans un jeu 2D utilisant OpenGL
- 8. Quelle est la meilleure façon de construire un jeu sur un 3D-Engine existant
- 9. Fonctions de langage dynamique et méta-programmation utilisées dans Django
- 10. Est-ce la physique du jeu?
- 11. simple C++, moteur de jeu opengl pour linux?
- 12. Programmation de l'iPhone: avaudioplayer fuit la mémoire sur le jeu
- 13. Symboles mathématiques dans vim
- 14. Activation du moteur d'archivage
- 15. Fichiers 3D dans vb.net
- 16. Les moteurs de jeu 3D pour Ruby ou Python?
- 17. Mathématiques symboliques Python?
- 18. Devrais-je utiliser un analyseur d'expressions dans mon jeu de mathématiques?
- 19. Y a-t-il un moteur de jeu à Scala?
- 20. Le développement du jeu sur iPhone en utilisant le moteur Unity
- 21. Simuler le bruit du moteur dans Flash 10
- 22. Déterminer l'ordre du polygone 3D
- 23. Malheurs du moteur de recherche
- 24. Devrais-je utiliser la 3D pour mon jeu? Si oui, jusqu'où et de bons tutoriels?
- 25. Quelles sont les bonnes ressources sur la conception de moteur de jeu 2D?
- 26. Bonne représentation de collision de personnage de joueur dans le jeu de plate-forme 3D?
- 27. Utilisation des fonctions mathématiques dans Sql avec MS Access
- 28. Redirection du moteur de recherche
- 29. T-SQL 2005: Supprimer la sortie du jeu de résultats
- 30. LSP dans la programmation OO?
3D La programmation graphique nécessite une bonne compréhension de l'algèbre linéaire. [Tutoriel de mathématiques vectorielles pour 3D Computer Graphics] (http://chortle.ccsu.edu/vectorlessons/vectorindex.html) est de loin la meilleure ressource pour l'apprentissage des vecteurs et des matrices. Il est également interactif en ce qu'à la fin de chaque section il y a une question de test pour vérifier et sceller la compréhension de ce sujet. – legends2k
Cette question doit être déplacée vers l'un des autres sites Stack Exchange, tels que Game Development ou Math. (Je ne sais pas si c'est vrai, car cette question inclut la programmation) – Andreas