2012-09-07 41 views
9

Sử dụng XCode 4.4.1 Tôi đã mã OpenGL sau:Tại sao GL_LINEAR_MIPMAP_LINEAR gặp lỗi INVALID_ENUM?

//set the tex params 
glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR); 

tôi kiểm tra các lỗi OpenGL sử dụng đoạn mã này:

GLenum err = glGetError();//THIS IS LIKE THIS BECAUSE OF AN EARLIER ERROR 

if (err != GL_NO_ERROR) 
{ 
    NSLog(@"glError: 0x%04X", i, err); 
} 

Mã OpenGL tạo ra một lỗi (0x500) - Tôi nhắm mục tiêu iOS 5.0 bằng OpenGL ES2.0.

Tại sao đây là một enum không hợp lệ ??

+0

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glTexParameter.xhtml này có tất cả các câu trả lời bạn cần – Archmede

Trả lời

23

Bộ lọc magnifaction GL_TEXTURE_MAG_FILTER không hỗ trợ ánh xạ mip, vì điều này không có ý nghĩa gì đối với việc phóng đại hoạ tiết. Nó chỉ hỗ trợ GL_NEARESTGL_LINEAR. Vì vậy, chỉ cần thay đổi dòng này để

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 
+1

Đây có phải là vẫn còn hiệu lực? ** Chế độ lọc GL_LINEAR_MIPMAP_LINEAR cung cấp chất lượng tốt nhất khi tạo họa tiết nhưng yêu cầu thêm các nội dung được tìm nạp từ bộ nhớ. ** Từ: https://developer.apple.com/Library/ios/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/ TechniquesForWorkingWithTextureData/TechniquesForWorkingWithTextureData.html – aledalgrande

+1

@aledalgrande Tất nhiên nó vẫn hợp lệ. Nó luôn luôn hợp lệ và sẽ luôn luôn hợp lệ. Điều đó có vẻ giống như một tuyên bố táo bạo nhưng nó không phải là, kể từ khi nói rằng bộ lọc maginification đã hoàn toàn không có khái niệm về mipmapping ở tất cả. Tất nhiên 'GL_LINEAR_MIPMAP_LINEAR' rất hữu ích, nhưng nó không được sử dụng cho bộ lọc phóng đại (' GL_TEXTURE_MAG_FILTER'), nhưng chỉ dành cho bộ lọc minfication ('GL_TEXTURE_MIN_FILTER'). Liên kết của bạn dường như không đề cập đến sự khác biệt này, nhưng sau đó một lần nữa nó thực sự chỉ là tài liệu bổ sung và không phải giải thích toàn bộ văn bản. –

+0

Tôi vừa nhận ra rằng chúng tôi chỉ nói về bộ lọc mag, bonkers ... – aledalgrande

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