2012-04-08 3 views
0

GLOSit (OpenGL ES 2)을 사용하여 iOS 용 게임을 만들고 VBO 및 VAO를 사용하여 성능이 상당히 향상 될 것으로 생각합니다. (인스 트루먼 테이션에서 앱을 테스트 할 때 권장합니다) .iOS 용 GLKit에서 VBO를 사용하는 방법은 무엇입니까?

위치, 크기, 질감 등을 실제로 바꾸지 않는 질감이 많은 객체가 있으므로 VBO가 도움이된다고 생각합니다.

현재 GLKVector2의 배열을 사용하여 정점 및 텍스처 좌표 데이터를 저장하고 있으며 여기에서 VBO로 이동하는 방법을 잘 모르겠습니다.

아무도 도와 드릴 수 있습니까?

건배, 닉.

답변

0

이 같은 glBufferData()에 직접 전달할 수 있습니다

GLKVector2 objects[k]; 
// ... Fill out your objects vertices in objects 
GLuint buffer = 0; 
glGenBuffers (1, &buffer); 
glBindBuffer (GL_ARRAY_BUFFER, buffer); 
glBufferData (GL_ARRAY_BUFFER, sizeof (objects), objects, GL_STATIC_DRAW); 
glEnableClientState (GL_VERTEX_ARRAY); 
glVertexPointer (2, GL_FLOAT, sizeof (GLKVertex2), 0); 

이 버퍼를 생성하고 바인딩하기 위해 OpenGL을 말한다. glBufferData()은 카드에 실제로 업로드합니다. glVertexPointer()을 호출하면 배열에서 정점을 가져 오기 시작하려는 위치가 표시됩니다. VBO를 사용할 때 마지막 매개 변수의 포인터가 오프셋이됩니다.

편집 : 죄송합니다. 일부 세부 정보가 입력되었습니다. 두뇌 방구가 있었어. 자세한 내용은 See here을 참조하십시오.

+0

이 메서드는 나중에 사용하기 위해 꼭지점 버퍼 개체를 저장하지 않습니까? –

+0

위 변경 사항을 참조하십시오. 그것은 더 분명해야합니다. – user1118321

관련 문제