Karena tidak ada jawaban yang diterima saya menambahkan beberapa info, saya hanya ingin menambahkan hal-hal yang belum dikatakan oleh Sean dalam jawabannya.
TexelFetch memperlakukan tekstur sebagai Gambar, sehingga Anda dapat mengakses konten piksel dengan tepat. Anda biasanya melakukan itu ketika Anda membutuhkan konten itu, yang dalam beberapa kesempatan tetapi bermanfaat:
- Filter pemrosesan pos tertentu (Guassian blur mengeksploitasi interpolasi sampel tekstur dan karenanya tidak dapat menggunakan TexelFetch)
- Ketika simpul perlu membaca data dari tekstur dan itu adalah operasi tergantung pada 2 koordinat
Tex2D memperlakukan tekstur sebagai tekstur. Anda tidak menginginkan konten yang tepat dari suatu piksel, tetapi Anda menginginkan hasil yang paling realistis. Pembacaan tekstur standar adalah operasi yang sangat kompleks dan melibatkan pembacaan data yang diinterpolasi dari satu atau lebih level mipmap dan kemudian diinterpolasi lagi. Semua operasi mahal itu untuk menghindari artefak visual.
GL_NEAREST tidak akan berfungsi sama karena pada poligon terjauh Anda membaca data di tingkat mipmap yang lebih kecil, yang bukan data persis yang sama dengan yang Anda baca dari pengambilan texel.
Ada satu kasus di mana Tex2D (hampir) bekerja sama dengan TexelFetch:
- filter adalah GL_NEAREST
- Anda menggunakan piramida mipmap tidak lengkap dengan 1 level
- UV Anda bukan komponen vertex yang dinormalkan (tetapi Anda harus menormalkannya dalam shader)