Vì không có câu trả lời được chấp nhận nên tôi thêm một số thông tin, tôi chỉ muốn thêm những điều chưa được Sean nói vào câu trả lời của anh ấy.
TexelFetch coi kết cấu dưới dạng Hình ảnh, do đó bạn có thể truy cập chính xác nội dung của pixel. Bạn thường làm điều đó khi bạn cần chính xác nội dung đó, trong một vài dịp nhưng rất hữu ích:
- Một số bộ lọc xử lý bài đăng (Guassian Blur khai thác nội suy mẫu kết cấu và do đó nó không thể sử dụng TexelFetch)
- Khi các đỉnh cần đọc dữ liệu từ kết cấu và đó là thao tác phụ thuộc vào 2 tọa độ
Tex2D coi kết cấu như một kết cấu. Bạn không muốn nội dung chính xác của một pixel, nhưng bạn muốn kết quả thực tế nhất. Đọc kết cấu tiêu chuẩn là một hoạt động rất phức tạp và nó bao gồm việc đọc dữ liệu được nội suy từ một hoặc nhiều cấp độ mipmap và sau đó nó nội suy lại. Tất cả những hoạt động đắt tiền là để tránh các tạo tác trực quan.
GL_NEAREST sẽ không hoạt động giống nhau vì trên các đa giác xa nhất bạn đang đọc dữ liệu ở cấp độ mipmap nhỏ hơn, wich không giống với dữ liệu chính xác mà bạn sẽ đọc từ một lần tìm nạp texel.
Có một trường hợp Tex2D (gần như) hoạt động giống như TexelFetch:
- bộ lọc là GL_NEAREST
- bạn đang sử dụng một kim tự tháp mipmap chưa hoàn chỉnh với 1 cấp độ
- UV của bạn không phải là thành phần đỉnh được chuẩn hóa (nhưng bạn phải chuẩn hóa chúng trong shader)