IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Moteurs 3D Discussion :

Comment fonctionne les moteurs 3D


Sujet :

Moteurs 3D

  1. #1
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut Comment fonctionne les moteurs 3D
    Bonjour,

    je n'ai aucune intention d'utiliser un jour un moteur 3D (pour coder), mais je me pose une question sur comment ça marche.
    Si je prend l'exemple des jeux, quand on fait un Puissance4 ou autre Tetris, on peut tout à fait modéliser l'espace avec une matrice.
    Et quand on modélise un environnement 3D/2D plus complexe qu'une simple matrice (un simple jeu avec scrolling à la R-Typê), que des objets se déplacent dans cet environnement, comment ça marche ?
    J'imagine que l'environnement n'est pas modélisé pixel par pixel (avec une grosse matrice), et les objets ?

    Bref, pour ma culture générale, quels sont les principes utilisés par les moteurs 3D/2D ?
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  2. #2
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Bonjour, alors, tout d'abord il ne faut surtout pas confondre moteur 2D/3D avec moteur de jeux.
    Moteur de jeux: contient toute la mécanique d'un jeu, les règle de gestion, les actions possibles .....
    Moteur 2D/3D: effectue une représentation d'un monde à l'écran.

    La gestion des actions (comme par exemple appuie sur la barre espace entraine un tir) est géré par le moteur de jeu.
    Le déplacement d'un joueur dans l'univers est géré par le moteur de jeu.
    le moteur 2D/3D n'effectue qu'un rendu à un instant T d'un ensemble de figure définis par le moteur de jeu.

    Prenons un exemple de jeu 3D:
    Le moteur de jeu contiendra la position des joueurs.
    Le moteur 3D affichera le joueur à la position définis par le moteur de jeu.

    La plupart des moteur 2D/3D utilisent des mesh, c'est en ensemble de petit triangle modélisant une figure (joueur, arbre ....).
    Lorsque tu demande au moteur d'affiché l'image, il va effectué une projection de l'univers sur l'écran.
    Pour cela, plusieurs solution existe, le raytracing (long et gourmand en ressource, mais c'est celui que je connais le mieux).
    Et l'affichage grace au vertex et ces petits triangles dont je te parlais.
    En raytracing, un rayon est envoyé pour chaque pixel de l'écran et va aller regarder l'intersection la plus proche avec un objet. Puis calculer la couleur de ce pixel en fonction de la reflection etc....

    Pour l'autre méthode avec les vertex etc... je ne saurais l'expliqué, je n'ais pas suffisamment de connaissance.



    Ensuite pour les moteur 2D:
    Ils s'occupent d'afficher des images à un endroit précis et peuvent detecté les collision de plusieurs manière:
    _ Lorsque deux image viennent à se superposer (en regardant pixel par pixel)
    _ Lorsque deux rectangle de collision sont définis par le moteur de jeu comme étant le rectangle de collision.

    Tu t'apperçois donc que les moteur 2D/3D ne sont qu'un simple écran permettant le dialogue entre les données brut du jeu (position d'un joueur, couleur de l'herbe, image d'un vaisseau) et l'utilisateur (clique de souris, appuie sur une touche du clavier ....).

    Voila j'espère que ça t'aidera et si tu as d'autre question sur les moteur 2D et raytracing, je me ferais une joie de te répondre .
    Pour les moteurs 3D, je laisserais des membres plus expérimentés te répondre.
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 548
    Points
    218 548
    Billets dans le blog
    118
    Par défaut
    Bonjour,

    Pour expliquer comment fonctionne la rasterization (méthode des triangles) : http://jeux.developpez.com/videos/JS...g-webgl-dance/

    @ManusDei : Pouvez vous préciser votre question et nous dire si skeud répond à votre question, je ne l'avais pas compris sous ce sens
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut
    Effectivement, c'est pas ce que je demandais, mais avec sa réponse je peux reposer la question avec les bons mots
    La vidéo m'a aussi fourni quelques éléments de réponse.

    Donc je m'intéresse au fonctionnement des moteurs 2D/3D.

    Comment un environnement est-il modélisé ?
    J'imagine qu'on ne positionne pas les points de l'environnement un à un (il y en aurait trop), et d'après la vidéo on positionne des points et les liens entre les points (ou des cubes selon la méthode ? il y a plusieurs méthodes ?), puis on utilise des transformations (interpolations ?) pour lisser le tout.

    Et quand on positionne un objet dans l'environnement, comment on le "pose" ? Dans une matrice pour le puissance 4, le nombre de coordonnées est simple, mais dans un environnement 3D, c'est beaucoup plus vaste. Mais ça j'ai plus ou moins compris avec l'explication sur les vertex, on réfléchit sur plusieurs niveaux, un pour l'endroit où est l'objet, un pour l'orientation de l'objet, et un pour l'orientation de la caméra (et donc l'affichage).
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 548
    Points
    218 548
    Billets dans le blog
    118
    Par défaut
    Je vois et je vais tenter de répondre.

    Dernièrement, les environnements 3D sont fait dans des logiciels de modélisation 3D, du type de Blender ou 3DS Max. Ensuite, l'environnement entier (je parle du niveau, sans les objets dedans) est posé dans la scène (technique, il est posé à l'origine aux coordonnées (0, 0, 0). Ensuite, on place une caméra permettant de visualiser la scène, d'un point bien précis (généralement, la caméra suit le joueur).
    Ensuite, dans ce niveau, on peut rajouter des caisses, des lampadaires, des trucs, pour rajouter du décor et faire que cela soit un peu plus consistent. Pour cela, on va prendre un éditeur graphique style celui que l'on trouve dans Unity, UDK, CryEngine, Project Anarchy, le niveau va y être placé (avec un glisser/déposer), puis les décors, seront placés de la même manière et dans cet éditeur, vous pouvez déplacer les éléments, les tourner, les redimensionner.
    D'un point de vue technique, la représentation de la position d'un objet 3D, c'est un vecteur 3D (par exemple : (0, 0, 0)). Évident, je l'accorde. Mais, nous, on vaut aussi la rotation et la mise à l'échelle (redimensionnement). Et bah, les mathématiques sont nos amis (enfin pour certains) et dans une matrice 4x4, on peut stocker tout cela. C'est d'ailleurs bien expliqué ici : http://jeux.developpez.com/tutoriels...el-3-matrices/
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut
    C'était ça que je voulais, merci
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  7. #7
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 717
    Points : 741
    Points
    741
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Pour expliquer comment fonctionne la rasterization (méthode des triangles) : http://jeux.developpez.com/videos/JS...g-webgl-dance/

    @ManusDei : Pouvez vous préciser votre question et nous dire si skeud répond à votre question, je ne l'avais pas compris sous ce sens
    Excellente vidéo merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment fonctionne les versions d'un logiciel?
    Par Antigonos Ier Gonatas dans le forum Windows
    Réponses: 12
    Dernier message: 14/07/2006, 18h48
  2. [VB6] Comment fonctionne les Tableaux ?
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 27/04/2006, 14h59
  3. [FLASH 8] Comment fonctionne les clips
    Par steeves5 dans le forum Flash
    Réponses: 3
    Dernier message: 27/01/2006, 10h23
  4. Comment fonctionnent les index des options d'un select ?
    Par pekka77 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/10/2005, 18h05
  5. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo