Files
3DRenderer/README.md
2026-02-15 15:40:21 +01:00

83 lines
2.6 KiB
Markdown

<p align="center"><img src=".gitea/readme/icon.png"/></p>
<h1 align="center">3D Renderer</h1>
<h3 align="center"><b>A simple 3D renderer that allows you to move around the scene using the keys.</b></h3>
<p align="center">3D Renderer was written using Python and PyGame library. This project was part of "Computer Graphics" course at Warsaw University of Technology.</p>
<p align="center"><img width="50%" src=".gitea/readme/screenshot.png"/></p>
---
## Informations
> [!Important]
> **For Github users:**
>
> This is only mirror repository. All changes are first uploaded to the repository <a href="https://repos.mateuszskoczek.com/MateuszSkoczek/3DRenderer">here</a>. Releases are also published on original repository. However, Github repository handles issues and pull requests for better accessibility.
> [!IMPORTANT]
> App is no longer maintained, but should work properly
## Features
- Create your own scene
- Move around the scene using the keys
## Installation
Download latest package version from <a href="https://repos.mateuszskoczek.com/MateuszSkoczek/3DRenderer/releases">Releases</a> tab, unpack, install requirements and you good to go
**Requirements**
- Python installed
- PIP packages:
- `pygame`
- `numpy`
You can also use `requirements.txt` file to install PIP dependencies
```
pip install -r requirements.txt
```
## Usage
```
python 3d_renderer
```
**Create the scene:**
You can define your own scene in `main` method of `App` class in `3d_renderer/app.py` file.
1. Create object builder: `obj_builder1 = ObjectBuilder()`
2. Add as many vertices to the object as you want: `va = obj_builder1.add_vertex(-1, 1, 1)`
3. Connect vertices to make edges: `obj_builder1.add_vertices_connection(va, vb)`
4. Build object and add it to the scene: `self.renderer.add_object(obj_builder1.build())`
**Controls:**
- <kbd>W</kbd> - move forward
- <kbd>S</kbd> - move backward
- <kbd>A</kbd> - move left
- <kbd>D</kbd> - move right
- <kbd>Space</kbd> - move up
- <kbd>LShift</kbd> - move down
- <kbd>=</kbd> - FOV up
- <kbd>-</kbd> - FOV down
- <kbd>F</kbd> - Pitch up
- <kbd>R</kbd> - Pitch down
- <kbd>E</kbd> - Yaw up
- <kbd>Q</kbd> - Yaw down
- <kbd>C</kbd> - Roll up
- <kbd>Z</kbd> - Roll down
## Attribution and contribution
This project is open source on MIT License, so you can just copy and upload again to your repository. But according to the license, you must include information about the original author. You can find license <a href="https://repos.mateuszskoczek.com/MateuszSkoczek/3DRenderer/src/branch/main/LICENSE">here</a>.
**Other sources:**
- Icon by <a href="icons8.com">Icons8</a>