如何将对象添加到缓冲区?彭格尔
How to add objects to buffer? opengl
在这个程序中,我想画多边形。
首先,我做了这样的sth:
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。如果适合您,最好使用相当少的顶点缓冲区。
相关文章:
- 瓦尔格林德:数学函数"Conditional jump or move depends on uninitialised value(s)"
- 为什么瓦尔格林德在不释放恶意内存后没有报告任何问题?
- 瓦尔格林德的内存泄漏使用新的
- CPP 中的瓦尔格林德和记忆泄漏:"Conditional jump or move depends on uninitialised values"
- C++程序什么都不做,但瓦尔格林德显示内存分配
- 赫尔格林德和atomic_flag
- C++微控制器全局类/辛格尔顿?
- 在我的情况下,我需要销毁辛格尔顿实例吗?
- 辛格尔顿备选方案
- 这个辛格尔顿替代品好吗
- 如何确保辛格尔顿不会被过早销毁
- 如何将对象添加到缓冲区?彭格尔
- (共享)指向辛格尔顿的指针
- 静态字段的析构函数.辛格尔顿实现
- 蒂岑的辛格尔顿班
- 迈尔斯·辛格尔顿望远镜
- 硬件通信的OO方法..可能是辛格尔顿
- 反复无常的辛格尔顿会员
- 这个辛格尔顿类会在被破坏时自动释放内存吗
- 来自文本文件的奥彭格尔地形