1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
...
glGenVertexArrays(1,&VertArrObj);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,indexBuffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER,sizeof(GLuint)*v_heightIndexes.sie(),&v_heightIndexes[0],GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER,vertexBuffer);
glBufferData(GL_ARRAY_BUFFER,sizeof(GLfloat)*v_heightTerrain.size(),&v_heightTerrain[0],GL_STATIC_DRAW);
glBindVertexArray(VertArrObj);
glEnableVertexAttribArray(0); //"vertex" attrib location
glEnableVertexAttribArray(1); //"color" attrib location
glBindBuffer(GL_ARRAY_BUFFER,vertexBuffer);
glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,0,0);
glBindBuffer(GL_ARRAY_BUFFER,colorBuffer);
glVertexAttribPointer(1,3,GL_FLOAT,GL_FALSE,0,0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,indexBuffer);
glBindVertexArray(0);
}...
void p_renderHeightMap()
{
glBindVertexArray(VertArrObj);
for(unsigned long indRow=0;indRow<indexRows;indRow++)
{glDrawElements(GL_TRIANGLE_STRIP,indexRange,GL_UNSIGNED_INT,(void*)(sizeof(unsigned long)*indexRange*indRow));
}
|