Member: Vibhumi Sermsilp [65360501810] | Course: DT387 Introduction to Computer Graphics
Rubik's Cube Interactive Simulation in OpenGL
This application is a 3D interactive Rubik’s Cube simulator built using OpenGL. Users can manipulate the cube through keyboard inputs to
twist individual layers and use click-and-drag gestures to rotate the camera around the cube for better viewing angles.
Create an accurate 3D representation of a Rubik's Cube.
Implement intuitive user controls for manipulating the cube, including layer rotations and camera movements.
Serve as a demonstration of OpenGL concepts such as transformations, lighting, texture mapping, and 3D matrix calculations.
3D Rubik's Cube Model
A fully functional 3x3x3 cube rendered in 3D using OpenGL.
Textures mapping to represent cube faces accurately.
User Controls
Keyboard Input
Select and rotate layers of the cube along each faces (front, right, up, left, back, down).
Shuffle the cube for user to solve.
Reset cube to its original state.
Mouse Interaction
Drag to rotate the camera around the cube.
Scroll to zoom in or out.
Camera Movement
An orbital camera allowing users to view the cube from any angle.
Smooth transitions and clamping view angle and zoom distance.
Dynamic Rendering
Real-time updates as the user manipulates the cube.
Smooth animations for cube rotations.
OpenGL Framework
Use modern OpenGL for rendering and transformations.
Implement shaders for lighting and cube map texture.
Cube Representation
Represent each cubie as an individual object with position and rotation states.
Use an array to manage cubie indices and transformations.
Input Handling
Use SDL or GLUT to capture keyboard and mouse events.
Map inputs to specific transformations for layers and camera movement.
Matrix Transformations
Utilize glm for matrix manipulation.
Apply rotation, translation, and scaling matrices for accurate cubie and camera control.
Texture Mapping
Apply textures mapping to distinguish cube faces.