MA
MasterLaplace/Engine-3D
Engine 3d in C with CSFML lib
ME :
Rastérisation
Rastérisation in C with CSFML lib
Status: in progress
🪧 Table of Contents
📝 DESCRIPTION
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.
GOAL
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.
🚚 RUNNING
# 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]INTERACTIONS
| 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 |
🔧 DOCUMENTATION
📜 LICENSE
This project is licensed under the terms of the MIT License.
Copyright © 2023-2024 Master_Laplace.
On this page
Languages
C90.9%Makefile5.5%Python2.1%Shell1.1%Lua0.4%
Contributors
Latest Release
v0.1.0October 17, 2023Other
Created February 2, 2023
Updated August 27, 2025