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 :

OpenCTM : Format de fichier ouvert pour la compression de meshes 3D [News]


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : novembre 2004
    Messages : 2 672
    Points : 5 476
    Points
    5 476
    Par défaut OpenCTM : Format de fichier ouvert pour la compression de meshes 3D


    OpenCTM est un format de fichier et une librarie pour les meshes 3D (CTM = Compressed 3D Triangle Meshes). La geométrie est compressée à une fraction de formats de fichiers comparable(3DS, STL, VRML...) et le format est facilement accessible via une API simple et portable.

    Les grandes geométries supérieurs au milliard de triangles et arêtes peuvent être stockées (OpenCTM utilise des indices de face 32-bit). Le SDK OpenCTM est open source et est écris en C.

    Voici comment charger un fichier ctm :

    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
    25
    #include 
    CTMcontext context;
    CTMuint  vertCount, triCount, * indices;
    CTMfloat  * vertices;
     
     // Create a new context
     context = ctmNewContext(CTM_IMPORT);
     
     // Load the OpenCTM file
     ctmLoad(context, "mymesh.ctm");
     if(ctmGetError(context) == CTM_NONE)
     {
        // Access the mesh data
        vertCount = ctmGetInteger(context, CTM_VERTEX_COUNT);
        vertices = ctmGetFloatArray(context, CTM_VERTICES);
        triCount = ctmGetInteger(context, CTM_TRIANGLE_COUNT);
        indices = ctmGetIntegerArray(context, CTM_INDICES);
     
        // Deal with the mesh (e.g. transcode it to our
        // internal representation)
        // ...
     }
     
     // Free the context
     ctmFreeContext(context);
    et voici comment créer un fichier ctm à partir de votre propre géométrie :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #include 
    CTMcontext context;
    CTMuint  vertCount, triCount, * indices;
    CTMfloat  * vertices;
     
    // Create our mesh in memory
    vertCount = 100;
    triCount = 120;
    vertices = (CTMfloat*)malloc(3*sizeof(CTMfloat)*vertCount);
    indices = (CTMuint*)malloc(3*sizeof(CTMuint)*triCount);
    // ...
     
    // Create a new context
    context = ctmNewContext(CTM_EXPORT);
     
    // Define our mesh representation to OpenCTM (store
    // references to it in the context)
    ctmDefineMesh(context,
                           vertices,
                           vertCount,
                           indices,
                           triCount,
                           NULL);
     
    // Save the OpenCTM file
    ctmSave(context, "mymesh.ctm");
     
    // Free the context
    ctmFreeContext(context);
     
    // Free our mesh
    free(indices);
    free(vertices);
    Vous pouvez télécharger le SDK OpenCTM Ici.

    Pensez-vous qu'il soit necessaire de créer de nouveau format de compression pour les meshes 3D ?
    Ces nouveaux formats de compression vont-il permettre aux graphistes 3D de mieux s'exprimer ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 73
    Points : 69
    Points
    69
    Par défaut
    Je suis pas franchement emballé.
    Le collada est son principal concurrent et il peine déjà à être porté sur de nombreux éditeurs. Sa force vient pourtant de sa simplicité de syntaxe.
    Il a un défaut qu'OpenCTM corrige: il ne propose pas officiellement de version binaire (alors que FBX lui le possède).
    Je n'y voit pas vraiment l'intêret au sein d'un jeu (peut-être ailleurs) puisqu'un moteur digne de ce nom possède un principe de "content processing" qui consiste à transformer le modèle donné en binaire "prêt à être chargé en objet" dans le programme (plus clairement: un dump de l'objet qui va être fournit au client (et donc légèrement obsfuqué de la sorte) et rapidement lu par le moteur puisque c'est lui qui crée le dump sans donnée superflues).
    Mais ca peut fournir un solution rapide à mettre en place au sein d'un moteur qui n'a pas le temps de voir du content processing s'y greffer.

  3. #3
    Membre habitué Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : août 2008
    Messages : 275
    Points : 198
    Points
    198
    Par défaut
    Bonjour

    Je voulais savoir si OpenCTM supporte les submesh quand il y a différents matériaux appliqués sur un même mesh ?

    Kromagg
    C'est dans ses rêves que l'homme trouve la liberté cela fut, est et restera la vérité! (John Keating - Le cercle des poètes disparus)

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/05/2015, 10h10
  2. 2 fichiers ouverts pour un seul click
    Par Chrisnath dans le forum Excel
    Réponses: 5
    Dernier message: 23/05/2014, 10h59
  3. [TEST]Uitlisation de QTP pour formater un fichier Excel
    Par roupougnouf dans le forum Test
    Réponses: 1
    Dernier message: 11/07/2007, 09h19
  4. Appeler un fichier XL déjà ouvert pour faire une macro
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/05/2007, 13h33
  5. Quel format de fichier utiliser pour les maps ?
    Par fb57 dans le forum OpenGL
    Réponses: 3
    Dernier message: 23/09/2004, 21h22

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