Есть несколько аспектов этой проблемы. Во-первых, как вы рисуете свои 10000 блоков? Вы действительно рисуете их как 10000 отдельных объектов? Если это так, то это почти наверняка ваша горлышко бутылки, а не отсутствие выбраковки прикуса. Вы должны сгруппировать эти блоки в меньшее количество ячеек (возможно, несколько тысяч на ячейку), чтобы уменьшить количество вызовов отрисовки.
Что касается вашего фактического вопроса, есть три типа выбраковки окклюзии, которые приходят на ум.
1) Блоки за пределами области видимости. Это означает блоки, которые находятся позади вас или двух сторон. Ogre уже удаляет их через отбор вида фрустума.
2) Блоки, которые находятся «под землей» или полностью окружены другими блоками, поэтому их никогда нельзя увидеть под любым углом. Вы можете определить их, посмотрев на соседние блоки. Если они все твердые, ваш блок скрыт. Графический процессор никогда не должен слышать об этих блоках - они должны быть пропущены, когда вы строите сетку, которая представляет вашу поверхность.
3) Блоки, которые находятся на поверхности и могут быть видны с некоторых позиций на уровне, но которые в настоящее время скрыты холмом (или чем-то еще). Это самый сложный случай, к которому я сам не обращался, но есть большая вероятность, что для этого случая можно использовать аппаратные запросы окклюзии.
Это бесстыдный плагин, но у меня есть довольно зрелая библиотека, которую несколько человек используют для разработки клонов Minecraft, в том числе некоторые, использующие Ogre. Вы определяете содержимое тома, и он генерирует поверхностную сетку, которую вы затем можете визуализировать. Вот домашняя страница:
http://www.thermite3d.org/
А вот видео чужого проекта, который его использует:
http://www.youtube.com/watch?v=Jju6WRPEK7o