Medan Berbasis Ketinggian dengan Jalan

12

Apa cara terbaik untuk mengimplementasikan fitur detail, seperti jalan, di medan berbasis ketinggian?

masukkan deskripsi gambar di sini

Pembaruan: Agak sulit untuk dilihat pada gambar, tetapi jalan turun dari atas tambang untuk melakukan dasarnya.

Adam Kane
sumber

Jawaban:

14

Apa yang hebat dengan gambar adalah bahwa mereka biasanya menanamkan hingga 4 saluran (merah, hijau, biru dan alfa). Karena peta ketinggian hanya membutuhkan satu dimensi, Anda bisa menggunakan saluran merah untuk menyimpan informasi ketinggian (Anda masih memiliki 256 level untuk ketinggian), dan kemudian menggunakan saluran lain untuk keperluan lain (seperti menggunakan saluran hijau untuk memetakan jalan-jalan). , saluran biru untuk air / kelembaban) dll ...

Seperti ini, Anda dapat memastikan bahwa saat Anda membangun medan, zona di mana jalan harus dibangun akan tampak datar alih-alih mengikuti gradien ketinggian.

XGouchet
sumber
1
Apakah mungkin menggunakan gambar HDRI, sehingga angka float dapat digunakan untuk menyimpan informasi ketinggian yang lebih tepat?
Quazi Irfan
1
Gambar HDRI bukan format file tetapi konsep, tapi ya Anda bisa menggunakan format file tertentu untuk memungkinkan akurasi lebih. Sebagian besar tergantung pada perangkat keras / lunak Anda, tetapi ada gambar RG float yang dapat Anda simpan baik pada 32 atau 64 bit. Tapi apa pun formatnya, jika Anda menggunakan lebih banyak bit per saluran, Anda selalu dapat mengonversi nilai int ke angka floating point seperti ini: f = (v / 256.0) di mana f adalah float Anda, v nilai int saat ini
XGouchet
Apakah ide yang baik untuk menyimpan semua objek statis peta pada peta (tinggi)? seperti tumbuh-tumbuhan, dedaunan, rumah? atau petunjuk di mana objek lain akan ditempatkan? atau ada cara lain?
Quazi Irfan
Saya tidak akan menyimpan lokasi yang tepat, tetapi mungkin hanya informasi kepadatan, dan kemudian menghasilkan data (vegetasi, rumah dll ...) dari informasi kepadatan. Tetapi cara terbaik adalah menempatkan benda-benda ini dengan tangan dan menyimpannya menggunakan file data biner atau file deskripsi xml
XGouchet
1
@iamcreasy tentu saja Anda dapat menggunakan peta ketinggian untuk membuat rumah Anda menyentuh lantai, tetapi Anda perlu menggambarkan seperti apa model rumah itu (dinding, pintu, perabotan apa pun di dalam), yang tidak dapat dijelaskan dalam piksel. Juga hanya informasi piksel tidak akan memberi Anda orientasi yang akurat, sehingga rumah Anda semua akan disejajarkan (yang tidak akan tampak alami atau "cantik").
XGouchet
1

Cara saya melakukannya adalah dengan memisahkan heightmap (saya menggunakan floats misalnya, 513 * 513) dan splatmap ("control-tekstur") yang sering membutuhkan resolusi lebih besar (saya menggunakan bmps 32bit, 512x512).

Peta ketinggian menciptakan jala (medan, segitiga).

Peta kontrol mencakup seluruh medan dan setiap lapisannya (RGBA) mengatakan berapa banyak yang mengatakan Batu, Kotoran, Jalan, dll. Anda harus melihat Di medan.

Dengan cara ini Anda dapat menggunakan editor untuk a) membuat medan dan b) Cat medan (dengan Batu, Tanah, Jalan dll.)

Lakukan goolge cepat pada 'lukisan heightmap', 'splatmap heightmap' dan semacamnya untuk penjelasan atau unduhan yang lebih lengkap katakan Unity3D untuk mengetahui bagaimana itu bekerja dalam 'kenyataan'.

Valmond
sumber