Memalsukan objek 3D untuk mengurangi jumlah poligon

20

Saya membuat game dalam kesatuan dan saya sedang membangun pagar di blender tapi saya ingin itu menjadi serendah mungkin. Desain asli saya terlalu tinggi, jadi saya pikir, bagaimana jika saya bisa menggunakan kubus dengan tekstur yang diatur dengan cerdas. Seperti itu:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Anda dapat melihat ujung-ujungnya terlihat bagus tetapi bagian dalam tidak, yaitu tidak ada apa-apa di sana ... jadi apakah ada yang tahu apakah mungkin untuk memalsukan wajah-wajah yang akan membuatnya terlihat seolah-olah itu adalah mesh yang lengkap. Inilah yang ingin saya capai:

masukkan deskripsi gambar di sini

mr-matt
sumber
7
Saya menghitung 52 simpul di pagar itu. Itu tidak banyak.
Pharap
1
@Pharap Tapi perlu diingat apa yang terjadi ketika Anda menempatkan ribuan salinan dari jala ini di batas level Anda.
Philipp
5
@ Pilip Jika Unity menggunakan Vertex Buffer Objects dan teknik pengoptimalan serupa dengan benar yang seharusnya tidak menjadi masalah. Anda selalu bisa menggunakan sprite billboard dengan alpha jika Anda khawatir. Atau lebih baik lagi, buat sprite papan reklame di kejauhan dan berikan jaring yang tepat ketika pemain cukup dekat. Dan saya benar-benar ragu Anda akan mendapatkan ribuan pagar ditarik ke layar sekaligus. Bahkan jika ada 9000+ pagar yang ditempatkan di dunia, saya curiga sejumlah besar pagar itu akan dimusnahkan. Apakah Anda benar-benar melakukan benchmarking atau hanya membuat asumsi tentang kinerja?
Pharap
6
Apakah Anda mengembangkan untuk seluler atau untuk PC / konsol? Setidaknya pada GPU modern (5 tahun atau lebih muda), model 52 simpul mungkin lebih murah daripada melakukan beberapa alpha blending / alpha masking. Itu tergantung pada banyak faktor (cakupan layar, GPU, pixel shader atau hambatan rasterisasi, dll.), Tetapi menggunakan masker alpha selalu menghasilkan penarikan berlebih. Anda mungkin harus membandingkannya sebelum mengoptimalkan.
Tobias B
2
Satu contoh di mana Anda mungkin tidak ingin melakukan ini, mungkin, jika Anda perlu mengabaikan deteksi tabrakan di celah-celah itu, seperti jika Anda telah mencoba menembak melalui celah pada objek tertentu (pada beberapa penembak orang pertama) dan "peluru" -hole "( decal ) muncul di" ruang kosong "( model ).
DoubleDouble

Jawaban:

26

Jika saya mengerti benar apa yang ingin Anda capai, Anda mencari konsep "penipu". Ini adalah representasi 2D dari objek 3D, yang digunakan untuk mengurangi kompleksitas geometris dari rendering lingkungan 3D.

Anda dapat menganggap mereka cukup sebagai gambar dari objek 3D yang digunakan sebagai tekstur objek 2D. Referensi kanonik untuk mereka mungkin adalah bab 21 dari buku GPU Permata 3, yang disebut "Penipu Sejati". Ini tersedia untuk umum di sini . Referensi penting lainnya adalah bab 5.7 dari buku Game Programming Gems v.2, yang disebut "Imposters: Adding Clutter", dalam Game Programming Gems 2, Tom Forsyth ".

Dan mereka dapat secara merata dihasilkan dengan cepat, untuk menangani perubahan kecil dalam sudut pandang atau dengan konten yang dihasilkan run-time. Lihatlah artikel Gamasutra yang luar biasa tentang topik ini, yang disebut "Dynamic 2D Imposters: Implementasi DirectX 9 yang Sederhana dan Efisien" . Pengembangan lebih lanjut dari konsep ini telah muncul di "Awan Billboard untuk Penyederhanaan Model Ekstrim" .

Untuk penjelasan konsep yang bagus dan lembut, lihat entri blog ini: http://blog.wolfire.com/2010/10/Imposters

Terakhir, saat Anda menggunakan Unity, saya pernah mendengar tentang plugin yang mengotomatiskan proses tersebut. Ini disebut Sistem Penipu Nyata .

UPDATE: demi penyelesaian, saya berpikir untuk menambahkan dua hal yang saya ingat baru-baru ini. Pertama adalah: ada video GDC yang hebat di mana direktur seni SimCity menjelaskan bagaimana mereka telah menggunakan penipu (berat) untuk mencapai prestasi grafis terbaik dari permainan itu: "GDC - Membangun SimCity: Seni dalam Layanan Simulasi". . Kedua, bagi mereka yang tertarik dengan Unreal Engine, ia memiliki fitur bawaan untuk mengimplementasikan penipu, seperti yang dapat dilihat pada dokumen

Dan
sumber
Jadi jika saya membuat model pagar, yang penuh dan menggunakan Sistem LOD Penipu Sejati, menurut Anda itu akan berhasil?
mr-matt
5
@MatthewInglis Saya tidak bisa memberi tahu Anda dengan jelas tentang plugin: sudah lama saya tidak menggunakan Unity jadi saya tidak bisa memeriksa. Namun pada prinsipnya, ya, itu harus membuat versi sprite 2D objek 3D Anda yang sepenuhnya terperinci. Anda harus bermain-main dengan konfigurasi. Jika Anda berencana membeli plugin, pertimbangkan untuk membaca dokumen terlebih dahulu ( drive.google.com/file/d/0B3GMQtflbloSeHhvUGJmcjluX3M/view ) dan menghubungi penulis dengan pertanyaan spesifik yang mungkin Anda miliki di produk mereka sebelumnya.
Tanggal
0

Jika Anda tidak memerlukan interaksi apa pun pagar, maksud saya, dengan celah, saya akan menggunakan persegi panjang transparan sederhana dengan tekstur dicetak.

PRDeving
sumber