Hulp nodig met nog een plaatje printen

Pagina: 1
Acties:

Onderwerpen

Vraag


  • tragamota
  • Registratie: September 2011
  • Laatst online: 10-09 10:07
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.

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