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

API graphiques Discussion :

Geomtry3sharp fonctionne trop bien et merci !


Sujet :

API graphiques

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    915
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 915
    Points : 85
    Points
    85
    Par défaut Geomtry3sharp fonctionne trop bien et merci !
    Bonjour,

    la library geometry3sharp ne fonctionne pas.
    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
    34
    35
    36
    37
     
    DMesh3 dd = new DMesh3();
                foreach (var icc in CUBES)
                {
                    foreach (TFace gh_1 in icc.FACES)
                    {
                        //if (gh_2 != null)
                        if (gh_1 != null)
                        {
                            foreach (var gh_2 in gh_1.lvtx) //TriangleTvertex
                            {
                                int[] vn = new int[3];
                                for (int i = 0; i < 3; i++)
                                {
                                    vn[i] = dd.AppendVertex(new Vector3d(gh_2.points[i].X, gh_2.points[i].Y, gh_2.points[i].Z));
                                }
                                dd.AppendTriangle(vn[0], vn[1], vn[2]);
                            }
                        }
                    }
                }
                var rr0 = dd.Edges();
     
                Remesher rx = new Remesher(dd);
                MeshConstraintUtil.FixAllBoundaryEdges(rx);
     
                //dd.AppendTriangle()
                var rr1 = dd.Edges();
     
                //rx.SetExternalConstraints(new MeshConstraints());
                //MeshConstraintUtil.FixAllBoundaryEdges(r.Constraints, mesh);
     
                Reducer r = new Reducer(dd);
                r.ReduceToTriangleCount(10);
                var rr2 = r.Mesh.Edges();
                var rr3 = dd.Edges();
                r = r;


    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
    internal class TriangleTvertex
        {
     
            internal TriangleTvertex()
            {
                points = new CPoint3d[3];
                uv = new CUV[3];
                for (int c = 0; c < 3; c++)
                {
                    points[c] = new CPoint3d();
                    uv[c] = new CUV();
                }
     
     
     
            }
            internal CPoint3d[] points;
            internal CUV[] uv;
     
     
        //    internal IntPtr hptrcubeface; //qui sera transferer au struct interne propre à e3d
        }
    Pas besoin d'extraire les vertex rendu pour les tester dans le vue 3d, le debugger (Watch) suffit à constater que les fonctions g3 ne fonctionne pas.
    Le debugger m'affiche le même nombre de edges ,vertex etc. dans variable rr1 rr2 rr3 .

    Je vais sur google.fr et je tape 'ReduceToTriangleCount' et sa affiche rien enfin pas grand chose.
    Merci google.

    Avant de se jetter sur la library Geometry3Sharp , Déjà ce code ne marche pas.
    Geometry3Sharp ne fonctionne pas sur net framework 4.0 , il suffit juste de spécifier une version ultérieur du framework.

    Si ce thread est marquer résolu cela veux dire que la librairie fonctionne .

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    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 225
    Points : 10 174
    Points
    10 174
    Par défaut
    Quel rapport avec OpenGL ?
    Sinon je doute que cette lib ne marche pas.
    Mais tu peux rapporter ce soucis directement aux personnes qui ont créer cette lib ,si elle à un bug ou un soucis

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    915
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 915
    Points : 85
    Points
    85
    Par défaut
    Je n'ai pas trouver de forum approprié et il n'y à pas de forum opengl C# et de forum c# bibliothéque
    Cette librairie fonctionne mieux si l'indexage des primitives est correcte.
    Le code corrigé mais non propre.
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    CTexture dbgtxt=null;
                List<VertexUV> LVV = new List<VertexUV>();
                foreach (var icc in CUBES)
                {
                    foreach (TFace gh_1 in icc.FACES)
                    {
                        //if (gh_2 != null)
                        if (gh_1 != null)
                        {
                            dbgtxt = gh_1.Texture;
                            foreach (var gh_2 in gh_1.lvtx)
                            {
                                int[] vn = new int[3];
                                for (int i = 0; i < 3; i++)
                                {
                                    //vn[i] = dd.AppendVertex(new Vector3d(gh_2.points[i].X, gh_2.points[i].Y, gh_2.points[i].Z));
                                    LVV.Add(new VertexUV(gh_2.points[i],gh_2.uv[i].U,gh_2.uv[i].V));
                                    n0++;
                                }
                                //dd.AppendTriangle(vn[0], vn[1], vn[2]);
                                n1++;
                            }
                        }
                    }
                }
     
                List<Tuple<int, float, float>> Indices = new List<Tuple<int,float,float>>();
                List<VertexUV> deja = new List<VertexUV>();
                foreach(var icc in LVV)
                {
                    var ind = deja.FindIndex(xx => (xx.points.X == icc.points.X) && (xx.points.Y == icc.points.Y) && (xx.points.Z == icc.points.Z));
                    if (ind==-1)
                    {
                        int indx=deja.Count();
                        deja.Add(icc);
                        Indices.Add(Tuple.Create(indx,icc.uvs.U,icc.uvs.V)); 
     
                    }
                    else
                    {
                        Indices.Add(Tuple.Create(ind, icc.uvs.U, icc.uvs.V));
                    }
                }
     
                foreach(var icc in deja)
                {
     
     
                    dd.AppendVertex(new Vector3d(icc.points.X, icc.points.Y, icc.points.Z));
                    ///dd.AppendTriangle()
                }
     
                for (int _i = 0;_i < Indices.Count/3;_i++)
                {
                    int i = _i * 3;
                    dd.AppendTriangle(Indices[(i)+0].Item1, Indices[(i)+1].Item1, Indices[(i)+2].Item1);
     
                }

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 053
    Points
    33 053
    Billets dans le blog
    4
    Par défaut
    Rien à voir avec OpenGL.
    Oui une lib marche mieux si on l'utilise correctement.
    Y'a un github qui stipule très clairement qu'il faut C# 4.5 https://github.com/gradientspace/geometry3Sharp
    Y'a cet article qui présente comment les données doivent être pour ceux qui comprennent pas ce qu'un mesh index based signifie http://www.gradientspace.com/tutorials/dmesh3

Discussions similaires

  1. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  2. Maximiser fenêtre ne marche pas
    Par sandrinec dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/06/2003, 12h02
  3. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  4. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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