OpenGL ES 2로 몇 가지 테스트를하고 몇 가지 질문이 있습니다. 현재 프로그램은 다음과 같습니다.
Init
-------
-> create index buffer
-> fill index buffer glBufferData …
-> create vertex buffer
-> fill vertex buffer glBufferData …
Draw
-------
1. Apply vertex buffer
-> Bind VAO
-> bind vertex buffer
- enable attributs (glVertexPointer, …)
-> unbind vertex buffer
-> Unbind VAO
-> Bind VAO
3. Apply index buffer
4. Draw
문제
주어진 코드 충돌, 몇 가지 연구 후, 나는 이유를 이해했습니다 : 인덱스 버퍼를 초기화 부분 ( "fill index buffer glBufferData"이후)에 바인딩 해제하거나 첫 번째 "Bind VAO"전에 바인딩 해제해야합니다
내 질문은 :
- 인덱스 버퍼를 VAO (VAO 주식 인덱스 버퍼)에 넣을 수 있습니까?
- 각 업데이트 (glBufferData) 후에 버퍼 바인딩을 해제해야합니까?
내 응용 프로그램에는 각 프레임 (예 : 입자)에서 업데이트되는 버퍼가 있으므로 다음과 같은 OpenGL 스택이 있습니다.
-> bind buffer 1
-> update buffer 1
-> close buffer 1
-> bind buffer 1
-> draw
처음 3 줄은 마지막 그리기 객체 인 정점 버퍼를 업데이트합니다.
-> bind buffer 1
-> update buffer 1
-> draw
감사