Saya mencoba melakukan resolusi rendering bergerak sprite independen dalam game 2D. Rencana saya bekerja dalam sistem koordinat tetap di dunia saya (misalnya 960x540) dan menggunakan proyeksi ortografis untuk skala yang naik atau turun agar sesuai dengan viewport. Saya melakukan letterboxing untuk menangani rasio aspek yang berbeda.
Menurut sebagian besar tutorial, saya bebas menggunakan dimensi apa pun yang saya suka untuk tampilan frustum, tetapi saya menemukan bahwa dalam banyak kasus yang mengarah ke masalah yang akhirnya saya gunakan nilai-nilai subpixel pada viewport. Sebagai contoh titik di (62,62) dalam sistem koordinat 960 x 540 berakhir di (51.6666667,51.6666667) pada viewport dengan dimensi 800 x 450.
Saya perhatikan dua macam masalah dengan itu:
- sampling tekstur berubah sepanjang waktu untuk objek yang bergerak tergantung pada tempat simpul dalam kaitannya dengan pusat piksel
- objek saya bisa melebar secara horizontal atau vertikal dengan piksel dari waktu ke waktu karena pembulatan
Apa praktik terbaik untuk menghindari ini (sambil mempertahankan resolusi independensi dalam hal kecepatan gerakan dan sebagainya)? Dan di mana tempat terbaik untuk mengatasi ini? Sebelum melewati simpul ke shader atau di dalam vertex shader?