Skip to content

Sigmanificient/Engine-3D

 
 

Repository files navigation

ME :

Engine-3D

Engine-3D logo

📦 Download   :   Latest Version   |   📜 License   :   License: MIT

🌐 Supported Platforms

Linux   |   Windows   |   MacOS   |   FreeBSD

🎮 Supported Graphics Libraries

CSFML: 2.5   |   SFML: 2.5   |   OpenGL: 4.6   |   Vulkan: 1.2   |   SDL2: 2.0

🚀 Supported Languages

C: 11   |   C++: 17

🛠️ Build Status

Build Status

🪧 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.

🔖 Chapters

  1. 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
  2. Collision (en cours)
    • 2.1 Binary Space Partitioning
    • 2.2 Octree
    • 2.3 Bounding Volume Hierarchy
    • 2.4 World Partitioning
    • 2.5 R-tree
  3. 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
  4. 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
  5. 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.

🚚 RUNNING

# 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

🐳 DOCKER RUN

# 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>

INTERACTIONS

Key Action
Z Move forward

🔧 DOCUMENTATION

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:

🚀 LATEST RELEASE

📋 Change Log.

  • Latest Release
  • Release Date: October 13, 2023

📜 LICENSE

This project is licensed under the terms of the MIT License.

Copyright © 2022-2023 Master_Laplace.

📬 CONTACTS

This project has been carried out by:

MasterLaplace
Master_Laplace

ME.inc

About

Engine 3d in C with CSFML lib

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 86.5%
  • Makefile 8.1%
  • Python 3.1%
  • Shell 1.7%
  • Lua 0.6%