Kısmen gezegen keşiflerinden oluşan bir oyun tasarlıyorum. Ben onlar için çok ağır olurdu her detay saklamak yerine onları yüklemek zorundayken tanımlanmış bir tohumdan rejenerasyon, onlar için sahte rastgele nesil kullanmak istiyorum. Bu yüzden sadece bir dosyada rastgele tohum ve varsa oyuncu tarafından yapılan değişiklikleri saklayacağım.
Oyuncu, gezegeni yörüngeden görebilmeli (çok düşük ayrıntılarla, sonra yere inmeli, iniş yaptığı bölgenin ayrıntı düzeyini yavaşça artırabilir ve diğer tarafları boşaltacaktır. Oyuncunun görüş alanının dışına çıkan gezegenin
Düz bir zeminde yapmak zorunda kalsaydım, kare bir yığın sistemiyle kolayca yaparım. Ancak buradaki sorun, gezegenlerin - neredeyse - küreler olmasıdır.
Peki, zemin ayrıntılarını (kabartma ve topraklanmış nesneler) kesin bir noktaya yüklemenin en iyi yolu ne olurdu?
Zaten iki çözüm üzerinde de var, ancak her ikisinin de zayıf bir noktası var:
1. Kürenin kare parçalar halinde kesilmesi.
Oyuncu yere yeterince yaklaştığında, en yakın karelerin ayrıntılarını kendi pozisyonundan iyileştirmem gerekiyor.
Yeterli değilse, oyuncular yerdeyken veya yere çok yakın olduğunda yüklemek için her kareyi alt karelerde kesebilirim.
Ancak resimde gördüğünüz gibi, oyuncu bir direğe inmeye çalıştığında bir sorun var: kareler çok ince dikdörtgenler, hatta son çizgi için üçgenler ve ek olarak yüklenecek çok sayıda olmaları gerçeği, jenerasyon bozuk görünecektir.
2. Bir ikosahedrondan başlayarak.
Burada, oyuncunun yaklaştığı sırada üçgen şeklindeki mozaiklemeyi arttırabilirim.
Ama üçgenleri oyuncunun pozisyonundan daha yakın nasıl bulacağımı bilmiyorum. Bu durumda Kartezyen koordinatların yararlı olabileceğini duydum , ama onları nasıl kullanacağımı bilmiyorum.
Ben bunun için C ++ / OpenGL kullanıyorum, bu yüzden burada üretmek ve yüklemek için ana şey yüzey kabartma ve renk / doku temsil köşe.