2012-11-10 4 views
-1

나는 세계를 렌더링하는 데 VBO를 사용하고 있습니다.LWJGL - 동적으로 VBO 데이터를 보내시겠습니까?

FloatBuffer vertexData = BufferUtils.createFloatBuffer(..?); 

    float[] vertices = new float[..?]; 

    //vertex calculations go here 

    vertexData.put(vertices); 
    vertexData.flip(); 

    //send the vertices 
    int vboVertexHandle = glGenBuffers(); 
    glBindBuffer(GL_ARRAY_BUFFER, vboVertexHandle); 
    glBufferData(GL_ARRAY_BUFFER, vertexData, GL_STATIC_DRAW); 
    glBindBuffer(GL_ARRAY_BUFFER, 0); 

그러나 정점 동적으로 계산, 그리고 미리 렌더링 될 것입니다 얼마나 많은 알 수있는 방법이 없다 : 난 GPU에 정점을 보내려면이 같은 뭔가를해야만 사용할 수 있습니다. 그래서 나는 FloatBuffer와 배열에 얼마나 많은 공간을 할당해야할지 모르겠다.

ArrayList를 사용한다고 생각했지만 느리고 불만스럽게 보입니다. 크기를 지정하지 않고 배열이나 FloatBuffer를 만들 수있는 방법이 있습니까? 또는 결국 모든 데이터를 전송하는 대신 정점이 계산 될 때 GPU로 데이터를 전송 하시겠습니까?

답변

2

크기를 지정하지 않고 배열이나 FloatBuffer를 만들 수있는 방법이 있습니까?

왜 다만 FloatBuffer에 정점을 복사 ArrayList이 데이터를 생성하는 데 사용하고, 그 사용합니까?

+0

당신은'ArrayList'를 의미합니까? –

+0

@LuisCruz : 예. –

+0

고마워, 나는 그것을 시험해 볼 것이다. –

관련 문제