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

Développement 2D, 3D et Jeux Discussion :

Comment décrire un univers 3D ?


Sujet :

Développement 2D, 3D et Jeux

  1. #21
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    Citation Envoyé par buggen25 Voir le message
    Un objet 3D n'est pas l'ensemble des polygones, mais c'est la manière dont les triangles sont reliés qui determine la forme de l'objet.
    même sans être reliés entre eux, un ensemble de polygones composés de coordonnées spatiales forment un objet 3D

    Citation Envoyé par buggen25 Voir le message
    L'univers 3D en informatique n'est que illusion. cet univers 3d n'est qu'un ensemble de pixels projetés sur un ecran plat.
    sur l'écran oui, l'illusion est donnée par la projection
    mais derrière, avant l'affichage, tes objets 3D sont en 3D, tu ne calcules pas les déplacements, les collisions, les rotations ect par rapport aux pixels mais bien par rapport au coordonnées spatiales
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  2. #22
    screetch
    Invité(e)
    Par défaut
    Citation Envoyé par gifffftane Voir le message
    Heu... un mesh ?? heu... c'est ça ?
    c'est un modèle 3D sans scene, c'est une liste de triangles en 3D (avec quelques proprietés)
    en gros, si tu representes ta scene comme un arbre comme dit plus haut, le mesh c'est la feuille.

  3. #23
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Salut gifffftane, tout le monde a parfaitement bien décrit ce que c'est que la 3d en informatique.
    Pour faire un modèle 3d donc en anglais mesh il faut un outil de modélisation sinon tu peux faire cela avec du texte c'est le cas des fichiers .x pour Direct X
    Regarde aussi du coté de Persistence of Vision pour créer des scènes il faut faire des fichiers scripts.
    www.povray.org
    Mais je n'arrive pas à saisir au final ce que tu veux faire

    Citation Envoyé par gifffftane Voir le message
    J'ai fait des tas de fichiers XML dans ma vie, et je n'ai jamais eu conscience de faire de la 3D !

    Certes, je présume que l'on peut décrire de la 3D même par de simples textes, mais je me demande comment ? comment font ceux qui ont étudié la question ? Quelle est la théorie de la description 3D ? Quels sont les meilleurs exemples ?

    Je ne sais pas si le sens de ma question s'éclaircit, en tous les cas merci d'essayer de passer à travers mon brouillard
    Ahhh ça y est ça s'éclaire je pige maintenant
    En général on utilise des arbres binaires pour trier l'ordre d'apparition des objets à l'affichage sinon la technique la plus simple c'est la technique du Z buffer
    http://en.wikipedia.org/wiki/Z-buffer

    Sinon la technique du Portal Rendering
    http://en.wikipedia.org/wiki/Portal_engine

    Consulter cela
    http://en.wikipedia.org/wiki/Visibility_problem

    Citation Envoyé par gifffftane Voir le message
    Donc j'aimerais m'informer sur les 3 premiers points, avoir de la doc dessus. Par exemple : comment trouve-t-on les triangles susceptibles de former l'objet, comment en fait-on la liste, comment fait-on la bounding box, ou la structure géographique ?

    Ce qui m'étonne dans tout ça est qu'il semble qu'il n'y ait rien qui relie deux objets entre eux, à part la notion de bounding box ?... Ou alors c'est la structure géographique ? Par exemple une table, il n'y aurait rien qui dirait Une table se compose d'un plateau et de pieds, mais c'est juste un jeu de bouding box et d'agencement géographique ?
    Bon maintenant ça s'obscurcit de nouveau.
    Tout dépend ce que tu veux faire au final je ne comprends toujours pas.
    C'est à toi de définir des règles d'affichage d'objet et les liaisons qui vont avec.
    Une table pour moi c'est un cube 3d redimensionné en largeur hauteur et longueur et 4 cylindres...

  4. #24
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Points : 392
    Points
    392
    Par défaut
    Formats de mondes 3d:
    - VRML (déprécié)
    - X3D (du VRML en XML avec des shaders en plus)
    - Collada

    puis les formats natifs de jeux, genre les .bsp de Quake, etc...

  5. #25
    Acropole
    Invité(e)
    Par défaut
    Citation Envoyé par gifffftane Voir le message
    Cependant je reste choqué par le fait qu'il n'y ait pas de tables et de verres. Pour mettre mes textures, il faut à un moment ou à un autre que je dise : ceci est un "verre", mettre la texture correspondante dessus, non ? Lorsque je fais mes noeuds, pareil : relie le noeud "table" au noeud "verre". Pareil pour les moteurs que j'imagine divers et variés ? Il faut bien que le moteur ait un moyen de repèrer les choses ?
    Ton ensemble de points + textures tu peut appeler ça un verre si tu veux, l'ordinateur lui, s'en fiche.

    Si on reprend la liste que j'ai donnée plus haut on à :

    - fichier avec la liste des objets et leur coordonnées
    - fichier 3d de l'objet + texture que tu appellera verre et table

    dans ton fichier "monde" (le premier) tu aura X verres et X tables a telles ou telles coordonnées.
    Après, le moteur prend tout ces objets avec leurs textures et leurs coordonnés (peut importe que tu pense que ce soit un verre ou une table) puis il calcule ce qu'il doit afficher. Pour l'ordinateur il n'y a que des coordonnés, c'est à celui qui modélise tout ça (dans blender) de faire en sorte que ça ressemble à un verre et une table.

    Ca peut être un truc comme ça en XML :

    <Monde>
    <Objet type="verre" Position="0,0,100.0" rotation="0,45,90.60" echelle="1,1,1" />
    <Objet type="verre" Position="10.0,0,100.0" rotation="0,45,90.60" echelle="1,1,1" />
    <Objet type="table" Position="0,0,0" rotation="0,0,0" echelle="1,1,1" />
    </Monde>
    etc...
    tu arua en suite un fichier verre.3d et un table.3d avec les noms des textures dedans, les coordonnées des points etc.

    Tu n'auras plus qu'a charger ces deux fichiers et à dupliquer les objets dans le moinde en fonction de leur position, orientation et echelle.

    Pour te donner une image plus précise, dans la réalité, un verre n'est pas un verre, c'est un assemblage d'atomes à un endroit donné. En 3d c'est pareil, c'est un assemblage de sommets et de faces à un endroit donné.

    Aprés, si un humain passe a coté il se dirra "tiens, un verre", alors qu'un cailloux s'en fout. Le cailloux, c'est l'ordinateur ! L'humain c'est le visiteur de ton monde.

  6. #26
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    OK, je remercie tous, j'ai largement de quoi progresser pour mon petit job.

    À bientôt pour de nouvelles 3DAventures.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  7. #27
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 370
    Points : 23 625
    Points
    23 625
    Par défaut
    Citation Envoyé par gifffftane Voir le message
    OK, je remercie tous, j'ai largement de quoi progresser pour mon petit job.
    Ce qui est surtout intéressant de retenir, c'est que, dans l'absolu, tu peux représenter un monde 3D de la façon qui te plaît. Tu peux étudier l'existant pour savoir ce qui se fait dans la discipline, mais autrement, le mieux est de stocker les informations relatives à chaque objet de la manière qui te permette de les retrouver le plus facilement possible.

    Si tu ne l'a pas déjà fait, je te conseille Persistence Of Vision (POV). On ne présente plus ce raytracer, mais il a notamment la particularité d'utiliser un langage particulier pour décrire la scène. Ce fut même le seul moyen de le faire pendant un certain temps, et c'est encore très utilisé.

  8. #28
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Pour l'instant j'en suis juste au début du début. Le but est de pouvoir placer n'importe quoi dans un environnement 3D ; ce que je pense avec tout ça, est qu'il faut au moins associer des dimensions à chaque valeur.

    Un jour, je demanderai : Qu'est-ce qu'une dimension ? Mais, pour l'instant, ça ira, il faut déjà mûrir cet intéressante discussion.

    D'ici là je vais jouer un peu avec ces outils cela me donnera peut être des idées.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  9. #29
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 370
    Points : 23 625
    Points
    23 625
    Par défaut
    Honnêtement, je ne vois pas ce qui te rend si perplexe.

    En fait, pour créer une scène 3D, il faut d'un côté pouvoir décrire les objets, et de l'autre, les localiser dans l'espace. En incluant dans la liste des objets la caméra et les sources de lumière, tu as tout décrit.

    Si tes objets sont des choses connues et simples, et si de surcroît ils peuvent être décrits de manière mathématique, alors tu n'as besoin de rien d'autre. Tu leur donnes une position dans l'espace avec un triplet <x,y,z> et tu les orientes, soit avec un vecteur, soit avec des transformations (tu dis explicitement rotate ou translate). Exemple en P.O.V. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sphere 
    {
        <14,52,16> 5
    }
    Ceci déclare une sphère dont le centre se trouve en x=14;y=52;z=16 et dont le rayon vaut 5. Ensuite, tu leur donnes des attributs : couleur, texture, modificateurs de surface, façon de renvoyer la lumière, etc. À ce stade, il est très facile pour un raytracer de calculer si un rayon de lumière frappant ou provenant d'un pixel de l'écran croise la sphère ou pas. Il peut donc choisir sa valeur en conséquence. L'étape suivante est l'utilisation de la géométrie dans l'espace pour former des figures plus complexes avec ces éléments simples.

    Si, toutefois, tu veux dessiner des objets plus complexes tels qu'un animal, tu es obligé de faire de l'approché, c'est-à-dire décomposer cet objet en facettes. Le moyen le plus facile pour y parvenir est de définir trois points dans l'espace, formant un triangle. La particuliarité de celui-ci est qu'il formera toujours une face : trois points dans l'espace appartiennent toujours au même plan (de la même manière que deux points sont forcément alignés). Pour définir d'autres facettes, tu peux te contenter de définir un quatrième point, les autres étant les points immédiatement précédents (donc le second et le troisième). Cela engendrera un second triangle qui aura une arête commune avec le précédent.

    En ajoutant un cinqième point, puis un sixième et ainsi de suite, tu formes une surface que tu peux modeler à souhait, et qui est très facilement manipulable par un ordinateur. Par contre, au rendu, moins il y a de sommets et plus ta surface est anguleuse. Il faudra donc recourir à un algorithme supplémentaire chargé de « lisser » les coins.

    Chez Oyonale, tu trouves des scènes assez sympatiques accompagnées des scripts qui les ont définies. C'est pas ce qu'il y a de plus simple, mais c'est un bon exemple :

    http://www.oyonale.com/modeles.php?lang=fr&format=POV

    Et sinon, la doc de ton raytracer ou modéliseur 3D préféré devrait déjà te permettre de mettre la main à la pâte.

    http://www.povray.org/documentation/

  10. #30
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    C'est quoi ton but ? T'as déjà utilisé un éditeur 3D, genre 3DS Max, Maya, Blender ?

    Essaye de créer une scène là dessus, t'aura plus de visuel sur ce qu'est "un monde 3D", composés d'objets 3D.

    Les techniques de collisions, physique, placement viendront ensuite par programmation, ainsi que le choix du format de stockage des informations de cette scène. C'est là où Collada est interessant. Après avoir commencé sous MD2 puis géré 3DS, les limites des données gérées se sont ressenties rapidement (pas de physique, pas de skinning, pas de lumières) et Collada était là mais ne résoud que la problématique du stockage d'informations et l'exportation depuis un éditeur puis importation dans un moteur graphique pour ensuite y ajouter du dynamisme.

    Aparemment tes interrogations relèvent plus de la 3D que du développement informatique.
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Comment utiliser les univers créés en local.
    Par Haopl dans le forum Designer
    Réponses: 2
    Dernier message: 17/09/2013, 09h39
  2. [VxiR2] Comment modifier l'univers pour pb de jointure
    Par pierre arnaud dans le forum Designer
    Réponses: 8
    Dernier message: 13/07/2011, 16h36
  3. Comment fusionner 2 univers dans une requête?
    Par Jihane75 dans le forum Deski
    Réponses: 10
    Dernier message: 08/12/2010, 10h06
  4. [VxiR2] Comment utiliser un univers local depuis Webi?
    Par abelie dans le forum Webi
    Réponses: 6
    Dernier message: 18/08/2010, 12h00
  5. Réponses: 2
    Dernier message: 22/03/2009, 23h57

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