Bonjour,
J'ouvre un nouveau sujet car le titre de mon sujet n'était plus à jour
J'ai essayé d'utiliser des vector pour mettre mettre mes vertices bout a bout et envoyer ça ensuite au vbo
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
    std::vector <GLfloat> vertices;
    std::vector <GLfloat> coordTexture;
    GLfloat tvertices[] =  {
        -1.0f,-1.0f,-1.0f,
        -1.0f,-1.0f, 1.0f,
        -1.0f, 1.0f, 1.0f,
 
        1.0f, 1.0f,-1.0f,
        -1.0f,-1.0f,-1.0f,
        -1.0f, 1.0f,-1.0f,
 
        1.0f,-1.0f, 1.0f,
        -1.0f,-1.0f,-1.0f,
        1.0f,-1.0f,-1.0f,
 
        1.0f, 1.0f,-1.0f,
        1.0f,-1.0f,-1.0f,
        -1.0f,-1.0f,-1.0f,
 
        -1.0f,-1.0f,-1.0f,
        -1.0f, 1.0f, 1.0f,
        -1.0f, 1.0f,-1.0f,
 
        1.0f,-1.0f, 1.0f,
        -1.0f,-1.0f, 1.0f,
        -1.0f,-1.0f,-1.0f,
 
        -1.0f, 1.0f, 1.0f,
        -1.0f,-1.0f, 1.0f,
        1.0f,-1.0f, 1.0f,
 
        1.0f, 1.0f, 1.0f,
        1.0f,-1.0f,-1.0f,
        1.0f, 1.0f,-1.0f,
 
        1.0f,-1.0f,-1.0f,
        1.0f, 1.0f, 1.0f,
        1.0f,-1.0f, 1.0f,
 
        1.0f, 1.0f, 1.0f,
        1.0f, 1.0f,-1.0f,
        -1.0f, 1.0f,-1.0f,
 
        1.0f, 1.0f, 1.0f,
        -1.0f, 1.0f,-1.0f,
        -1.0f, 1.0f, 1.0f,
 
        1.0f, 1.0f, 1.0f,
        -1.0f, 1.0f, 1.0f,
        1.0f,-1.0f, 1.0f
    };   // Face 6
    GLfloat tcoordTexture[] =  {1, 1,  1, 0,   0, 0,      // Face 1
                               1, 1,  0, 1,   0, 0,      // Face 1
 
                               1, 1,  1, 0,   0, 0,      // Face 2
                               1, 1,  0, 1,   0, 0,      // Face 2
 
                               1, 1,  1, 0,   0, 0,      // Face 3
                               1, 1,  0, 1,   0, 0,      // Face 3
 
                               1, 1,  1, 0,   0, 0,      // Face 4
                               1, 1,  0, 1,   0, 0,      // Face 4
 
                               1, 1,  1, 0,   0, 0,      // Face 5
                               1, 1,  0, 1,   0, 0,      // Face 5
 
                               1, 1,  1, 0,   0, 0,      // Face 6
                               1, 1,  0, 1,   0, 0 };    // Face 6
    const size_t tmp_size = sizeof(tvertices)/sizeof(tvertices[0]);
    const size_t tmp_size2 = sizeof(tcoordTexture)/sizeof(tcoordTexture[0]);
    for(i=0;i<tmp_size;i++)
        vertices.push_back(tvertices[i]);
    for(i=0;i<tmp_size2;i++)
        coordTexture.push_back(tcoordTexture[i]);
    //int sizeVertices=18*6*sizeof(GLfloat);
    //int sizeCoordTexture=12*6*sizeof(GLfloat);
    GLuint vaoID=0;
    GLuint vboID;
    mat4 projection;
    mat4 modelview;
    projection = perspective(70.0, (double)800 / 600, 0.1, 1000.0);
 
    GLuint programID = LoadShaders( "Shaders\\vertex.glsl", "Shaders\\fragment.glsl" );
    glGenBuffers(1,&vboID);
    glBindBuffer(GL_ARRAY_BUFFER,vboID);
        glBufferData(GL_ARRAY_BUFFER,vertices.size()+coordTexture.size(),0,GL_STATIC_DRAW);
        glBufferSubData(GL_ARRAY_BUFFER,0,vertices.size(),vertices.data());modelview=translate(modelview,vec3(0.0f,-40.0f,0.0f));
        glBufferSubData(GL_ARRAY_BUFFER,vertices.size(),coordTexture.size(),coordTexture.data());
    glBindBuffer(GL_ARRAY_BUFFER,0);
    glGenVertexArrays(1,&vaoID);
    glBindVertexArray(vaoID);
        glBindBuffer(GL_ARRAY_BUFFER,vboID);
        glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0,BUFFER_OFFSET(0));
        glEnableVertexAttribArray(0);
        glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0,BUFFER_OFFSET(vertices.size()));
        glEnableVertexAttribArray(1);
        glBindBuffer(GL_ARRAY_BUFFER,0);
    glBindVertexArray(0);
mais le cube que cela doit afficher est à 80% cassé
Donc je me demande qu'est ce qui ne va pas ou peut on faire mieux sans vector?