Mana yang lebih baik, satu model level besar atau beberapa model level lebih kecil?

8

Saya sedang menulis permainan di XNA 4 dan saya ingin memiliki sesuatu seperti koridor. Apakah menurut Anda lebih baik menggunakan satu model besar dan kokoh, atau menggunakan beberapa bagian kecil (jendela, tangga, pintu ...)?

Vodáček
sumber

Jawaban:

8

Dalam hal rendering grafis, satu mesh besar lebih cepat untuk menggambar daripada beberapa mesh kecil.

Jika Anda berbicara tentang sesuatu seperti koridor, itu mungkin tidak akan terlalu intensif untuk GPU jika Anda mengirimkannya sebagai pintu dan lantai dan beberapa dinding. Jejaring yang lebih kecil juga memungkinkan Anda bermain-main dengan posisi lebih mudah.

Jika gambar Anda menjadi hambatan, pertimbangkan itu.

Bebek Komunis
sumber
1
Itu tidak harus lebih cepat. Ambil dunia Oblivion, menjadikan ini sebagai sesuatu yang bodoh dan sangat lambat karena Anda tidak dapat memilih bagian apa yang terlihat oleh pemain. Anda akhirnya akan membuang banyak sumber daya
Peter Ølsted
1
Teladannya adalah koridor. Jika dia mengatakan 'seluruh dunia', saya akan menyebutkan itu. : P
Bebek Komunis
Diucapkan dengan baik
salahku
ya, adegan level saya adalah tautan
Vodáček
Dengan adegan itu, pasti beberapa elemen. Akan sangat menyakitkan untuk mengubah adegan dalam 3DMax, blender atau apa pun. Dan sebagai "Bebek Komunis", jika itu menjadi hambatan dan Anda yakin itu modelnya dan bukan apa pun, daripada mungkin (jika kinerjanya benar-benar penting), Anda bisa melakukannya.
Peter Ølsted
5

Saya sarankan menjaga pintu sebagai model terpisah, kecuali Anda yakin Anda tidak pernah ingin bisa membukanya.

Windows jika mereka transparan juga ingin menjadi model yang terpisah sehingga mereka dapat diurutkan secara mendalam untuk rendering.

Segala sesuatu yang lain mungkin harus menjadi model dan tekstur tunggal untuk kinerja terbaik, dan untuk menghilangkan celah di mana mereka bergabung bersama.

Adam
sumber
3

Jika level Anda memiliki terlalu banyak detail, Anda harus membaginya menjadi beberapa bagian dan menerapkan pemusnahan frustrasi untuk menggambar hanya jerat yang saat ini terlihat.

r2d2rigo
sumber
Saya sudah pernah menggunakan metode ini, tapi saya pikir itu hanya berfungsi untuk seluruh model (bukan untuk jerat), tetapi mungkin bahwa kita tergantung pada kode gambar saya.
Vodáček
Apakah itu tergantung pada keseluruhan model atau jerat tergantung pada penyaji Anda, atau bagaimana Anda telah menerapkan culling. Verteks adalah simpul.
decaviatedcaviar
1

dalam kebanyakan kasus menggunakan bagian-bagian kecil tidak sia-sia karena memberikan kode Anda dapat digunakan kembali dan fleksibel; dan dalam kasus koridor atau sesuatu yang serupa yang tidak termasuk BANYAK (banyak akan berarti angka seperti setidaknya 40) bagian yang lebih kecil, keuntungan kinerja menggunakan model besar dan padat dapat diabaikan (kecuali jika Anda menggambar objek berkali-kali per bingkai).

jika Anda peduli dengan kinerja saya sarankan precomputing pencahayaan atau menggunakan semacam array vertex (buffer vertex?) yang benar-benar akan membuat perbedaan. (jika hal-hal itu mungkin di XNA - saya tidak tahu banyak tentang XNA)

ps: paragraf pertama dari posting ini hanya benar tentang menggambar (bukan tentang misalnya menggunakan model fisika terpisah untuk bagian koridor)

V_shr
sumber