So Im trying to make a minecraft style voxel game to learn OpenGL, but Im running into performance issues. I found this thread : https://stackoverflow.com/questions/4995652/3d-occlusion-culling where the author says he's drawing 250,000 cubes with an okay framerate. However, I can do about 3000 ish with the same framerates. I found another thread in which someone said that you should combine visible faces into a mesh. Does that mean you put all the vertices into one vertex buffer? If so, how do I pass texture data?
Yeah, you should try to batch as much as possible, that is, combining the more cubes you can, in the least amount of vertex buffers you can. This is a good resource on the matter of Voxel Meshing. I recomend you to follow the culling algorithm, even older versions of minecraft used it and stood well at good framerates.
To use more than one texture, you can use a texture atlas to fake that. Some devices might even support multi-texturing in a single batch, which would be easier to work with, though the atlas will give you the best performance!