Inspiration

The project was inspired by the desire to understand and build foundational concepts in computer graphics and physics simulation. By rendering a single point and progressively developing more complex behavior, this project aimed to provide hands-on experience with OpenGL's graphical rendering techniques and physics calculations.

What it does

This simple physics engine renders a 3D point and allows for adjustments in position, color, and size. The project focuses on accurately displaying a single rendered point using OpenGL's shaders, buffers, and input mechanisms as a foundation for future graphics development.

How we built it

We used OpenGL for rendering, ImGui for a user-friendly interface, GLFW for window and input management, and GLAD as the OpenGL loader. By integrating these libraries, we created an environment where we can modify the point’s properties in real-time, while the code handles transformations and updates within OpenGL’s graphics pipeline.

Challenges we ran into

Challenges included managing the intricacies of shader programming and setting up the graphics pipeline, as well as ensuring compatibility across different libraries. Additionally, configuring VAO and VBO structures correctly to control the point's appearance required careful debugging.

Accomplishments that we're proud of

We successfully created a minimal, interactive graphical setup in OpenGL where a user can adjust visual attributes of a 3D point. This accomplishment lays the groundwork for future projects involving more complex physics-based simulations.

What we learned

We gained experience in OpenGL, shaders, and buffer management, and developed a better understanding of how different libraries like ImGui and GLFW interact within a graphical application. This project was also an introduction to handling real-time graphical adjustments through a UI.

What's next for Simple Physics Engine

Next steps include expanding the project to render multiple points and create simple physics interactions between them, such as collision detection and response, ultimately aiming to build a basic physics engine.

Built With

Share this project:

Updates