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.
- Rastérisation
- 1.1 Projection matricielle ✅
- 1.2 Clipping de Cohen-Sutherland
- 1.3 Déplacement de la caméra
- 1.4 Texture mapping
- 1.5 Z-buffer/Deph-buffer
- Collision (en cours)
- 2.1 Binary Space Partitioning
- 2.2 Octree
- 2.3 Bounding Volume Hierarchy
- 2.4 World Partitioning
- 2.5 R-tree
- Compatibilité (en cours)
- 3.1 Langages
- 3.1.1 C ✅
- 3.1.1 C++
- 3.2 Systèmes d’exploitation
- 3.2.1 Linux ✅
- 3.2.2 Windows
- 3.2.3 MacOS
- 3.2.4 FreeBSD
- 3.3 Bibliothèques graphiques
- 3.3.1 SDL
- 3.3.2 CSFML ✅
- 3.3.2 SFML
- 3.3.1 OpenGL
- 3.3.2 Vulkan
- 3.3.3 DirectX
- 3.1 Langages
- Outils de développement (a faire)
- 4.1 Gestionnaire de version ✅
- 4.2 Gestionnaire de paquets
- 4.3 Launcher ✅
- 4.4 mode Debug
- 4.5 Profiler
- 4.6 Documentation ✅
- 4.7 Tests
- Optimisation (a faire)
- 5.1 Multithreading
- 5.2 SIMD
- 5.3 Cache
- 5.4 Mémoire
- 5.5 GPU
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 <path-config-file.xml>
# Launcher
$ make launcher
$ ./launcher
# install docker on ubuntu
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
# check docker version (optional)
$ docker --version
> Docker version 24.0.6, build ed223bc
# build docker image
$ docker build -t engine-3d .
# run docker image
$ docker run engine-3d
# list docker images
$ docker ps
# stop docker image
$ docker stop <container-id>
# remove docker image
$ docker rm <container-id>
Key | Action |
---|---|
Z |
Move forward |
Wiki:
For detailed documentation on the Laplace Library, see:
For detailed documentation on the Engine-3D, see:
For detailed documentation on the Launcher, see:
External Documentation:
📋 Change Log.
This project is licensed under the terms of the MIT License.
Copyright © 2022-2023 Master_Laplace.