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:

Transcript

Start

projet moteur

getch-2

ECS

ECS

system

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

Component

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

ENtity

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

SCRIPT

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

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

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

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

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

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

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

Render
Camera
Collisions
Inputs
Lights
Pysics

SYSTEMS : POURQUOI EUX ?

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

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

45%

optimisation

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

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

Boucle de rendu

Ce qu'on a encapsulé

Rendu

Fenetre Window et scène

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

Light

Création de plusieurs types de lumières

Texture

Ajout de différentes textures RessourceManager

Mesh

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

Upload Buffer
Code
CPU
Affichage
GPU

L'affichage et les buffers

Constant Buffer :

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

Gestion des mesh

Fonction CreateCube qui prend en paramètre une taille

Fonction CreateSphere qui prend en paramètre un radius

Custom

Sphere

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

CUBE

Mesh propreties

On peut ajouté les ressources direcement dans le GameManager.

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é

Ressource manager

Texture

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.

Particle system

Directional Light
Spot Light
Point Light

Un seul Upload Buffer pour toute les lumières

Gestion des lumières

Le Constant buffer séparé en 2 :

Gestion des lumières

A Chaque création de mesh :
Normal :

Calcul des lumières

Gameplay

PASCAL Noa - COLUCCI Zian - FOURNIER Mathis - DUPERREY Lucas

merci !