OpenGL VAO에 어떤 상태가 저장되어 있는지 궁금합니다. VAO에는 버퍼링 된 버텍스의 버텍스 사양 (버퍼에있는 속성 및 바인딩 된 버퍼 등)과 관련된 상태가 포함되어 있음을 이해했습니다. VAO의 올바른 사용법을 더 잘 이해하기 위해 VAO의 상태를 정확히 알고 싶습니다.
VAO를 사용해야한다고 가정하는 방법
간단한 예에서 VAO의 올바른 사용법은 다음과 같습니다.
설정
Generate VAO
BindVAO
---- Specify vertex attributes
---- Generate VBO's
---- BindVBO's
-------- Buffer vertex data in VBO's
---- Unbind VBO's
Unbind VAO
표현
Bind VAO
---- Draw
Unbind VAO
이것으로부터, 나는 적어도 버텍스 버퍼 바인딩 과 버텍스 속성 스펙 이 VAO에 저장되어 있다고 가정한다 . 그러나이 사용 패턴이 (다중) 텍스처와 (다중) 셰이더 프로그램이 작동하는 상황으로 어떻게 확장되는지 잘 모르겠습니다. 는 IS 활성 쉐이더 프로그램 VAO에 저장된? 그리고 있습니다 텍스처 바인딩 (그와 샘플링 / 포장 설정 뿐만 아니라 VAO에 저장)은? 제복을 위한 Ditto ?
따라서 내 질문은 다음과 같습니다.
- OpenGL VAO 에는 어떤 정확한 상태 가 저장되어 있습니까? (VBO 바인딩, 속성 사양, 액티브 셰이더 프로그램, 텍스처 바인딩, 텍스처 샘플링 / 래핑 설정, 유니폼 ...?)
- 어떻게합니까 제대로 VAO의 사용 보다에서 복잡한 렌더링 설정 관련 샘플링 / 포장 설정 곳 (복수) 텍스처 (여러) 쉐이더 프로그램과 유니폼이 관여?