Rastérisation in C with CSFML lib
Status: in progress
Le but de ce projet est d’implémenter la méthode de rastérisation utilisé par de
nombreux moteurs 3D pour sa rapidité et ses possibilités comparé au Ray Tracing.
Mon objectif final est de pouvoir proposer un rendu 3d graphique de n’importe quel
objet importé ainsi que de pouvoir me déplacer pour l’observer sous d’autres angles en
temps réel.
Il faut : ✅
0.1 dans un premier temps parser un fichier (.obj). ✅
0.2 dans un second temps implémenter une Projection matricielle. ✅
0.3 dans un troisième temps implémenter le Clipping de Cohen-Sutherland. ✅
0.4 dans un quatrième temps ajout des déplacements de la caméra. ✅
0.5 dans un cinquième temps implémenter le Texture mapping.
0.6 dans un sixième temps implémenter un Z-buffer/Deph-buffer.
# Clone repository
$ git clone https://github.com/MasterLaplace/Engine-3D.git
$ cd Engine-3D
# Engine
$ make re
$ ./bin/engine.out
# Server
$ make server
$ ./src/server/server.out
# Client
$ make client
$ ./src/client/client.out [vocal mode: -v]
# Manager
$ make manager
$ ./src/manager/manager.out [help|clean|create] [layer_name]
Key | Action |
---|---|
W |
Move forward |
S |
Move backward |
A |
Move left |
D |
Move right |
Q |
Move up |
E |
Move down |
↑ |
Rotate up |
↓ |
Rotate down |
← |
Rotate left |
→ |
Rotate right |
R |
Reset camera |
ESC |
Quit |
SPACE |
Pause |
ENTER |
Next layer |
BACKSPACE |
Previous layer |
TAB |
Toggle layer |
F1 |
Toggle debug |
F2 |
Toggle wireframe |
F3 |
Toggle texture |
F4 |
Toggle normals |
F5 |
Toggle lights |
F6 |
Toggle shadows |
F7 |
Toggle ambient occlusion |
F8 |
Toggle bloom |
F9 |
Toggle motion blur |
F10 |
Toggle depth of field |
F11 |
Toggle anti-aliasing |
F12 |
Toggle vignette |
MOUSE WHEEL |
Zoom |
MOUSE LEFT |
Rotate |
MOUSE RIGHT |
Translate |
MOUSE MIDDLE |
Select |
MOUSE LEFT |
Select |
MOUSE RIGHT |
Select |
This project is licensed under the terms of the MIT License.
Copyright © 2023-2024 Master_Laplace.