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 :

environnement 3d virtuel base


Sujet :

Moteurs 3D

  1. #1
    Candidat au Club
    environnement 3d virtuel base
    Bonjour,

    je ne sais pas comment créer un environnement 3d virtuel mais j'ai un début d'idée, je commence par déclarer world[x][y][z][maxNbObj][values], avec x, y et z les coordonnées des cubes contenant des objets, maxNbObj le nombre maximal d'objet par cube et enfin values, le type d'objet ses coordonnées dans le cube etc toute caractéristique propre à l'objet. Maintenant je suis confronté à un problème qui est lors du passage de ce tableau en paramètre des fonctoin pour travailler dessus qui est assez lourd et m'oblige à chaque nouvelle fonction qui la traite à y réécrire toutes les tailles du tableau, je connais le copier coller mais reste que je ne trouve pas ça très propre. Je ne demande qu'à utiliser la bonne méthode pour la base de mon environnement 3d virtuel, pouvez-vous m'expliquer si la méthode que j'utilise est bonne ou y a t'il une méthode plus conventionnelle et plus adapté pour la base d'un environnement 3d vituel ?

    Merci d'avance.

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

    Bonjour,

    je connais le copier coller
    Sauf qu'en programmation, le copier coller, c'est synonyme du mal (il ne faut jamais dupliquer du code).

    Je ne comprends pas pourquoi le X;Y;Z fait partie des indices du tableau. Si vous avez un objet à X = 20000 et Y = 20000 ... vous aurez de grand trous dans le tableau, mais en plus, la consommation mémoire va grimper très rapidement.
    De même, cela vous empêche de gérer les objet à X = 1.5.

    Finalement, la position ne devrait pas être indice de tableau, mais propriété de l'objet. Ce qui veut dire que le tableau sera :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    tab[maxObjects]
    et ce sera un tableau d'Objet, qui contiendra au moins, la position (X;Y;Z).
    Pour l'affichage, il suffira de parcourir les N objets du tableaux.

    D'ailleurs, ce sera un tableau dynamique.
    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.

  3. #3
    Candidat au Club
    Merci pour ces conseils. J'ai aussi penser à mettre tous les objets dans une liste mais il y a forcément un moment ou le monde sera trop volumineux pour être afficher d'un trait. Au quel cas il faudrait le fragmenter. D'où cela world[x][y][z][maxNbObj][values] dont je vais abandonner la dernière dimension [values] au profit des classes qui m'ont l'air d'après ma toute récente première expérience d'utilisation assez efficace et agréable à utiliser! Si je suppose que toutes les valeurs du tableau word seraient utiles, quelle structure de données serait bien à adopter pour ce monde virtuel ?

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

    Il ne faut pas le fragmenter ainsi, car le spectateur peut voir N blocs en même temps. Mais l'idée est loin d'être bête. Vous devriez regarder du côté des octree et autre algorithme de partitionnement de l'espace.
    Et aussi regarder ce qu'est le frustrum culling .
    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.