I’m learning from this tutotrials:
http://en.wikibooks.org/wiki/Category:OpenGL_Programming
http://www.opengl-tutorial.org/
I have modified the 7.th lesson from http://www.opengl-tutorial.org/ so that the cube rotate, now what I want to do is to have two or tree cubes each at different places and make them rotate(the cubes), but I really don’t know how to do that. So I’m asking and hoping for some help.
The rotation is made by this code:
glm::vec3 axis_y(0, 1, 0);
glm::mat4 anim = glm::rotate(glm::mat4(1.0f), angle, axis_y);
...
glm::mat4 MVP = ProjectionMatrix * ViewMatrix * ModelMatrix * anim;
I didn’t go through the details of the tutorial, but in principle, you need to create a model matrix for each of the cubes, and then render each cube with its own value of
MVPconstructed from the cube’s model matrix (and the global view & projection matrices).The above can give you three identical cubes in different positions, rotations and scales. If you want three different objects, you’ll need to load each of them separately, preferably into its own buffer object.
EDIT
I don’t know the libraries the tutorial uses, but the principle of coding this could be along these lines:
This would give 3 cubes at positions
(0, 0, 0),(10, 0, 0)and(20, 0, 0).More generally, you’d just have one
ModelMatrixfor each cube.