Saya mencoba mempelajari cara paling berkinerja untuk membuat penipu di Unity secara manual - tidak menggunakan solusi pra-pabrikasi.
Dugaan pertama saya adalah bahwa itu harus dicapai dengan menggunakan RenderTexture dan kamera kedua dan kemudian mengambil "snapshots" berbeda dari berbagai sudut objek. Jika ada alternatif yang lebih baik dalam hal kinerja (bahkan jika lebih sulit untuk diterapkan), saya akan senang mendengarnya.
Dalam hal itu adalah satu-satunya jalan, maka saya telah belajar bagaimana me-render dari kamera ke tekstur melalui skrip, tetapi saya masih belum bisa mengetahuinya bagaimana melakukan hal berikut, yang adalah apa yang perlu saya lakukan pertama-tama: bagaimana me-render -untuk-tekstur objek tertentu tanpa latar belakang kamera (yaitu dengan sisa tekstur yang transparan) dengan cara pemain?
Petunjuk, saran, atau setidaknya tautan rekomendasi akan sangat bagus.
Terima kasih sebelumnya.
Jawaban:
Ada berbagai teknik peniru yang berbeda.
Tingkat detail mungkin paling mudah untuk dicapai, tetapi memiliki dua kelemahan utama. Efek 'pop' yang terlihat ketika Anda bertukar antara model resolusi rendah dan tinggi, diselesaikan dengan transisi bertahap antara LOD. Masalah kedua adalah bahwa BANYAK lebih banyak pekerjaan untuk artis untuk menghasilkan LOD untuk setiap model tunggal. Ada pembicaraan GDC yang tentang cara otomatis untuk menghasilkan LODS - "Level Generasi Detail Otomatis untuk HALO: REACH"
Teknik yang lebih sederhana adalah billboarding, di mana Anda hanya menggunakan poligon datar, bukan mesh resolusi rendah. Poligon ini menghadap kamera, dan bertekstur dari render model Anda. Metode ini membutuhkan memiliki beberapa pandangan yang berbeda dari objek Anda, seperti bagaimana musuh dalam kehancuran. Anda bisa mempratinjau semua tampilan ke atlas tekstur. Game modern menggunakan pendekatan ini, seperti Far Cry 3 https://www.youtube.com/watch?v=9P3EI17kHaI
Anda juga dapat memiliki beberapa billboard statis yang berbeda, dan menggabungkannya seperti dalam paket kesatuan ini https://forum.unity3d.com/threads/abi-automatic-3d-billboard-imposters-released.204579/
Tetapi cara terbaik (yang saya pikir Anda inginkan) adalah secara dinamis merender papan reklame Anda, seperti dalam artikel gamasutra ini. http://www.gamasutra.com/view/feature/130911/dynamic_2d_imposters_a_simple_.php Ini pertama kali dilakukan oleh Jurrassic Park: Trespasser pada tahun 1998, jadi ini bukan teknik baru. Lihat ulasan kode di sini http://fabiensanglard.net/trespasser/index.php Gulir ke bawah ke bagian wavelet untuk melihat penipu mereka.
Kecuali pendekatan LOD standar, langkah pertama Anda mungkin akan menemukan tutorial tekstur render. Orientasi kamera renderTexture harus sama dengan kamera utama Anda, tetapi dipotong di sekitar gameObject untuk efisiensi. Anda harus mengisolasi gameObject yang ingin Anda render dengan mask culling. Dan atur bendera yang jelas dari kamera sehingga Anda mendapatkan latar belakang yang transparan. Kemudian render papan reklame sebagai ganti objek asli.
sumber