Want to create interactive content? It’s easy in Genially!

Get started free

projet moteur

Noa

Created on March 5, 2025

Start designing with a free template

Discover more than 1500 professional designs like these:

Corporate Christmas Presentation

Snow Presentation

Winter Presentation

Hanukkah Presentation

Vintage Photo Album

Nature Presentation

Halloween Presentation

Transcript

getch-2

projet moteur

Start

ECS

ECS

ENtity

Component

system

- Simple conteneur- Sans logique - définies par leurs scripts et leurs composants Ex : Vaisseau, tourelle

- Stocke des données- Définit les caractéristiques d'une entité- Sans Logique - Peut s'attacher à une entité

- Applique de la logique aux entités ayant certains composants- Parcourt les entités et met à jour leurs composants

SCRIPT

Les scripts se trouvent dans l'ECS et se lient à une entité

SYSTEMS : POURQUOI EUX ?

Pysics
Collisions

Physique simple pour un jeu dans l'espace en 3D. Pas de gravité ni de force. Simple mise à jour du Rigidbody.

Gestions des différents colliders (3D, Sphere, AABB) et optimisation des calculs.

Lights
Camera

Permet de définir le type de lumière d'une entité avec un light component et d'envoyer ses données dans un shader pour simuler la lumière

Calcule une vue en fonction de la position et de la rotation de l'entité. Permet aussi de la contrôler.

Render
Inputs

Permet d'ajouter des meshs et de les afficher grâce aux buffers et shaders.

Permet de vérifier l'état d'une touche, de la mettre à jour et également de détecter la position de la souris

optimisation

Simplification des calculs de collisions ~= +45% FPSPour 1000 entités on passe de 137 à 190 FPS

45%

Ajout d'une grille spacialeLes calculs sont gérés dans des cellules OnCollide()

Tag component qui permet également de simplifier les calculs de colisions

Rendu

Ce qu'on a encapsulé

Fenetre Window et scène

Boucle de rendu

Mesh

Texture

Light

Création de mesh Cubes Sphères Custom Mesh (.obj)

Ajout de différentes textures RessourceManager

Création de plusieurs types de lumières

Création de différentes scènes et lancement de la fenêtre Window SkySphere

Boucle de rendu qui se gère toute seul grace à l'ECS et aux scripts

L'affichage et les buffers

Upload Buffer
GPU
CPU
Affichage
Code

Gestion des mesh

Chaque mesh contient : -Un upload buffer avec un constant buffer -Un transform -Ses informations de vertex et indices -Sa Texture

Constant Buffer :

Mesh propreties

CUBE

Fonction CreateCube qui prend en paramètre une taille

Fonction CreateSphere qui prend en paramètre un radius

Sphere

Fonction CreateCustomMesh qui prend en compte n'importe quel fichier .obj et qui le convertit en mesh afin que le moteur l'affiche

Custom

Texture

Ressource manager

Fonction LoadTexture qui prend en compte le chemin d'accés vers un fichier .dds . Il sera load afin de pouvoir le réutiliser quand on veut dans le programme juste en définissant le TextureIndex de l'entité

On peut ajouté les ressources direcement dans le GameManager.

Particle system

Les Fonctions dans le particleSystem permet de créer une particule en lui donnant des arguments d'appel. (Createparticle, Update) Les particules sont détruites après avoir atteint une certaine taille.

Gestion des lumières

Un seul Upload Buffer pour toute les lumières

Point Light
Spot Light
Directional Light

Gestion des lumières

Le Constant buffer séparé en 2 :

Calcul des lumières

Normal :
A Chaque création de mesh :

Gameplay

merci !

PASCAL Noa - COLUCCI Zian - FOURNIER Mathis - DUPERREY Lucas