Logo
Fab.Magalhães

Software Engineer

Graphical Computing Solar System: Rendering engine in C using OpenGL and GLFW to render an animated solar system

June 4, 2025Graphical Computing, Course, Project, Learning, Imperative Programming
MacBook Mockup Background
https://mackgame4-portfolio.vercel.app
Technologies

C, OpenGL, GLFW, CMake, ImGui

Team

Afonso Pedreira, Fábio Magalhães

Timeline & Status

Delivered Jun 4, 2025

Source

https://github.com/Mackgame4/UM-SolarSysCG

Overview

This project was developed for the "Computação Gráfica" course at the "Universidade do Minho" as part of a Software Engineering degree. This is a cross-platform rendering engine capable of rendering 3D and OBJ file objects and scenes.

Textured & Lighting Solar System Render
Textured & Lighting Solar System RenderPNG
ImGUI Commands
ImGUI CommandsPNG
Adding lighting
Enable lighting
Adding lightingITERACTIVE
Enable Textures
Enable TexturesPNG
Animated Solar System RenderMP4
Testing Bezier CurvesMP4

A scene is a XML file that contains information about the objects to be rendered, their positions, scales, rotations, colors, and other properties. The engine reads the scene file and uses OpenGL to render the objects in a window.

The engine is iteractive both via keyboard and mouse. The keyboard is used to move the camera around the scene, while the mouse is used to rotate the camera. Or via GUI, made with ImGui, where you can change the position, rotation and scale of the objects in the scene.

The engine can also render 3D models in the OBJ file format. The OBJ files are loaded using a custom OBJ loader that reads the vertex, normal, and texture coordinate data from the file and creates the necessary OpenGL buffers to render the model.