Bu sorunun birkaç yönü vardır. İlk olarak, 10000 bloğunuzu nasıl çiziyorsunuz? Onları aslında 10000 ayrı nesne olarak mı çiziyorsunuz? Eğer öyleyse, bu kesinlikle şişe boynunuzdur, tıkanıklık yokluğu değil. Çizim çağrılarını azaltmak için bu blokları daha az sayıda örgü (belki de kafes başına birkaç bin) olarak gruplandırmalısınız.
Asıl soruya gelince, akla ilk gelen üç tür oklüzyon ayıklaması vardır.
1) Görünüm frustum dışındaki bloklar. Bu, arkanızdaki veya iki tarafınızdaki bloklar anlamına gelir. Ogre bunları zaten görünüm frustum culling yoluyla kaldırır.
2) 'Yeraltında' olan veya diğer bloklarla tamamen çevrili olan bloklar, böylece hiçbir açıdan görülemezler. Bunları komşu bloklara bakarak tanımlayabilirsiniz. Eğer hepsi sağlamsa bloğunuz gizlidir. GPU asla bu blokları duymamalıdır - yüzeyinizi temsil eden ağı oluştururken atlanmalıdır.
3) Yüzeyde bulunan ve seviyedeki bazı konumlardan görülebilen, ancak şu anda bir tepe (veya bir şey) tarafından gizlenen bloklar. Bu, kendime değinmediğim en zor durumdur, ancak bu durum için donanım tıkanıklığı sorgularının kullanılabilme şansı yüksektir.
Utanmaz bir fiş, ancak bazılarının Ogre'yi de içeren Minecraft klonlarını geliştirmek için kullandığı oldukça olgun bir kütüphanem var. Birimin içeriğini tanımlarsınız ve daha sonra oluşturabileceğiniz yüzey ağını oluşturur. İşte ana sayfa:
http://www.thermite3d.org/
İşte başka birinin projesini kullanan bir videosu:
http://www.youtube.com/watch?v=Jju6WRPEK7o