EDIT: Jadi saya mendapatkan efek visual portal bekerja tanpa hit kinerja, dan saya punya fisika mengatur objek dengan benda keras bergerak melalui portal dengan mulus, dan objek dengan pengontrol karakter bergerak melewatinya dengan mulus. Satu-satunya hal yang saya coba cari tahu sekarang adalah memadukan dua tampilan kamera untuk mendapatkan efek transisi orang pertama yang tepat. Ada ide tentang bagaimana saya akan mencampur keduanya? Saya sedang memikirkan sesuatu menggunakan kedalaman shader saja, atau rect viewport dinormalisasi. Masalah utama saya adalah menghitung secara real time, dan dengan sudut.
Jadi saya sudah berusaha membuat efek portal di Unity3D. Jelas saya telah menggunakan Portal Valve sebagai pengaruh besar untuk pemrograman ini. Saat ini saya hanya menggunakan rendertexture kamera untuk mendapatkan efek grafis, dan kemudian beberapa kode untuk melakukan sisanya. Masalahnya adalah pada 2048x2048 terlihat berkualitas tinggi seperti Portal, tetapi menyebabkan kerugian FPS yang besar. Untuk mengatasinya, saya harus menurunkan kualitas tekstur atau berapa kali saya memperbarui tekstur.
Valve telah mencapai efek portal berkualitas tinggi tanpa menyebabkan frame rate loss tinggi. Bagaimana saya bisa melakukan hal yang sama? Apakah ada yang punya ide bagus untuk rendering ke tekstur resolusi tinggi tanpa menyebabkan frame loss?
Saya sedang mempertimbangkan membuat kode saya sendiri untuk rendering ke tekstur daripada menggunakan sistem bawaan Unity, itu bisa dilakukan tetapi pasti akan merepotkan. Jadi setiap pemikiran, ide, atau saran sangat dihargai.
Jawaban:
Setelah berjam-jam penelitian dan pemrograman saya menemukan cara untuk mendapatkan efek visual yang tepat untuk ini. Jika Anda hanya ingin membeli sistem portal yang berfungsi untuk visual dan hampir semua yang Anda butuhkan, lihat Paket Kesatuan Portalizer.
Saya memprogram dalam C # dan paket itu dalam JS, tetapi logika di baliknya sangat berguna dan dipikirkan dengan baik. Secara umum saya mengikuti pemikiran logisnya, dengan beberapa penyesuaian untuk permainan saya dan pengontrol orang pertama.
Pada dasarnya apa yang Anda lakukan adalah menggunakan versi modifikasi dari ini shader air / script. Memiliki dua cermin di tempat kejadian, dan memiliki kamera membuat apa yang dilihatnya di setiap refleksi ke cermin lainnya. Anda harus membuat matriks transformasi yang dimodifikasi untuk menjelaskan hubungan antara kedua portal. Untuk membantu mengurangi hit kinerja, baca artikel ini tentang kliping pesawat dekat. Ini akan membantu Anda membuat hanya apa yang perlu dilihat melalui portal.
Saya dapat membuat tutorial yang lebih terperinci dengan gambar dan sumber begitu saya mengetahui cara memadukan kamera dengan benar untuk teleport FPS. Saat ini saya terlalu lelah dan sibuk untuk menulis tutorial lengkap dan ini sudah cukup karena memberi Anda sebagian besar kode yang diperlukan.
sumber