Want to create interactive content? It’s easy in Genially!
projet moteur
Noa
Created on March 5, 2025
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Corporate Christmas Presentation
View
Snow Presentation
View
Winter Presentation
View
Hanukkah Presentation
View
Vintage Photo Album
View
Nature Presentation
View
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.