Hay un par de aspectos de este problema. En primer lugar, ¿cómo estás dibujando tus 10000 bloques? ¿Realmente los estás dibujando como 10000 objeto separado? Si es así, esto es casi seguro su cuello de botella, no la falta de eliminación de oclusión. Debería agrupar estos bloques en un número menor de mallas (quizás unos pocos miles por malla) para reducir las llamadas de extracción.
En cuanto a su pregunta real, hay tres tipos de eliminación de oclusiones que me vienen a la mente.
1) Bloques fuera de la vista frustum. Esto significa bloques que están detrás de ti o dos a un lado. Ogre ya los elimina a través del sacrificio de vista frustum.
2) Bloques que están 'subterráneos' o completamente rodeados por otros bloques para que nunca se puedan ver desde ningún ángulo. Puede identificarlos mirando los bloques vecinos siz. Si todos son sólidos, su bloque está oculto. La GPU nunca debería escuchar acerca de estos bloques; deben omitirse cuando está construyendo la malla que representa su superficie.
3) Bloques que están en la superficie y se pueden ver desde algunas posiciones en el nivel, pero que actualmente están ocultos por una colina (o algo así). Este es el caso más complicado que no he abordado, pero hay una buena posibilidad de que las consultas de oclusión de hardware se puedan utilizar para este caso.
Es un complemento descarado, pero tengo una biblioteca bastante madura que varias personas usan para desarrollar clones de Minecraft, incluidos algunos que usan Ogre. Usted define el contenido del volumen y genera la malla de superficie que luego puede renderizar. Aquí está la página de inicio:
http://www.thermite3d.org/
Y aquí hay un video del proyecto de otra persona que lo está usando:
http://www.youtube.com/watch?v=Jju6WRPEK7o