Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sujalchoudhari/renderingengine
https://github.com/sujalchoudhari/renderingengine
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/sujalchoudhari/renderingengine
- Owner: SujalChoudhari
- Created: 2024-06-03T12:05:32.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-06-05T10:21:14.000Z (8 months ago)
- Last Synced: 2024-06-05T14:15:06.106Z (8 months ago)
- Language: Python
- Size: 80.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
**Mini Rendering Engine**
### Purpose
The purpose of this rendering engine is to showcase various rendering algorithms and techniques, primarily aimed at educational purposes. It provides a hands-on experience for beginners to understand the fundamentals of computer graphics and OpenGL rendering.![Renderer Screenshot](./assets/image1.png)
![Animating Objects](./assets/image2.png)
### Features
1. **OpenGL and Pygame Integration:** The engine utilizes Python's Pygame library for window management and OpenGL for rendering. This combination offers simplicity for beginners to get started with graphics programming.
2. **Geometry Classes:** The engine includes classes for basic geometric shapes such as lines, cubes, and spheres. These classes serve as building blocks for demonstrating various rendering techniques.
3. **Lighting and Shading:** The engine supports basic lighting and shading effects, including ambient, diffuse, and specular lighting. This allows users to experiment with different lighting setups and understand their impact on object appearance.4. **Camera Controls:** A free camera implementation enables users to navigate the scene, providing a dynamic perspective of rendered objects. This feature enhances interactivity and exploration within the rendering environment.
5. **IMGUI Integration:** The engine utilizes the ImGui library for user interface (UI) development. This library provides a lightweight and easy-to-use framework for creating GUIs.
### Usage
To use the rendering engine, follow these steps:1. **Installation:** Ensure you have Python installed on your system. Install the required dependencies using pip:
```
pip install pygame PyOpenGL numpy imgui["pygame"]
```
2. **Running the Engine:** Execute the main script (`main.py` or similarly named) to launch the rendering engine window. This window will display the rendered scene.3. **Interacting with the Scene:** Use keyboard and mouse controls to navigate the scene and interact with objects. Refer to the provided documentation or code comments for control instructions.
### Acknowledgments
This project was inspired by the desire to provide a beginner-friendly platform for learning computer graphics concepts. Special thanks to the developers of Pygame and OpenGL for their invaluable contributions to the Python graphics ecosystem.### Contact
For any inquiries or feedback, please contact Sujal at [email protected].