title: How to scale a model in OpenGL?
body: <p>I am trying to scale a model in OpenGL, but I dont know where to start, I am trying using glScalef(), but I dont know if is in this way, I dont know alot about openGL, I know more about theory(That I have to multiply my vector by a matrix, but I didnt found any good tutorial about this)... My code is that:</p>
  
  <pre><code>bool res = loadOBJ(object, vertices, uvs, normals);
  indexVBO(vertices, uvs, normals, indices, indexed_vertices, indexed_uvs, indexed_normals);
  
  glGenBuffers(1, &amp;vertexbuffer);
  glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer);
  glBufferData(GL_ARRAY_BUFFER, indexed_vertices.size() * sizeof(glm::vec3), &amp;indexed_vertices[0], GL_STATIC_DRAW);
  
  
  glGenBuffers(1, &amp;uvbuffer);
  glBindBuffer(GL_ARRAY_BUFFER, uvbuffer);
  glBufferData(GL_ARRAY_BUFFER, indexed_uvs.size() * sizeof(glm::vec2), &amp;indexed_uvs[0], GL_STATIC_DRAW);
  
  
  glGenBuffers(1, &amp;normalbuffer);
  glBindBuffer(GL_ARRAY_BUFFER, normalbuffer);
  glBufferData(GL_ARRAY_BUFFER, indexed_normals.size() * sizeof(glm::vec3), &amp;indexed_normals[0], GL_STATIC_DRAW);
  
  // Generate a buffer for the indices as well
  
  glGenBuffers(1, &amp;elementbuffer);
  glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, elementbuffer);
  glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size() * sizeof(unsigned short), &amp;indices[0], GL_STATIC_DRAW);
  
  // 1rst attribute buffer : vertices
  glEnableVertexAttribArray(0);
  glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer);
  glVertexAttribPointer(
      0,                  // attribute
      3,                  // size
      GL_FLOAT,           // type
      GL_FALSE,           // normalized?
      0,                  // stride
      (void*)0            // array buffer offset
      );
  
  // 2nd attribute buffer : UVs
  glEnableVertexAttribArray(1);
  glBindBuffer(GL_ARRAY_BUFFER, uvbuffer);
  glVertexAttribPointer(
      1,                                // attribute
      2,                                // size
      GL_FLOAT,                         // type
      GL_FALSE,                         // normalized?
      0,                                // stride
      (void*)0                          // array buffer offset
      );
  
  // 3rd attribute buffer : normals
  glEnableVertexAttribArray(2);
  glBindBuffer(GL_ARRAY_BUFFER, normalbuffer);
  glVertexAttribPointer(
      2,                                // attribute
      3,                                // size
      GL_FLOAT,                         // type
      GL_FALSE,                         // normalized?
      0,                                // stride
      (void*)0                          // array buffer offset
      );
  
  // Index buffer
  glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, elementbuffer);
  
  glScalef(10, 10, 10);
  
  glDrawElements(
      GL_TRIANGLES,        // mode
      indices.size(),      // count
      GL_UNSIGNED_SHORT,   // type
      (void*)0             // element array buffer offset
      );
  </code></pre>