Common solutions for poor rendering performance
Mandatory:
- Render cubes in groups, like 16x16x16
- Only send 1 draw command (glDrawArrays(…) or glCallList(…) ) per group
- Do not create a quad for each side of a cube that has a neighbour
Optional:
- Separate the geometry of each side of the cube, so that for certain groups, you only render only those sides that are in view (e.g. north,west,top) depending on the relative location of the camera for this group
- Merge quads from different cubes with the same texture together, by using texture repeating and texcoords beyond 1.0