2014-03-04 8 views
0

각 인스턴스 내 내 Cat 개체의 버텍스, 일반 및 텍스처 정보를 버텍스 버퍼 개체의 형식으로 저장하고 싶습니다만 어떻게해야할지 모르겠습니다.사용자 지정 개체에 VBO를 저장하는 방법

@property(nonatomic, assign) int *indices; // vertex indices for glDrawElements 
@property(nonatomic, assign) GLKVertexAttrib vertexBufferObject; // ideally 
@property(assign) GLKVector2 position; 
@property(assign) GLKVector2 velocity; 

특정 VBOs를 포함하는 객체를 생성 할 수없는 경우, 당신은 무엇을해야합니까 : 나는 이런 식으로 뭔가를 원하는? 다음

@property(nonatomic, assign) int *indices; 
@property(nonatomic, assign) GLuint vertexBuffer; // good 
@property(assign) GLKVector2 position; 
@property(assign) GLKVector2 velocity; 

- (id)initWithVertices: (SceneVertex [])vertices size: (uint) size; // very good 
- (void)render; 

이 :

답변

0

나는이 일을 결국

- (id) initWithVertices:(SceneVertex [])vertices size:(uint)size 
{ 
    if (self = [super init]) 
    { 
     glGenBuffers(1, &_vertexBuffer); 
     glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer); 

     glBufferData(GL_ARRAY_BUFFER, size * sizeof(SceneVertex), vertices, GL_STATIC_DRAW); 

     glEnableVertexAttribArray(GLKVertexAttribPosition); 
     int stride = sizeof(GLKVector3) * 2; 
     glVertexAttribPointer(GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, stride, BUFFER_OFFSET(0)); 
     glEnableVertexAttribArray(GLKVertexAttribNormal); 
     glVertexAttribPointer(GLKVertexAttribNormal, 3, GL_FLOAT, GL_FALSE, stride, BUFFER_OFFSET(sizeof(GLKVector3))); 
    } 

    return self; 
} 

을 그리고 그것은 잘 밖으로했다. 이제는 모든 나의 정보가 각 객체 안에 들어 있습니다. 굉장해!