Theo định nghĩa, GL_TEXTURE_MIN_FILTER được sử dụng khi pixel đang được tạo bản đồ kết cấu đến một khu vực lớn hơn một phần tử kết cấu.Khi nào tôi nên đặt GL_TEXTURE_MIN_FILTER và GL_TEXTURE_MAG_FILTER?
Giả sử tôi có kết cấu với độ phân giải 1024 * 768 và tôi muốn ánh xạ nó thành hình chữ nhật. Các ma trận chiếu được thiết lập sử dụng:
glOrtho(0, 1024, 0, 768, 0, 1);
và hình chữ nhật được thiết lập với:
glTexCoord2f(0.0f, 0.0f); glVertex3f(0.0f, 0.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f(1024.0f, 0.0f, 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f(1024.0f, 768.0f, 0.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(0.0f, 768.0f, 0.0f);
Với cấu hình hiện tại, sự hiểu biết của tôi là mỗi pixel vào hình chữ nhật được ánh xạ tới một pixel duy nhất trong kết cấu .
Tuy nhiên, sau khi thử nghiệm, tôi phát hiện ra MIN_FILTER đang hoạt động cho cấu hình này. Ngay cả khi tôi tăng gấp đôi kích thước của hình chữ nhật, cụ thể là 2048 * 1536 và chỉ góc dưới bên trái được hiển thị trong khung nhìn, nó vẫn là MIN_FILTER đang hoạt động.
Trong tình huống như vậy, sự hiểu biết cá nhân của tôi là, mỗi pixel trong chế độ xem được ánh xạ tới chỉ một phần tư pixel trong kết cấu, tại sao vẫn còn MIN_FILTER hoạt động?
Để kiểm tra bộ lọc nào đang hoạt động, tôi chỉ cần nhận xét dòng thiết lập bộ lọc đó và xem kết quả có sai không. Nếu tôi nhận xét ra dòng thiết lập MIN_FILTER, kết quả sẽ hoàn toàn màu vàng, vì tôi không đặt mức kết cấu tối đa phù hợp với cấp độ của nó. Nhưng nếu tôi nhận xét ra dòng MAG_FILTER, kết quả vẫn chính xác.
Bạn có ý nghĩa gì khi "đang hoạt động" và "không hoạt động"? –
Nếu trong trường hợp của bạn, chế độ xem nhỏ hơn 1024 × 768 thì bạn sẽ thực hiện giảm hiệu quả. – datenwolf