Partage
  • Partager sur Facebook
  • Partager sur Twitter

les maths sont vraiment indispensable dans la 3D ?

Anonyme
24 janvier 2020 à 16:02:03

Bonjour les amis :)

je suis actuellement élève de 4eme (14 ans), je suis passioné d'informatique depuis quelques temps (mes 11 ans) , je connais quelques langages de programmation (PHP/JS , C,python,Java) , déja programmé un forum et contribuer a des projets , j'ai quelques connaissances en réseau et depuis quelques temps je commence a m'intéresser a la 3D mais vous vous doutez que j'ai pas un doctorat en mathématique au vu de mon jeune age.

J'aimerais commencer par apprendre via blender pour attaquer ensuite des choses plus complexe comme openGL,WebGL et Unity3D

et donc , pour atteindre ses objectifs ai je besoin de connaissances poussé en mathématiques ?Si oui , lesquels et comment les apprendre en autodidacte ?

Merci d'avance de votre aide les amis !!

  • Partager sur Facebook
  • Partager sur Twitter
24 janvier 2020 à 21:24:57

Bonjour,

Je ne suis pas un expert dans ce domaine mais je suis cependant en étude en informatique et j'ai déjà fais pas mal de modélisation 3D et de développement de jeu 3D (même si inachevés :D).

Tout d'abord, tout dépend de ce que tu entends par 3D

- Indispensable pour son fonctionnement ?

- Indispensable pour la modélisation d'objet ?

- Indispensable pour son utilisation (avec entre autre Unity) -> dépend encore.

Je vais éviter le débat infini en différenciant Logique Mathématique et Algorithme

Pour ce qui est de la présence de Mathématiques dans la 3D, oui les maths sont partout en 3D en "caché" : par exemple lorsqu'on fait la rotation d'un objet dans Blender , je suppose qu'il fait des calculs de matrices (vu en Bac+1/2) assez complexes afin qu'a l'écran on puisse voir notre objet tourner sur lui-même.

Toutefois, cela est seulement en sous couche et l'utilisateur n'a quasiment jamais l'utilité de s'intéresser à cela. Il reste toutefois quelques notions de maths assez simple tels que la position en x,y,z dans l'espace et sa rotation en x,y,z ce qui est un niveau assez basique des maths.

Par exemple de souvenir dans Blender, je n'ai jamais eu besoin d'utiliser quelque chose demandant un grand bagage mathématiques car j'ai toujours réalisé des choses basiques (modélisation, textures etc ...). Il y aurait peut-être besoin de plus de Mathématiques dans la réalisation d'effets spéciaux ou de matériaux mais je ne m'y connais pas assez dans ce domaine.

Pour ce qui est par exemple de Unity3D, les maths sont un peu plus importants puisque les notions assez haut niveau apparaissent. Cependant les notions les plus difficiles peuvent être contournées.

Par exemple Unity utilise le système de rotation nommé Quaternion afin de simplifier les calculs de rotation, c'est un système basé sur 4 données : x,y,z,w et que très peu de personnes ne comprennent car il est extrêmement peu intuitif et demande un niveau Post bac avancé. Cependant Unity met à disposition des fonctions permettant de passer de Quaternion(x,y,z,w) à Euler (x,y,z) ce qui facilite la programmation.

Il y a toutefois des cas où les maths seront plus ou moins important mais tout dépendra de la nature du projet.

En terme général, je part du principe que pour un petit projet, les notions apprises jusqu'en Premiere feront largement l'affaire. Le reste n'est qu'une question de programmation et de motivation. Toutefois une bonne partie de la programmation comportera des Maths, mais cela restera des opérations simple tels que des additions, soustractions, multiplications etc ...

Par contre si l'on souhaite faire par exemple l'affichage d'un objet 3D de zeros (donc sans logiciel), cela demanderait un bagage mathématique et de programmation assez conséquent (de souvenir matrices + nombres complexes et encore plus si l'on souhaite optimiser).

Pour ce qui est des notions Mathématiques que je considère importants pour l'utilisation de la 3D :

-Vecteurs (x,y,z)

-Geometrie:

  • cosinus, sinus, tangente, degree, radian
  • position/rotation dans l'espace
  • tangente

- val absolue,arrondie

et peut être d'autres ...

-
Edité par coukil 24 janvier 2020 à 21:30:53

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
24 janvier 2020 à 22:04:02

