glGetActiveUniformBlock
은 GL_UNIFORM_BLOCK_BINDING
으로 반환됩니다. 지정된 균일 블록이 바인딩 인덱스에 바인딩되지 않았습니까? http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlock.xml 메시지 :GL_UNIFORM_BLOCK_BINDING 블록이 인덱스에 바인딩되지 않은 경우
이전에 균일 한 블록이 지정되지 않은 경우, 0이 리턴됩니다.
언 바운드 블록에 대해 0이 반환된다는 것을 의미합니까? 그렇다면 프로그램 연결 후 모든 unifrom 블록이 기본적으로 제로 인덱스에 바인딩된다는 의미입니까? 다시 말하지만 그렇다면 특정 블록이 0에 바인딩되었는지 또는 어떤 인덱스에도 바인딩되지 않았는지 어떻게 알 수 있습니까?
물론 무엇이 설정되었는지는 알지만 코드의 다른 부분에서'GL_UNIFORM_BLOCK_BINDING'을 요청합니다. 따라서 이러한 요청의 특수한 오류 상태는 잘못된 호출을 감지하고 테스트를 좀 더 쉽게 할 수 있습니다. – Sergey
@ Sergey : 코드에 혼란이 있음을 알 수 있습니다. 개인적으로, 나는 이런 종류의 것들에 대한 간단한 컨벤션을 구축하는 것이 좋습니다. 한 종류의 블록은 항상 인덱스 0을 사용합니다 (예 : 모든 렌더링 쉐이더에서 공유되는 투영 행렬). 인덱스 1은 다른 것으로 이동합니다 (예 : 모델 - 투 - 뷰 변환). 인덱스 2는 조명 파라미터가있는 곳일 수 있습니다. 기타 등등. 또는 다른 말로 표현하면, 물어 보지 않도록 설정하십시오. 당신이'glGet *'을 사용하고있을 때쯤 나는 그것을 보게 될 것입니다. –