Pergunta

estou a usar FBOs no meu código OpenGL e estou vendo erros de compilação em GL\_FRAMEBUFFER\_INCOMPLETE\_DUPLICATE\_ATTACHMENT\_EXT.Qual é a causa disso e como posso corrigi-lo?

Foi útil?

Solução

A causa deste erro é uma versão mais antiga do NVIDIA glext.h, que ainda possui essa definição.Considerando que as versões mais recentes do GLEW não.Isso leva a erros de compilação no código que você escreveu anteriormente ou obteve na web.

O GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT A definição para FBO costumava estar presente na especificação (e, portanto, nos arquivos de cabeçalho).Mas, mais tarde foi removido.A razão para isso pode ser encontrada no Especificação de extensão FBO (procure a edição 87):

(87) What happens if a single image is attached more than once to a
     framebuffer object?

     RESOLVED: The value written to the pixel is undefined.

     There used to be a rule in section 4.4.4.2 that resulted in
     FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT if a single
     image was attached more than once to a framebuffer object.

         FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT   0x8CD8

         * A single image is not attached more than once to the
           framebuffer object.

           { FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT }

     This rule was removed in version #117 of the
     EXT_framebuffer_object specification after discussion at the
     September 2005 ARB meeting.  The rule essentially required an
     O(n*lg(n)) search.  Some implementations would not need to do that
     search if the completeness rules did not require it.  Instead,
     language was added to section 4.10 which says the values
     written to the framebuffer are undefined when this rule is
     violated.

Para corrigir esse erro, remova todo o uso de GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT do seu código.

Se isso não for possível em sua configuração, adicione uma definição fictícia ao seu glext.h ou glew.h arquivo como este:

#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top