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

3D Java Discussion :

Modelisation 3D Solide


Sujet :

3D Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Modelisation 3D Solide
    Bonjour, Bonsoir,

    Je ne suis pas sur que la section dans laquelle je postes ce message soit la bonne car je ne suis plus totalement débutant avec java (3eme année de License info) mais on ne peut pas dire que je soit un expert non plus.


    Je souhaites implémenter un système de gestion d'objets 3D en Java. C'est a dire, je souhaites gérer des solides (en 3D) puis par des opérations mathématiques les afficher sur l'écran (2D). Pour l'instant, j'ai réussi a implémenter la structure de donnée correspondant a mon solide, c'est a dire, une ArrayList de surface et chaque surface est une ArrayList de Points.
    Puis, je projettes mes surfaces sur l'écran (c'est a dire que je crée un nouvel objet nomme Surface2D qui contient la ArrayList du projeté de tous les points de la surface associée). A noter que je fais une projection sur un plan vers un point arbitraire (pour conserver la perspective).
    J'ai défini des opérations simples, telles que la rotation et la translation, et lorsque j'affiche le cube en "fils de fer" ca marche sans problème.
    Mon problème apparait lorsque je souhaites colorier mes faces. Il arrive que les faces de l'arrière de mon cube soient dessinées après mes faces avant et donc soient "au dessus" de celles-ci.
    Je ne vois qu'une solution possible qui serait un procédé lent; a savoir implémenter un système de "tri" ou d'"ordre" d'affichage (et dans ce cas tester pour de nombreux pixels de mon solide la profondeur).

    C'est donc la que je bloque et je ne sais pas trop comment faire...
    Je sais qu'il existe des bibliothèques Java permettant de gérer un environnement 3D mais j'ai envie de savoir un implémenter un, pour pouvoir un jour, si besoin est implémenter une telle interface dans un langage qui ne possède pas de telle bibliothèque.

    Merci d'avance de votre aide et de vos conseils.

    P.S.: je joins mon code au post pour les courageux qui se sentent l'envie de le lire.
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu n'as pas le choix : le principe de base est le tri des faces dans leur ordre d'apparition en profondeur (axe Z). Il faut trier selon les sommets de tes différents triangles.

    EDIT : après lecture diagonale de ton code, je constate que tu utilises des carrés au lieu de triangles. Simplifie-toi la vie et fait comme tout le monde : utilise des triangles
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de cette réponse si rapide par contre, pour utiliser les dits triangles quelles est la meilleures méthode? J'imagine que calculer les barycentres et les comparer ne suffit pas... Y a t'il des ressources (internet ou livre) que je puisse lire sur le sujet?

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Il y a énormément de techniques différentes, selon les contraintes du rendu.
    Tu peux commencer à chercher de la documentation sur le Z-buffer, l'une des techniques les plus répandues, y compris sur les cartes graphiques ou elle est directement "cablée". Elle est relativement simple à mettre en oeuvre.
    Pour un rendu parfait, la technique absolue est le ray-tracing. Malheureusement, selon la taille de l'image à créer et la complexité de la scène, du multi-coeurs sur du multi-processeurs ne sera pas de trop... Par contre si tu es curieux, bricoleur, ami avec les sinus et cosinus, et que tu as de longues heures à y consacrer, cette technique vaut le coup.

    Sinon, ton idée sur les barycentres pourrait suffire, tout dépend des contraintes de rendu et de la scène de départ. Le résultat pourrait être intéressant dans ton cas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. Les Meilleurs Outils de Modélisation UML ?
    Par Matthieu Brucher dans le forum Outils
    Réponses: 76
    Dernier message: 06/11/2015, 12h48
  2. Recherche d'outil de modelisation
    Par Matthieu Brucher dans le forum Outils
    Réponses: 33
    Dernier message: 14/11/2014, 11h37
  3. [débutant][Conception] Modélisation pour éviter le getClass()
    Par Oliveuh dans le forum Général Java
    Réponses: 9
    Dernier message: 28/06/2004, 20h00
  4. modelisation d'une piste de ski
    Par djbed dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 28/06/2004, 16h03
  5. Modelisation OLAP
    Par Guizz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/06/2003, 10h11

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