Hallo,
Ik ben net begonnen met OpenGL en het is me gelukt om één plaatje te printen, maar nu wil ik een tweede plaatje printen. Kan ik dan de coordinaten in de vertices toevoegen of moet dat op een andere manier en hoe weet OpenGL welk plaatje hij moet gebruiken.
Sorry voor gebrekkig Nederlands en Programmeer skills.
Ik ben net begonnen met OpenGL en het is me gelukt om één plaatje te printen, maar nu wil ik een tweede plaatje printen. Kan ik dan de coordinaten in de vertices toevoegen of moet dat op een andere manier en hoe weet OpenGL welk plaatje hij moet gebruiken.
Sorry voor gebrekkig Nederlands en Programmeer skills.
C++:
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
| //Vertex array object GLuint vao; glGenVertexArrays(1, &vao); glBindVertexArray(vao); //Point coordinates static const GLfloat vertices[] = { //background -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, // Top left 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, // Top right 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, // Bottom right -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, // Bottom left //card 1 -0.84f, 0.92f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, // Top-left -0.54f, 0.92f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, // Top-right -0.54f, 0.52f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, // Bottom-right -0.84f, 0.52f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, // Bottom-left //card 2 -0.38f, 0.92f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, // Top-left -0.08f, 0.92f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, // Top-right -0.08f, 0.52f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, // Bottom-right -0.38f, 0.52f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, // Bottom-left //card 3 0.08f, 0.92f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, // Top-left 0.38f, 0.92f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, // Top-right 0.38f, 0.52f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, // Bottom-right 0.08f, 0.52f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, // Bottom-left //card 4 0.54f, 0.92f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, // Top-left 0.84f, 0.92f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, // Top-right 0.84f, 0.52f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, // Bottom-right 0.54f, 0.52f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, // Bottom-left }; GLuint vertexbuffer; glGenBuffers(1, &vertexbuffer); glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); glEnableVertexAttribArray(0); glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)0); GLuint element[] = { 0,1,2, 2,3,0, 5,6,7, 7,8,5, }; GLuint ebo; glGenBuffers(1, &ebo); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(element), element, GL_STATIC_DRAW); void loadTextureBackground() { GLuint tex[2]; glGenTextures(1, tex); glBindTexture(GL_TEXTURE_2D, tex[0]); int width, height; unsigned char* backgroundImage = SOIL_load_image("Honingbackground.png", &width, &height, 0, SOIL_LOAD_RGB); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, backgroundImage); SOIL_free_image_data(backgroundImage); glBindTexture(GL_TEXTURE_2D, tex[0]); unsigned char* QuestionImage = SOIL_load_image("Honingbackground.png", &width, &height, 0, SOIL_LOAD_RGB); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, backgroundImage); SOIL_free_image_data(QuestionImage); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); } |