문제

특정 사용자 정의 알고리즘을 사용하여 일부 렌더링 가능한 텍스처 (R16F & RGBA16F)에 대한 MIPMAP를 생성하려고합니다.

필요한 모든 텍스처의 MIPMAP는 glgeneratemipmapext ()를 사용하여 사전에 사용할 수 있습니다.

지금까지 가장 큰 문제는 1+ MIPMAP 수준으로 렌더링하는 것입니다.더 정확하게는 이것은 매력처럼 작동합니다.

...
glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, target, texType, texId, 0 );
checkFBOStatus();
...
render();

하지만 이것은 FBO 상태를 확인할 때 gl_framebuffer_incomprete_attachment_ext를 제공합니다.

...
glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, target, texType, texId, 1 );
checkFBOStatus();
...
render();

코드의 모든 차이는 텍스처를 FBO에 부착하기위한 LOD 레벨 매개 변수입니다.

열병이 많은 머리를 많이 긁어 낸 후에도 여전히 작동 할 수 없습니다. 따라서 모든 대답은 대단히 감사합니다.

참고 : 대상 플랫폼은 FBO 확장 기능이있는 OpenGL 2.X입니다

도움이 되었습니까?

해결책

문제 해결됨


FBO가 불완전한 이유는 텍스처 일관성 때문입니다. glgeneratemipmapext/glgeneratemipmap을 사용할 때는 텍스처의 기본 레벨이 포함되어 있는지 확인해야합니다. 유효한 데이터; 그렇지 않으면 해당 호출이 오류 알림없이 실패합니다.

당신의 추천을위한 두 가지 가능한 해결책이 있습니다.

  1. glgeneratemipmap 이전에 Teximage 또는 Texsubimage를 사용하여 렌더링 가능한 텍스처를 채우십시오.

  2. glgeneratemipmap 전에 렌더링 가능한 텍스처를 더미 FBO에 부착하십시오.

어느 쪽이든 ATI 카드에서는 테스트되지 않은 작업 (GF8, GF9에서 테스트)이 작동합니다.

ATI GPU에서 누구나 테스트 할 수 있다면 좋을 것입니다.

추신. Pls이 솔루션을 사용하는 데 문제가 있는지 알려주세요.

다른 팁

와우, 나는 Ati Radeon 9800에서도 같은 문제를 겪고 있습니다. 그러나 나는 glteximage2d와 전화를 걸었습니다.

첫 번째 레벨로 렌더링하는 것은 가능하지만 다른 레벨은 가능합니다. 어쩌면 더미 FBO 방법을 시도해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top