Yol ile Yükseklik Haritası tabanlı Arazi


12

Yükseklik tabanlı bir arazide yol gibi bir ayrıntı özelliğini uygulamanın en iyi yolu nedir?

resim açıklamasını buraya girin

Güncelleme: Resimde görmek biraz zor, ancak yol üssünü yapmak için ocağın tepesinden iniyor.

Yanıtlar:


14

Görüntülerle harika olan şey, genellikle 4 kanala (kırmızı, yeşil, mavi ve alfa) gömülmesidir. Bir yükseklik haritası yalnızca bir boyuta ihtiyaç duyduğundan, yükseklik bilgilerini saklamak için kırmızı kanalı kullanabilirsiniz (yükseklik için hala 256 seviyeniz vardır) ve sonra başka amaçlar için diğer yolları kullanabilirsiniz (yolları eşleştirmek için yeşil kanalı kullanmak gibi) , su / nem için mavi kanal) vb ...

Bu şekilde, arazinizi oluştururken, yolun yapılması gereken bölgelerin yükseklik gradyanını takip etmek yerine düz görünmesini sağlayabilirsiniz.


1
HDRI görüntüsü kullanmak mümkün mü, bu yüzden kayan sayılar daha hassas yükseklik bilgilerini saklamak için kullanılabilir mi?
Quazi Irfan

1
HDRI görüntüsü bir dosya formatı değil bir kavramdır, ancak evet daha fazla doğruluk sağlamak için belirli dosya formatlarını kullanabilirsiniz. Çoğunlukla donanımınıza / yazılımınıza bağlıdır, ancak 32 veya 64 bitte saklayabileceğiniz bir şamandıra RG görüntüsü vardır. Ancak biçim ne olursa olsun, kanal başına daha fazla bit kullanırsanız, int değerlerini her zaman şu gibi kayan nokta numarasına dönüştürebilirsiniz: f = (v / 256.0) burada f kayan noktanız, v geçerli int değeri
XGouchet

Bir haritanın tüm statik nesnelerini (yükseklik) haritada saklamak iyi bir fikir mi? bitki örtüsü, yeşillik, ev gibi? veya başka bir nesnenin yerleştirileceği işaretçiler? ya da başka bir yol var mı?
Quazi Irfan

Tam konumu saklamamıştım, ama belki sadece bir yoğunluk bilgisi ve daha sonra yoğunluk bilgisinden veri (bitki örtüsü, ev vb ...) üretiyorum. Ancak en iyi yol, bu nesneleri elle yerleştirmek ve ikili bir veri dosyası veya xml açıklama dosyası kullanarak kaydetmek
XGouchet

1
@iamcreasy, evinizin yere dokunması için yükseklik haritasını kullanabilirsiniz, ancak bir pikselde tarif edilemeyen ev modelinin neye benzediğini (duvarlar, kapılar, herhangi bir mobilya) açıklamanız gerekir. Ayrıca jsut piksel bilgileri size doğru bir yönelim vermeyecektir, bu nedenle evlerinizin hepsi hizalanacaktır (doğal veya "güzel" görünmeyecektir).
XGouchet

1

Bunu yapmanın yolu, yükseklik haritasını (örneğin, 513 * 513 şamandıraları) ayırmak ve genellikle daha büyük bir çözünürlüğe ihtiyaç duyan splatmap'ı ("kontrol dokusu") ayırmaktır (32bit bmp, 512x512 kullanıyorum).

Yükseklik haritası ağı oluşturur (arazi, üçgenler).

Kontrol haritası tüm araziyi kapsar ve katmanlarının her biri (RGBA) Arazi üzerinde ne kadar Taş, Kir, Yol vb.

Bu şekilde a) arazi oluşturmak için bir düzenleyici kullanabilirsiniz ve b) Araziyi boyayın (Kaya, Kir, Yol vb. İle)

Daha ayrıntılı bir açıklama için 'boyama yükseklik haritası', 'yükseklik haritası splatmap' ve benzeri konularda hızlı bir goolge yapın veya 'realitede' nasıl çalışabileceğini kontrol etmek için Unity3D deyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.