Projet

Général

Profil

Aperçu

Castor3D est un moteur 3D multi-plateformes utilisant OpenGL.
Il fonctionne sur les plateformes Linux (GTK) et Windows.
Pour l'instant seul OpenGL est supporté, et un renderer Vulkan est prévu (bon, quand j'aurai le temps ^^').

Ce moteur propose comme fonctionnalités :
  • Shaders (GLSL), avec écriture du code du shader directement depuis le code C++.
  • Génération automatique de shaders, en fonction de la configuration de la passe.
  • Support de différents types de canaux, pour l'affectation des textures, et pour la génération des shaders
  • Génération de l'espace tangent par sommet.
  • Scènes décrites dans un format texte facilement compréhensible et extensible.
  • Rendu HDR avec application de divers algorithmes de Tone Mapping.
  • Le rendu peut être synchrone (timers) ou asynchrone (thread).
  • Il est basé sur une architecture modulaire, à base de plug-ins.

Les différents types de plug-ins supportés sont: Importer, Divider, Renderer, PostEffect, Technique, Generic.

Les plug-ins de type Importer permettent l'ajout de l'importation de nouveaux formats de fichiers de maillages.
Sont actuellement implémentés :
  • AssimpImporter, utilisant la bibliothèque assimp pour l'import d'une grande variété de formats.
  • PlyImporter, permettant l'import de gros maillage PLY (pour lesquels assimp éprouve des difficultés).
  • FbxImporter, basé sur FbxSDK et permettant l'import de maillages au format fbx.
  • D'autres importeurs sont implémentés, et disponibles si assimp n'est pas installé: OBJ, ASE, MD2, MD3, 3DS, LWO.
Les plug-ins de type Divider permettent d'implémenter des algorithmes de subdivision de maillage, à la construction (pas au niveau LOD).
J'ai pour l'instant implémenté les algorithmes suivants :
  • PN-Triangles ;
  • Phong ;
  • Loop.
Les plug-ins de type Renderer sont le support des API de rendu.
Sont actuellement implémentés :
  • GlRenderSystem, pour utiliser OpenGL.
  • TestRenderSystem, un renderer de test, ne faisant à peu près rien, mais permettant l'implémentation de tests.
Les plug-ins de Technique permettent l'implémentation de techniques de rendu personnalisées :
  • ForwardRenderTechnique est la technique de rendu basique.
  • ForwardMsaaRenderTechnique utilise le Multi Sampling Anti Aliasing.
  • DeferredRenderTechnique implémente le Deferred Rendering.
  • DeferredMsaaRenderTechnique implémente le Deferred Rendering pour les objets opaques et le MSAA pour les objets transparents.
Les plug-ins PostEffect permettent l'application d'effets post-rendu.
Sont implémentés pour l'instant :
  • HDRBloom
  • FXAA
  • GrayScale
Enfin, les plug-ins de type Generic ont pour but d'étendre les fonctionnalités globales du moteur.
De même, pour l'instant un seul plug-in de ce type est implémenté :
  • CastorGui, étendant les fichiers de scène pour ajouter et dessiner des IHM (boutons, zones de texte, ...) via les incrustations 2D.
En plus du moteur et des divers plug-ins, le projet est accompagné de diverses applications :
  • CastorViewer, visualiseur de scènes utilisant Castor3D.
  • ImgConverter, projet de conversion de tout type d'images vers XPM ou ICO.

La documentation du projet est contenue dans les headers et peut être générée via Doxygen.
Le projet en lui-même est compilable sur les plateformes supportées en utilisant CMake.

Suivi des demandes

ouverts fermés Total
Bogue 2 49 51
Évolution 33 115 148
Tâche 6 22 28

Voir toutes les demandes | Calendrier | Gantt

Temps passé

1802.50 heures

Détails | Rapport

Membres

Chef de projet : dragonjoker59

Développeur : dragonjoker59

Rapporteur : dragonjoker59

Participant : dragonjoker59

Dernières annonces

Version 0.9.0
Au programme : améliorations des performances, systèmes de particules, Skybox, FXAA.
Ajouté par dragonjoker59 il y a 4 mois

Version 0.8.0
Les 2 principaux topics (animations et billboards) et moult modifications et améliorations ont été implémentés, dans cette nouvelle version.
Ajouté par dragonjoker59 il y a plus d'un an

Castor3D en version 0.7.0
Après plus de 3 ans sans faire parler de lui (tout en travaillant dans l'ombre) voici la nouvelle version du Castor!
Ajouté par dragonjoker59 il y a plus de 2 ans

Castor3D en version 0.6.1.2
Avancée du renderer Direct 3D et du développement sous Linux
Ajouté par dragonjoker59 il y a plus de 6 ans

Castor3D en version 0.6.1.1
Passage à CMake + modifications diverses
Ajouté par dragonjoker59 il y a plus de 6 ans

Voir toutes les annonces