簡體   English   中英

如何添加對象到緩沖區? opengl

[英]How to add objects to buffer? opengl

在此程序中,我想繪制多邊形。

首先,我做了這樣的事情:

GLuint VertexArrayID;

繪制多邊形的示例:

if (figure == RECTANGLE)
{
    data[0][0] = px1;   data[0][1] = py1;
    data[1][0] = px2;   data[1][1] = py1;
    data[2][0] = px2;   data[2][1] = py2;
    data[3][0] = px1;   data[3][1] = py2;
    vertex_count = 4;
}
vbo_create(vertex_count);

這是vbo創建功能

void vbo_create(int vertex_count)
{
    if (vertex_count > 0)
    {
        glGenBuffers(3, VertexArrayID);
        glBindBuffer(GL_ARRAY_BUFFER, VertexArrayID[0]);
        glBufferData(GL_ARRAY_BUFFER, 2 * sizeof(float), data, GL_STATIC_DRAW);
    //GLfloat* data = (GLfloat*)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE);

        glVertexPointer(2, GL_FLOAT, 0, NULL);
        glEnableClientState(GL_VERTEX_ARRAY);
        glDrawArrays(GL_TRIANGLE_FAN, 0, vertex_count);
        glDisableClientState(GL_VERTEX_ARRAY);
    }
}

關鍵是我想將所有創建的對象保存在一個緩沖區中,但是我不知道該怎么做。 我試圖制作一個VertexArrayID數組,但是無法正常工作。 有什么建議么?

假設您有10個三角形。 然后,您只需將30個頂點放入此緩沖區中,並使用GL_TRIANGLES渲染所有頂點。 您也可以添加四個頂點並使用GL_QUADS。 如果可以的話,最好有很少的頂點緩沖區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM