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 :

lire un obj et transformer les faces en triangles


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Points : 136
    Points
    136
    Par défaut lire un obj et transformer les faces en triangles
    Bonjour,

    Tout est dans le titre : en utilisant un scanner pour lire un fichier .obj, en java, avec android studio ( pour une application mobile ), je parviens à lire les vertexs et les sommets :
    (le fichier .obj donne ceci par exemple avec 2 quadrilataire, le premier à 4 sommets et le deuxième 5 ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    # Blender v2.76 (sub 0) OBJ File: test.blend'
    # www.blender.org
    mtllib test.mtl
    o Plane.plane
     
    v 0.000000 0.000000 0.000000
    v 1.000000 0.000000 0.000000
    v 0.293249 0.000000 -0.885343
    v 1.000000 0.000000 -1.000000
     
    v -0.188105 -0.002691 -0.882331
    v -1.154975 0.000000 -0.007805
    v -0.778643 0.000000 -0.641668
    vn 0.000000 1.000000 0.000000
     
    vn -0.000400 1.000000 -0.001700
     
    usemtl None
    s off
     
     
    f 1//1 2//1 4//1 3//1
    f 5//2 7//2 6//2 1//2 3//2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
                ArrayList<Vertex> vertexs_ = new ArrayList<Vertex>() ;
                ArrayList<Integer> vertexsID_ = new ArrayList<Integer>() ;
                while ( scan.hasNext() ){
                    String word = scan.next() ;
                    if ( word.equals("v")){
                        vertexs_.add(new Vertex( scan.nextFloat() ,-scan.nextFloat(),scan.nextFloat()));
                    }
                    if ( word.equals("f")){
                        word = scan.next() ;
                        vertexsID_.add(transformToInt(word));
                        while ( scan.hasNext() && !scan.hasNext("f") ) {
                            word = scan.next() ;
                            vertexsID_.add(transformToInt(word));
                        }
                    }
                }

    Le problème est que je ne sais pas comment transformer ces faces en triangles pour pouvoir les afficher correctement.
    En effet si je me contente de ranger les vertexs dans le bon ordre en suivant les ids il ne m'affiche que la moitié des triangles forcément..
    Savez vous comment s'y prendre ?

    Cordialement,

    Mazertys

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Facile un quad = 2 triangles
    Mais bon tu te casse la tête pour rien parce que de un Blender permet de triangulariser les format .obj (et vu que tu l'utilise...) , le second même si le .obj est facile a lire , il est assez pénible a charger parce que le parser est plutôt long , donc je conseille souvent d’utiliser un autre format.

Discussions similaires

  1. transformer les données d'une table .dbf vers ma BD
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/11/2004, 09h54
  2. existe t 'il des programme pour transformer les bases
    Par creazone dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/10/2004, 14h11
  3. Ne pas transformer les <br/> a l'ecriture du fichier X
    Par fidififouille dans le forum XMLRAD
    Réponses: 2
    Dernier message: 07/05/2004, 10h11
  4. Est-ce que les fichiers .obj sont tous les mêmes?
    Par Bubonik software dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 30/12/2003, 21h04
  5. XML/XSL vers HTML: comment transformer les linefeed en <B
    Par AlainM dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/11/2003, 12h30

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