Merci de ton message , aurait tu des liens pour apprendre ces notions ?
  • Partager sur Facebook
  • Partager sur Twitter
25 janvier 2020 à 17:19:45

Après quelques recherches, je suis tombés sur ces liens (dont je ne connaissais pas):

https://www.youtube.com/watch?v=e3z91RqZPAk&feature=emb_logo

Celle ci devrait être assez pour faire une bonne partie de ce que l'on souhaite faire sous Unity. Même si il est possible d'utiliser les vecteurs sans pour autant tout comprendre à leur fonctionnement juste en testant plusieurs cas.

Video beaucoup plus difficiles :

https://www.youtube.com/watch?v=sKCF8A3XGxQ&list=PLW3Zl3wyJwWOpdhYedlD-yCB7WQoHf-My&index=2&t=0s

Celle ci est plus orienté si l'on souhaite faire de la 3D en partant de rien, ce que je déconseille.

Sinon les cours de maths en ligne niveau 3eme/seconde/premiere portant sur les notions cités plut haut pourront aussi être utiles.

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 janvier 2020 à 0:21:12

Salut,

Pour une réponse rapide :
  • Blender: OUI ! Tu n'as pas besoin de connaissances en mathématiques avancées, c'est plutôt du feeling (voire de l'art).
  • Le reste: Non, pas tout de suite. Trop de choses à connaître/comprendre, y compris avec Unity.

Rien ne t'interdit de regarder un peu ces notions mathématiques qu'on te balance. Mais il ne faudrait pas que tu sois déçu car tu n'arrives pas à avancer. Ça pourrait te frustrer et t'écarter d'un domaine de l'informatique qui pourrait te plaire (et qui est d'ailleurs passionnant !).
Ne cherche donc pas à aller trop loin, trop vite et te confronter à un mur pour le moment infranchissable.

Pour compléter, je pense que tu pourrais essayer de faire des applis (jeux) en 2D dans un premier temps. Pas forcément avec Unity car il conserve son côté "moteur 3D". Tu as d'excellentes bibliothèques pour faire de la 2D pure.
En C/C++ : SDL2, SFML, Allegro...
En Java : LWJGL (erreur, c'est Slick2D dont je voulais parler)
En TypeScript aussi pas mal de libs, pour un jeu en web browser par exemple.

La 2D ne demande pas autant de connaissances en mathématiques. J'avais participé à la conception d'un jeu en Java à l'école d'ingé (oui oui, notre devoir était bien de faire un jeu!), on s'était quasiment limités à addition, soustraction, multiplication, division et modulo. Un collègue avait commencé à calculer des paraboles pour les sauts de son personnage. Nous c'était du i++/i-- et ça marchait impec.


Donc on peut déjà très bien s'amuser en 2D. Tu as plein de types de jeux : plateforme, RPG, stratégie, ... ou autres types d'application même.
Sans parler de choses communes ou proches entre un jeu 2D comme 3D : l'inventaire, l'IA, etc.


Pour une réponse plus développée :
Je dis donc non aussi à Unity car, même s'il te donne des classes pour calculer les vecteurs, matrices, quaternions... Au final, si tu sais pas t'en servir étant donné ton jeune âge, t'es pas bien plus avancé pour autant.

Et surtout pas d'OpenGL/WebGL. Vraiment. Il n'y a pas que le problème de maths ici. Il y a aussi la programmation, la logique et le fonctionnement d'OpenGL, le vaste sujet des shaders, et j'en passe. Ça te ferait un poids de 10 tonnes de connaissances à avoir, d'un seul coup. Il faut penser à tes cours aussi ! :D


J'espère avoir été aussi clair que possible sur les raisons qui me laissent sur la réserve.
Par contre, pour Blender je le redis : FONCE !! :)
PS: en tout cas, beau parcours déjà à seulement 14 ans. :)

-
Edité par Anonyme 26 janvier 2020 à 6:56:40

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 janvier 2020 à 11:24:30

Merci antixeon , pour opengl et webgl je pense attendre un peu mais pour blender je susi ravis de pas avoir besoin des maths , merci beaucoup !
  • Partager sur Facebook
  • Partager sur Twitter
9 février 2020 à 14:41:17 - Message modéré pour le motif suivant : Les insultes ne sont pas tolérées