Di gim saya ada medan mirip Minecraft yang terbuat dari kubus. Saya menghasilkan buffer vertex dari data voxel dan menggunakan atlas tekstur untuk tampilan blok yang berbeda:
Masalahnya adalah bahwa tekstur kubus jauh interpolasi dengan ubin yang berdekatan di atlas tekstur. Itu menghasilkan garis-garis warna yang salah di antara kubus (Anda mungkin perlu melihat tangkapan layar di bawah dalam ukuran penuh untuk melihat kekurangan grafis):
Untuk saat ini saya menggunakan pengaturan interpolasi ini tetapi saya mencoba setiap kombinasi dan bahkan GL_NEAREST
tanpa memetakan tidak memberikan hasil yang lebih baik.
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
Saya juga mencoba menambahkan offset dalam koordinat tekstur untuk memilih area ubin yang sedikit lebih kecil tetapi karena efek yang tidak diinginkan tergantung pada jarak ke kamera ini tidak dapat menyelesaikan masalah sepenuhnya. Di kejauhan, garis-garis itu tetap terjadi.
Bagaimana saya bisa mengatasi pendarahan tekstur ini? Karena menggunakan atlas tekstur adalah teknik yang populer, mungkin ada pendekatan umum. Sayangnya, untuk beberapa alasan yang dijelaskan dalam komentar, saya tidak dapat mengubah tekstur atau array tekstur yang berbeda.
GL_LINEAR
yang memberikan hasil yang sama atau memilih piksel terdekat GL_NEAREST
yang bagaimanapun juga menghasilkan garis-garis di antara blok. Opsi yang disebutkan terakhir berkurang tetapi tidak menghilangkan cacat piksel.