2010-09-04 48 views
8

glTexParamter hành động trên tất cả các họa tiết trên toàn cầu hay chỉ kết cấu hiện bị ràng buộc.Phạm vi của glTexParameter trong OpenGL là gì?

Ví dụ, nếu tôi gọi đây là lúc tải kết cấu:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); 

Và điều này trên một tải kết cấu:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); 

Khi tôi gắn kết cấu đầu tiên sẽ chỉ sử dụng các giá trị cuối cùng Tôi đặt (GL_CLAMP) hoặc nó sẽ sử dụng các giá trị ban đầu được thiết lập khi kết cấu bị ràng buộc?

Trả lời

6

Từ OpenGL FAQ:


21,070 Làm thế nào để đối tượng kết cấu làm việc?

Đối tượng kết cấu lưu trữ bản đồ kết cấu và trạng thái thông số kết cấu liên quan của chúng. Chúng cho phép chuyển đổi giữa các kết cấu với một lệnh gọi tới glBindTexture().

(...)

Các chức năng sau ảnh hưởng và lưu trữ nhà nước trong các đối tượng kết cấu: glTexImage *(), glTexSubImage *(), glCopyTexImage *(), glCopyTexSubImage *(), glTexParameter *() và glPrioritizeTextures(). Kể từ khi GLU thói quen để xây dựng các kim tự tháp mipmap cuối cùng gọi glTexImage *(), chúng cũng ảnh hưởng đến trạng thái đối tượng kết cấu. Không có mặt trong danh sách này là glTexEnv *() và glTexGen *(); chúng không lưu trữ trạng thái trong các đối tượng kết cấu.


Ergo, glTexParameter * chỉ ảnh hưởng đến kết cấu bị ràng buộc.

+1

Rất tuyệt vời đó là những gì tôi đã hy vọng nếu không tôi sẽ phải làm một loạt các thay đổi trạng thái mỗi khi tôi bị ràng buộc một kết cấu. –

Các vấn đề liên quan