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

OpenGL Discussion :

Tableau de couleurs et SSBO


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 41
    Points : 14
    Points
    14
    Par défaut Tableau de couleurs et SSBO
    Bonjour,

    J'ai besoin d'afficher des points avec des couleurs différentes selon ce qui est généré dans le code C++.

    Pour le moment, mon tableau de couleur est bien modifié mais je suis maintenant persuadé que le code GLSL ne prend en compte que le premier vecteur de couleur car ce n'est pas déclaré comme tableau. En effet, il n'y qu'une couleur affichée à chaque fois alors qu'il y en a plusieurs différentes dans le tableau dans le code C++.

    Ai-je tort ?

    Shader

    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
     
    #version 430 core
    layout (location = 0) in vec3 position;
    layout (location = 1) in vec3 colorIn;
    layout (location = 3) in mat4 instanceMatrix;
     
    out vec3 colorOut;
     
    uniform mat4 view;
     
    void main()
    {
    	colorOut = colorIn;
    	gl_Position = view * instanceMatrix * vec4(position, 1.0f); 
    }
    Fragment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    version 430 core
     
    in vec3 colorOut;
    out vec4 color;
     
    void main()
    {
    	color = vec4(colorOut, 1.0);
    }
    Après quelques recherches sur le net, je peux utiliser les SSBO pour pouvoir passer un tableau dont je ne connais jamais la taille. Je ne le connais jamais car il change à chaque itération.

    Deux questions :

    1) Pourquoi la macro GL_SHADER_STORAGE_BUFFER n'est pas reconnue quand je veux binder ? Ma carte graphique est une GTX 970 donc je suis bien à la dernière version d'OpenGL

    2) Y a-t-il une meilleure/plus rapide façon de procéder ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Hello,

    Citation Envoyé par j_sb12 Voir le message
    Après quelques recherches sur le net, je peux utiliser les SSBO pour pouvoir passer un tableau dont je ne connais jamais la taille. Je ne le connais jamais car il change à chaque itération.
    D'après tes shaders, tu connais la taille de tes tableaux : tu as un vec3 (position), un autre vec3 (couleur), et une matrice par vertex. Donc nbPositions == nbCouleurs == nbVertices. Et cette taille tu la connais parce que tu la fournis dans ton draw call.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    Merci pour ta réponse !

    Comment je fais pour récupérer la taille de tout ça alors ?

    Pour moi ce sont juste des vecteurs et non pas des tableaux de vecteurs.

    Tu penses que j'ai raison sur le fait qu'il ne prenne que la première couleur rencontrée en compte ?

    Je draw comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    glBindBuffer(GL_ARRAY_BUFFER, VBO[i]);
    glBufferData(GL_ARRAY_BUFFER, simulation.vertices.size() * sizeof(GLfloat), &simulation.vertices[0], GL_DYNAMIC_DRAW);
     
     
    glEnableVertexAttribArray(0);
    glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (GLvoid*)0);
    glEnableVertexAttribArray(1);
    glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (GLvoid*)(2 * sizeof(GLfloat)));
     
    glBindBuffer(GL_ARRAY_BUFFER, VBO[i + 1]);
    glBufferData(GL_ARRAY_BUFFER, simulation.getNbOccurencesRace()[i] * sizeof(glm::mat4), &simulation.getModelMatrices().at(i)[0], GL_DYNAMIC_DRAW);
     
    glUniformMatrix4fv(glGetUniformLocation(shaderTrees->Program, "view"), 1, GL_FALSE, glm::value_ptr(camera->GetViewMatrix()));
    Dans le vecteur "vertices" il y a les positions suivies des couleurs. Un vec2 puis un vec3 donc.

  4. #4
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Tu as une couleur par instance, du coup?
    Parce que si c'est le cas, il faut que tu le passes en tant que paramètre d'instance, ce qui n'a pas l'air d'être le cas...
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    Oui c'est ça, j'ai une couleur par point affiché (bien que plein de points auront la même couleur)

    Comment je peux faire ça ?

  6. #6
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    En fait je me suis planté, j'ai cru à un moment que tu fais de l'instanciation, mais non.

    Donc là, ton problème se situe où?
    As-tu vérifié que ton tampon de couleurs est bien rempli?

    Dans ton vertex shader, tu as un saut dans les indices de tes layouts (tu passes de 1 à 3). Pourquoi?
    De plus lors du binding de ta matrice, tu recherches la matrice "view", dans ton shader elle s'appelle "instanceMatrix", ça doit pas bien se passer...
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  7. #7
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Bon, je me suis encore viandé. Tu fais de l'instanciation, ou pas?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    haha ! Oui je fais de l'instanciation.


    J'aurais du le dire plus tôt, désolé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glDrawElementsInstanced(GL_POINTS, simulation.vertices.size(), 	GL_UNSIGNED_INT, 0, simulation.getNbOccurencesRace()[i]);

  9. #9
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Tu affiches des objets ou des vertex?
    Tu as des modèles ou tu cherches juste à afficher des nuages de points?

    Peux-tu nous montrer le code d'initialisation de tes tampons?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    J'affiche des vertex et je veux juste des nuages de points.

    J'ai un vecteur qui ne contient que des coordonnees de points. Ces points sont représentés par la matrice dans le shader vu qu'on fait de l'instanciation.

    Initialisation des buffers d'OpenGL. Dans les deux première cases de "vertices" (pour le premier vbo) je n'ai mis que des 0 car c'est la matrice (settée juste après qui se charge de placer les points) je pense que c'est deux cases de servent pas, enfin bon.

    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
     
    for (int i = 0; i < NB_RACES; ++i)
    {
    	glBindVertexArray(VAO[i]);
     
    	glBindBuffer(GL_ARRAY_BUFFER, VBO[i]);
     
    	glBufferData(GL_ARRAY_BUFFER, simulation.vertices.size() * sizeof(GLfloat), &simulation.vertices[0], GL_DYNAMIC_DRAW);
    	glEnableVertexAttribArray(0);
    	glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (GLvoid*)0);
    	glEnableVertexAttribArray(1);
    	glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (GLvoid*)(2 * sizeof(GLfloat)));
     
    	glBindBuffer(GL_ARRAY_BUFFER, VBO[i + 1]);
     
    	glBufferData(GL_ARRAY_BUFFER, simulation.getNbOccurencesRace()[i] * sizeof(glm::mat4), &simulation.getModelMatrices().at(i)[0], GL_DYNAMIC_DRAW);
     
    			// Set attribute pointers for matrix (4 times vec4)
    	glEnableVertexAttribArray(3);
    	glVertexAttribPointer(3, 4, GL_FLOAT, GL_FALSE, sizeof(glm::mat4), (GLvoid*)0);
    	glEnableVertexAttribArray(4);
    	glVertexAttribPointer(4, 4, GL_FLOAT, GL_FALSE, sizeof(glm::mat4), (GLvoid*)(sizeof(glm::vec4)));
    	glEnableVertexAttribArray(5);
    	glVertexAttribPointer(5, 4, GL_FLOAT, GL_FALSE, sizeof(glm::mat4), (GLvoid*)(2 * sizeof(glm::vec4)));
    	glEnableVertexAttribArray(6);
    	glVertexAttribPointer(6, 4, GL_FLOAT, GL_FALSE, sizeof(glm::mat4), (GLvoid*)(3 * sizeof(glm::vec4)));
     
    	glVertexAttribDivisorARB(3, 1);
    	glVertexAttribDivisorARB(4, 1);
    	glVertexAttribDivisorARB(5, 1);
    	glVertexAttribDivisorARB(6, 1);
     
    	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO[i]);
    	glBufferData(GL_ELEMENT_ARRAY_BUFFER, simulation.indices.size() * sizeof(GLuint), &simulation.indices[i], GL_STATIC_DRAW);
     
    	glBindVertexArray(0);
    }
    Voici le code où je remplis mon vecteur contenant les couleurs. Le paramètre v est un vecteur contenant la couleur en RGB.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void Simulation::fill_vertices(const glm::fvec3& v)
    {
    	vertices.push_back(0.f);
    	vertices.push_back(0.f);
     
    	vertices.push_back(v.x);
    	vertices.push_back(v.y);
    	vertices.push_back(v.z);
    }
    Le code où je mets à jour. Number est le numéro du point.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void Simulation::updateColour(const float& age, const float& ageMax, const glm::fvec3& colour, const long& number)
    {
    	float percent = (age * 100) / ageMax;
     
    	float offset = 5 * number;
     
    	vertices.at(offset + 2) = (percent * colour.x) / 100.f;
    	vertices.at(offset + 3) = (percent * colour.y) / 100.f;
    	vertices.at(offset + 4) = (percent * colour.z) / 100.f;
     
    }
    Je tiens à repréciser que la couleur fonctionne ! C'est seulement la première qui est prise en compte !

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    J'affiche des vertex et je veux juste des nuages de points.

    J'ai un vecteur qui ne contient que des coordonnees de points. Ces points sont représentés par la matrice dans le shader vu qu'on fait de l'instanciation.

    Initialisation des buffers d'OpenGL. Dans les deux première cases de "vertices" (pour le premier vbo) je n'ai mis que des 0 car c'est la matrice (settée juste après qui se charge de placer les points) je pense que c'est deux cases de servent pas mais j'ai gardé ça depuis le premier tutoriel que j'ai fait.

    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
     
    for (int i = 0; i < NB_RACES; ++i)
    {
    	glBindVertexArray(VAO[i]);
     
    	glBindBuffer(GL_ARRAY_BUFFER, VBO[i]);
     
    	glBufferData(GL_ARRAY_BUFFER, simulation.vertices.size() * sizeof(GLfloat), &simulation.vertices[0], GL_DYNAMIC_DRAW);
    	glEnableVertexAttribArray(0);
    	glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (GLvoid*)0);
    	glEnableVertexAttribArray(1);
    	glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (GLvoid*)(2 * sizeof(GLfloat)));
     
    	glBindBuffer(GL_ARRAY_BUFFER, VBO[i + 1]);
     
    	glBufferData(GL_ARRAY_BUFFER, simulation.getNbOccurencesRace()[i] * sizeof(glm::mat4), &simulation.getModelMatrices().at(i)[0], GL_DYNAMIC_DRAW);
     
    			// Set attribute pointers for matrix (4 times vec4)
    	glEnableVertexAttribArray(3);
    	glVertexAttribPointer(3, 4, GL_FLOAT, GL_FALSE, sizeof(glm::mat4), (GLvoid*)0);
    	glEnableVertexAttribArray(4);
    	glVertexAttribPointer(4, 4, GL_FLOAT, GL_FALSE, sizeof(glm::mat4), (GLvoid*)(sizeof(glm::vec4)));
    	glEnableVertexAttribArray(5);
    	glVertexAttribPointer(5, 4, GL_FLOAT, GL_FALSE, sizeof(glm::mat4), (GLvoid*)(2 * sizeof(glm::vec4)));
    	glEnableVertexAttribArray(6);
    	glVertexAttribPointer(6, 4, GL_FLOAT, GL_FALSE, sizeof(glm::mat4), (GLvoid*)(3 * sizeof(glm::vec4)));
     
    	glVertexAttribDivisorARB(3, 1);
    	glVertexAttribDivisorARB(4, 1);
    	glVertexAttribDivisorARB(5, 1);
    	glVertexAttribDivisorARB(6, 1);
     
    	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO[i]);
    	glBufferData(GL_ELEMENT_ARRAY_BUFFER, simulation.indices.size() * sizeof(GLuint), &simulation.indices[i], GL_STATIC_DRAW);
     
    	glBindVertexArray(0);
    }
    Voici le code où je remplis mon vecteur contenant les couleurs. Le paramètre v est un vecteur contenant la couleur en RGB.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void Simulation::fill_vertices(const glm::fvec3& v)
    {
    	vertices.push_back(0.f);
    	vertices.push_back(0.f);
     
    	vertices.push_back(v.x);
    	vertices.push_back(v.y);
    	vertices.push_back(v.z);
    }
    Le code où je mets à jour. Number est le numéro du point.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void Simulation::updateColour(const float& age, const float& ageMax, const glm::fvec3& colour, const long& number)
    {
    	float percent = (age * 100) / ageMax;
     
    	float offset = 5 * number;
     
    	vertices.at(offset + 2) = (percent * colour.x) / 100.f;
    	vertices.at(offset + 3) = (percent * colour.y) / 100.f;
    	vertices.at(offset + 4) = (percent * colour.z) / 100.f;
     
    }
    Je tiens à repréciser que la couleur fonctionne ! C'est seulement la première qui est prise en compte !

  12. #12
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Tu devrais supprimer la position inutilisée.

    Tu as donc un unique vertex que tu instancies?
    Si c'est le cas, ça explique ton problème, il faut donc que tu initialises ton tampon de couleur en tant que tampon d'instanciation, avec glVertexAttribDivisor.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    Ok donc comme la matrice !

    Du coup, on considérant la position non utilisée ça ferait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    glBindBuffer(GL_ARRAY_BUFFER, VBO[i]);
     
    glBufferData(GL_ARRAY_BUFFER, simulation.vertices.size() * sizeof(GLfloat), &simulation.vertices[0], GL_STREAM_DRAW);
     
    glEnableVertexAttribArray(1);
    glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(GLfloat), (GLvoid*)0);
     
    glVertexAttribDivisorARB(1, 1);
    J'ai raison ?

    Je ne peux utiliser que la version ARB car il ne me trouve la version sans. Va savoir pourquoi...

    Le shader va changer ou pas ?

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    C'est bon ça fonctionne !

    J'ai corrigé les offset pour le vecteur qui passaient de 5 à 3 and it worked !

    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] ligne du tableau de couleur différente
    Par gastoncs dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 14/12/2007, 13h13
  2. Tableau php (couleur)
    Par mcspawn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 05/06/2007, 16h43
  3. [SWING] Tableau avec couleurs dynamiques
    Par MinsK dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 01/03/2007, 13h25
  4. Visual Studio: Affichage tableau, alterner couleur ligne
    Par en_stage dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/08/2006, 22h41
  5. [XSLT]Tableau en couleur
    Par c+cool dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 09/05/2006, 08h53

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