OpenGL VBO and VAO, generating many points and ellipses

Hello!

I am the beginner of using Modern OpenGL with shaders. I have a program that have that generates many points on screen like 500x500 or 100x100. That works perfectly with VBO and VAO. Here is the code and a video representation of my program:

https://media.giphy.com/media/xT9IgGmPbgTK23pJxC/giphy.gif

void Mesh::SetupSeeds()
{
	//SEEDS
	glGenVertexArrays(1, &VAO);
	glGenBuffers(1, &VBO_SEED);
	glBindVertexArray(VAO);
	glBindBuffer(GL_ARRAY_BUFFER, VBO_SEED);
	glBufferData(GL_ARRAY_BUFFER, seeds.size() * 5 * sizeof(float), vertex, GL_STATIC_DRAW);

	// vertex positions
	glEnableVertexAttribArray(0);
	glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 5* sizeof(float), (void*)0);
	// vertex colors
	glEnableVertexAttribArray(1);
	glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 5* sizeof(float), (void*)(2 * sizeof(float)));

	glBindVertexArray(0);
}
void Mesh::Draw(Shader shader)
{
	glUniform1f(seedSizeUniformLocation, seedSize);
	glBindVertexArray(VAO);
	glDrawArrays(GL_POINTS, 0, seeds.size());
}

And now I need to draw ellipses on that generated “seeds”. How may I do that with not removing generated mesh?

UPDATE:

Here is the example of effect i would like to have. I dont ask about what alghorithm i need to have, to generate the red ellipses and rects, but i would like to know how i can draw something on that actual screen with that actual mesh.

[ATTACH=CONFIG]1561[/ATTACH]

Convert the points to rectangles, either client-side or using a geometry shader.

You can use a fragment shader to render a rectangle as an ellipse, e.g.:


if (u*u+v*v>1) discard;

where u and v range from -1 to +1 over the rectangle.

Point sprites could be used, but there’s an implementation-dependent upper limit on the size, and that limit isn’t required to be larger than a single pixel.

Ok, thank you for advise. I will try to work on it :wink: