void createSceneVao(){
  int vao=glGenVertexArrays();
  int vbo=glGenBuffers();
  glBindVertexArray(vao);
  glBindBuffer(GL_ARRAY_BUFFER,vbo);
  long bufferSize=4 * (3 + 3) * mesh.numVertices;
  long normalsOffset=4L * 3 * mesh.numVertices;
  glBufferData(GL_ARRAY_BUFFER,bufferSize,GL_STATIC_DRAW);
  glBufferSubData(GL_ARRAY_BUFFER,0L,mesh.positions);
  glBufferSubData(GL_ARRAY_BUFFER,normalsOffset,mesh.normals);
  glEnableVertexAttribArray(0);
  glVertexAttribPointer(0,3,GL_FLOAT,false,0,0L);
  glEnableVertexAttribArray(1);
  glVertexAttribPointer(1,3,GL_FLOAT,false,0,normalsOffset);
  glBindBuffer(GL_ARRAY_BUFFER,0);
  glBindVertexArray(0);
  this.vaoScene=vao;
}

void createSceneVao ( ) { int vao = glGenVertexArrays ( ) ; int vbo = glGenBuffers ( ) ; glBindVertexArray ( vao ) ; glBindBuffer ( GL_ARRAY_BUFFER , vbo ) ; long bufferSize = 4 * ( 3 + 3 ) * mesh . numVertices ; long normalsOffset = 4L * 3 * mesh . numVertices ; glBufferData ( GL_ARRAY_BUFFER , bufferSize , GL_STATIC_DRAW ) ; glBufferSubData ( GL_ARRAY_BUFFER , 0L , mesh . positions ) ; glBufferSubData ( GL_ARRAY_BUFFER , normalsOffset , mesh . normals ) ; glEnableVertexAttribArray ( 0 ) ; glVertexAttribPointer ( 0 , 3 , GL_FLOAT , false , 0 , 0L ) ; glEnableVertexAttribArray ( 1 ) ; glVertexAttribPointer ( 1 , 3 , GL_FLOAT , false , 0 , normalsOffset ) ; glBindBuffer ( GL_ARRAY_BUFFER , 0 ) ; glBindVertexArray ( 0 ) ; this . vaoScene = vao ; }
creates a vao for the scene .
