I'm making a Minecraft-ish terrain engine to learn some OpenGL and 3D and everything works fine except for the FPS which I'm not happy with.
The current: I'm currently only drawing the visible faces and using frustum culling, the cubes are in 16 by 16 by 32 cube chunks (for now).
I use 6 display lists per chunk, one for each side (left, right, front, back, up, down) so cubes aren't drawn one by one, but a whole chunk side at the time.
With this method I get about 20-100fps which isn't great. Profiling says I send about 100k vertices to the graphics card and as soon as I look at the sky and the vertices fall under 10k I'm up to 200+fps, so I guess that's my bottleneck.
What I want to do: Since less is more I went ahead and found this: http://ogre3d.org/forums/viewtopic.php?f=2&t=60381&p=405688#p404631
From what I understand Kojack uses a 3D mesh of huge planes and somehow draws textures from a 2D texture atlas to certain locations of these huge planes. He says he uses a 256x256x256 3D texture and the green and blue channels to map to the 2D texture atlas.
His method totals a constant number of vertices for the planes and sometimes useless ones if my map would've been applied, but it's still less than what I have now.
My problem: I didn't understand anything he said :(, I want to try his method, but I don't understand what he did exactly, mostly I think it's my lack of experience with 3D textures (I'm imagining a block of pixels). How did he map a texture from a texture atlas to only a part of a plane and this by using some 3D texture map...
Can anyone explain what Kojack did or point me to some helpful place, even Google isn't of any help right now.
Try putting your face textures in a texture atlas. A texture bind per face is way too many.