Begini cara saya mencoba dan melakukannya.
Saat Anda berada di dalam portal akan ada dua salinan pemain di mesin fisika. Setiap salinan mengabaikan semua tabrakan yang berada di sisi berlawanan dari portal, dan Anda kemudian menggabungkan hasilnya dan menerapkan hasil simulasi untuk kedua model.
Idealnya Anda akan menerapkan gravitasi secara terpisah untuk setiap setengah pemain, tetapi Anda mungkin bisa lolos hanya dengan menerapkannya di sisi portal tempat pusat massa pemain berada.
Untuk mengabaikan tabrakan itu, Anda perlu mengatur volume yang sesuai, dan menguji apakah ada titik di dalamnya. Sebuah silinder (mungkin diregangkan secara vertikal) tampaknya menjadi pilihan yang baik. Tesnya kira-kira seperti ituif (!collisionPoint.InsideCylinder(portal)) ProcessCollision(); else IgnoreCollision();
Saya percaya sebagian besar mesin fisika memiliki sistem untuk menyaring benda yang bisa bertabrakan, jadi harus dimungkinkan menggunakan mesin fisika standar. Misalnya http://bulletphysics.org/mediawiki-1.5.8/index.php/Collision_Filtering#Custom_collision_filtering
Untuk menggabungkan hasilnya, pilihan paling sederhana mungkin adalah menambahkan semacam kendala yang tidak fleksibel di antara keduanya, dan biarkan mesin fisika menanganinya.