У цій проблемі є кілька аспектів. По-перше, як ви малюєте свої 10000 блоків? Ви насправді малюєте їх як 10000 окремого об’єкта? Якщо так, це майже напевно горловина вашої пляшки, а не відсутність відключення оклюзії. Ви повинні згрупувати ці блоки в меншу кількість сіток (можливо, кілька тисяч на сітку), щоб зменшити дзвінки дзвінка.
Що стосується Вашого актуального питання, то існує три типи відключення оклюзії, які спадають на думку.
1) Блоки поза фруктовим видом. Це означає блоки, які знаходяться позаду вас або дві сторони. Огре вже видаляє їх через вигляд фрустуму.
2) Блоки, які є "під землею" або повністю оточені іншими блоками, тому їх ніколи не можна побачити з будь-якого кута. Ви можете визначити їх, переглянувши сусідні блоки siz. Якщо вони всі тверді, ваш блок прихований. Графічний процесор ніколи не повинен чути про ці блоки - їх слід пропускати, коли ви будуєте сітку, яка представляє вашу поверхню.
3) Блоки, які знаходяться на поверхні і видно з деяких позицій на рівні, але в даний час приховані пагорбом (або чимось). Це найскладніший випадок, про який я не звертався, але є хороший шанс, що для цього випадку можуть бути використані запити апаратної оклюзії.
Це безсоромний штекер, але у мене є досить зріла бібліотека, яку кілька людей використовують для розробки клонів Minecraft, в тому числі деякі використовують Ogre. Ви визначаєте вміст об'єму, і він генерує поверхневу сітку, яку ви зможете потім надати. Ось домашня сторінка:
http://www.thermite3d.org/
А ось відео чужого проекту, який його використовує:
http://www.youtube.com/watch?v=Jju6WRPEK7o