diff --git a/src/main.c b/src/main.c index 59da158..1648016 100644 --- a/src/main.c +++ b/src/main.c @@ -264,8 +264,8 @@ void draw(void) { mat4 viewMatrix; // mat4Identity(viewMatrix); - vec3 cameraPos = {0.0f, 0.0f, 2.0f}; - vec3 cameraLookAt = {0.0f, 0.0f, -1.0f}; + vec3 cameraPos = {0.0f, 1.0f, 1.3f}; + vec3 cameraLookAt = {0.0f, 0.2f, 0.0f}; vec3 cameraUp = {0.0f, 1.0f, 0.0f}; mat4BuildLookAt(viewMatrix, cameraPos, cameraLookAt, cameraUp); @@ -277,38 +277,24 @@ void draw(void) { mat4 modelMatrix; vec3 scale; vec3 position; - mat4 scaledMatrix; - mat4Identity(scaledMatrix); + float scales[] = {0.5f, 0.4f, 0.3f, 0.2f, 0.1f, 0.09f, 0.08f, 0.07f, 0.06f, 0.05f}; + for (int i = 0; i < 10; i++) { + mat4Identity(modelMatrix); - vec3Set(scale, 0.2f, 0.2f, 0.2f); - mat4Scale(scaledMatrix, scaledMatrix, scale); + vec3Set(scale, scales[i], 0.05f, scales[i]); + mat4Scale(modelMatrix, modelMatrix, scale); + + mat4RotateY(modelMatrix, modelMatrix, currentHue * 2 * M_PI + (i / 5.0f * M_PI)); + + vec3Set(position, 0.0f, i * 0.05f, 0.0f); + mat4Translate(modelMatrix, modelMatrix, position); + + drawCube(position, modelMatrix, viewMatrix); + } - // draw cubes - // cube 1 - vec3Set(position, -1.0f, 0.0f, 0.0f); - mat4RotateZ(modelMatrix, scaledMatrix, currentHue * PI * 4); - mat4RotateY(modelMatrix, modelMatrix, currentHue * PI * 2); - - drawCube(position, modelMatrix, viewMatrix); - - // cube 2 - vec3Set(position, 0.0f, 0.0f, 0.0f); - - mat4RotateY(modelMatrix, scaledMatrix, currentHue * PI * 4); - mat4RotateX(modelMatrix, modelMatrix, currentHue * PI * 2); - - drawCube(position, modelMatrix, viewMatrix); - - // cube 3 - vec3Set(position, 1.0f, 0.0f, 0.0f); - - mat4RotateX(modelMatrix, scaledMatrix, currentHue * PI * 4); - mat4RotateZ(modelMatrix, modelMatrix, currentHue * PI * 2); - - drawCube(position, modelMatrix, viewMatrix); } void framebuffer_size_callback(GLFWwindow* window, int width, int height) {