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); |
Partager