Tinggi Peta vs 3D Model Mesh

8

Saat ini saya sedang mengerjakan game PC 3D (ditulis dalam C ++ dan DirectX 9.0) dan saya sedang berusaha menemukan cara terbaik untuk menyimpan data level dalam memori.

Aksi gim berlangsung di bawah tanah, jadi selalu ada langit-langit di atas pemain. Tanahnya agak bergelombang dan ada hal-hal seperti stalagmit yang hadir setiap saat. Levelnya kecil dan ukurannya sebagian besar terlihat seperti koridor. Berikut adalah opsi yang berhasil saya temukan sejauh ini:

Dua peta tinggi disimpan di hard drive sebagai file bitmap atau biner / teks. Satu peta ketinggian untuk langit-langit (atas), satu untuk tanah.

ATAU

Jala 3D tunggal dalam beberapa format model 3D (katakanlah, .fbx, .x, .obj apa pun).

Bagaimana saya harus mendekati penyimpanan data level? Apa pilihan terbaik saya, berbicara tentang kinerja? Saya juga mengalami beberapa masalah dalam hal texturing tingkat yang dimuat melalui peta ketinggian; menggunakan model 3D membuat tekstur menjadi lebih mudah.

Terima kasih!


sumber

Jawaban:

4

Dari segi kinerja, kedua opsi harus setara karena semuanya akan dikonversi ke model cepat atau lambat.

Ketinggian peta:
+ Mudah untuk menyimpan dan mengedit
+ Mudah untuk menghitung koordinat tekstur jika mereka tidak dihitung -Tekstur rendah
pada permukaan curam
-Membutuhkan model pendamping untuk detail yang lebih baik
-Tidak memungkinkan medan yang tumpang tindih (tidak ada overhang).

Model:
+ Kontrol lebih besar atas perpindahan horizontal
+ Medan yang tumpang tindih dimungkinkan
+ Kontrol maksimum atas tekstur
-Kolisi sedikit lebih rumit
-Bisa menggunakan memori lebih banyak pada disk

Dalam pengalaman saya, yang terbaik adalah menggunakan peta ketinggian yang agak datar untuk dataran dasar dan menggunakan model untuk hal-hal seperti stalagmit, dan Anda bahkan dapat menggunakan model berulang untuk objek seperti itu (untuk menghemat memori).

Tentu saja, Anda bisa menggunakan bidang vektor, tapi itu pada dasarnya model dengan tekstur lebih mudah.

Apel
sumber
1

Mungkin membantu jika Anda memberi tahu kami apa genre permainannya, apa yang dilihat kamera, dll. Saya berasumsi Anda sedang berbicara tentang FPS tetapi saya tidak yakin.

Ngomong-ngomong, ini tautan untuk ngobrol tentang medan di Halo Wars yang menurut saya menarik dan dapat memberikan Anda gagasan: http://www.gdcvault.com/play/1277/HALO-WARS-The-Terrain-of . Ini berkaitan dengan beberapa masalah dan kemungkinan solusi yang Anda sebutkan.

menganiaya
sumber
0

Anda tidak harus memilih satu dari yang lain, keduanya bisa efektif, dan tidak ada alasan Anda tidak bisa menggabungkan keduanya.

Jika Anda menggunakan pemetaan ketinggian, saya pribadi akan memilih format bitmap. Directx harus dapat melakukan semua pemuatan bitmap untuk Anda dan mengubahnya menjadi sumber daya yang dapat Anda gunakan. Jika Anda menggunakan file teks biasa, Anda harus menguraikannya sendiri. Ini tentu saja memberi Anda lebih banyak kebebasan dalam menafsirkan file, dan mungkin merupakan titik awal yang baik untuk memungkinkan eksperimen lebih mudah.

Satu hal yang perlu dipertimbangkan adalah bahwa heightmap akan meninggalkan Anda dengan resolusi tetap, sehingga stalagmit yang Anda sebutkan mungkin sulit untuk diwakili dengan baik, kecuali jika Anda meningkatkan kerapatan piksel seluruh peta.

Secara umum, saya katakan ketinggian peta adalah cara yang efektif untuk menyimpan medan Anda, tetapi menambahkan detail seperti stalagmit akan jauh lebih fleksibel dengan model.


sumber