2014-03-27 2 views
0

표준 OpenGL 텍스처의 경우 필터링 상태는 텍스처의 일부이므로 텍스처를 만들 때 정의해야합니다. 이는 다음과 같은 코드로 연결됩니다.멀티 샘플 텍스처를 올바르게 생성

glGenTextures(1,&_texture_id); 
glBindTexture(GL_TEXTURE_2D,_texture_id); 
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); 
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); 
glTexImage2D(...); 

이것은 완벽하게 작동합니다. 다중 샘플 텍스처 (FBO에서 사용하기 위해)를 만들려고합니다. 내가 디버그 컨텍스트를 사용하고

glGenTextures(1,&_texture_id); 
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE,_texture_id); 
glTexParameterf(GL_TEXTURE_2D_MULTISAMPLE,GL_TEXTURE_MIN_FILTER,GL_NEAREST); 
glTexParameterf(GL_TEXTURE_2D_MULTISAMPLE,GL_TEXTURE_MAG_FILTER,GL_NEAREST); 
glTexImage2DMultisample(...); 

,이 코드를 처음 glTexParameterf(...) 호출이 발생합니다 : 코드는 매우 유사하다

GL_INVALID_ENUM 오류가 발생. 멀티 샘플 텍스처 타겟이 샘플러 상태를 지원하지 않습니다.

이것이 무엇을 의미하는지 알지 못합니다. 멀티 샘플 텍스처는 가장 가까운 필터링 만 지원합니다. 나는 이것을 지정하고있다. 일부 호출 (특히 glTexParameterf(...))에 대해 GL_TEXTURE_2D_MULTISAMPLE은 설명서에 나열된 입력이 아니라는 사실을 알게되었습니다. 실제로는 유효하지 않은 열거 형 오류를 설명 할 수 있습니다. 그러나 받아 들여지지 않으면 가장 가까운 필터링을 어떻게 설정해야합니까?

+1

필자는 멀티 샘플 텍스처를 사용하지 않았지만 가장 가까운 필터링 만 지원되므로 설정하지 않아도됩니다. 코드가'glTexParameterf' 호출없이 작동합니까? – GuyRT

+0

있습니다. 출처를 찾을 수 있으면 답변으로 게시하고 동의 할 것입니다. – imallett

답변

2

멀티 샘플 텍스처가 전혀 필터링되지 않기 때문에 가장 가까운 필터링을 설정할 필요가 없습니다. specification (섹션 8.10) (당신이 정수 매개 변수 대신 glTexParameterf의 사용한다) glTexParameteri에 대한 올바른 대상으로 목록 GL_TEXTURE_2D_MULTISAMPLE을 수행하지만 가능한 오류 중 목록 :

INVALID_ENUM 오류가 발생

대상 중 하나 TEXTURE_2D_MULTISAMPLE 경우 또는 TEXTURE_2D_MULTISAMPLE_ARRAY이고, pname은 표 23.18의 샘플러 입니다.

관련 문제