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