엔터티 간의 OpenGL 바인딩 및 관계


12

이것은 대부분 문서화 문제입니다. 프로그래머 또는 스택 오버 플로우와 같은 곳이 아닌 적절한 곳이기를 바랍니다.

OpenGL 사양을 읽지 않았지만 책 (Red Book) 및 다양한 자습서에서 API의 다른 객체와 부분이 상호 작용하고 관련되는 방식을 올바르게 파악할 수 없습니다.

예를 들어, VAO가 바인딩 된 경우 VBO를 바인딩하고 속성을 설정하면 VBO가 VAO에 바인딩됩니다.

그러나 많은 대상이 있으며 관계가 다를 수 있습니다. 예를 들어, VAO는 현재 쉐이딩 프로그램과 완전히 관련이 없지만 드로잉 작업의 결과는 두 가지 모두에 따라 달라질 수 있습니다.

다양한 OpenGL 구성 요소 중에서 A-B-to-B 또는 A-and-B-C-by-C와 같은 관계를 볼 수 있습니다. 이러한 모든 관계는 상황의 상태를 변경하는 방법, 사물을 변경하는 방법, 사물을 함께 저장하고 최적화하는 방법을 결정하는 데 동의합니다.

나는 설명 자료를 찾고 있어요 단지 이러한 관계를. UML 다이어그램, 그래프 또는 텍스트 문서와 같이 호출에 중점을 두지는 않지만 다양한 OpenGL 구성 요소가 서로 상호 작용하고 관련되는 방식을 간략하게 설명합니다.

그러한 자원을 어디에서 찾을 수 있는지 알고 있습니까?


3
좋은 질문입니다. 핵심 질문에 대한 명확한 대답없이 전체 OpenGL 라이브러리 / 엔진을 설치하고 실행하고 있습니다.
david van brink

1
VBO를 바인딩한다고해서 VAO에 바인딩되지는 않습니다. 이것은 대신에 달성됩니다 glVertexAttribPointer(). OpenGL 객체에 대한 다이어그램은 상당히 얕고 단순하며 실제로 OpenGL에는 소수의 다른 객체가 없습니다. VAO는 속성에 버퍼를 사용합니다. 버퍼 텍스처는 버퍼에 의해 지원됩니다. 프레임 버퍼에는 텍스처 첨부 파일이 있습니다. 드로잉 명령은 현재 VAO, 현재 프로그램, 현재 프레임 버퍼, 현재 샘플러 설정 및 현재 인덱스 버퍼 / 간접 버퍼를 사용합니다. 다이어그램을 직접 그릴 수 있습니다.
Dietrich Epp

1
죄송합니다. 그림을 그리지 않겠습니다.
Dietrich Epp

2
좋은 질문, 그리고 내가 서있는 곳에서 상당한 현상금을 부과하지 않고 포괄적 인 답변을 얻을 수 있습니다.
엔지니어

2
OpenGL의 디자인은 왜 전역 변수를 사용하지 말아야하는지에 대한 큰 논거입니다 ;)(전체 API는 전역 데이터의 큰 혼란입니다)
glampert

답변:


7

그래서 나는 내 자신의 다이어그램을 그려 보았습니다. 그것은 포괄적이 아닙니다. 주로 지금 당장은 흥미롭지 못하기 때문에 읽을 수 있기를 원했기 때문입니다 (공식적으로 지정된 그래프가 아니더라도 쉽게 읽을 수 있어야한다고 생각합니다).

또한 일부 사람들에게 관심이있는 것 같으므로 피드백을 받고 확인하기 위해 여기에 공유하고 싶습니다. 정확성을 확인하기 위해 참조로 OpenGL wiki를 사용했지만 실수가 발생했을 수 있습니다.

또한 제공된 정보가 충분하지 않거나 다이어그램에 포함시킬 가치가있는 중요한 관계를 생략 한 경우 자유롭게 제안하고 업데이트 된 상태를 유지하도록 노력하겠습니다.

OpenGL 바인딩 관계 다이어그램

다시 한번, 오류, 문제 또는 제안을 자유롭게보고하십시오. 따뜻하게 환영합니다.

편집하다

  1. 도면과 속성의 관계가 없습니다. 렌더링 할 때 속성이 유효하도록 활성화해야합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.