Project

General

Profile

Overview

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 :
  • Deferred rendering pour les objets opaques
  • Weighted Blended rendering pour les objets transparents.
  • Normal mapping.
  • Parallax Occlusion Mapping.
  • Screen Space Ambiant Occlusion.
  • Shadow Mapping.
  • Reflection/Refraction Mapping.
  • Rendu PBR (Metallic/Roughness et Specular/Glossiness) et rendu SSR.
  • Graphe de scène.
  • 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.
  • 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 opérateurs 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, Generator, 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).
  • ObjImporter, permettant l'import de maillages au format OBJ.
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 PostEffect permettent l'application d'effets post-rendu.
Sont implémentés pour l'instant :
  • HDRBloom ;
  • FXAA, un antialiasing de qualité basique ;
  • GrayScale ;
  • KawaseLightStreaks ;
  • SMAA, un antialiasing temporel de bonne qualité ;
  • FilmGrain.
Les plug-ins de type Generator permettant de générer des maillages ou textures, de manière procédurale.
Pour l'instant un seul plug-in de ce type est implémenté :
  • DiamondSquareTerrain, utilisant l'algorithme diamond square pour générer des reliefs.
Les plug-ins de type Generic ont pour but d'étendre les fonctionnalités globales du moteur.
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.
Les plug-ins de type ToneMapping permettent de définir de nouveaux opérateurs de tone mapping.
Sont implémentés les opérateurs suivants :
  • Linear, l'opérateur par défaut.
  • Haarm Pieter Duiker.
  • Hejl Burgess Dawson (aussi appelé Filmic).
  • Reinhard.
  • Uncharted 2.
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.




Issue tracking

open closed Total
Bogue 1 51 52
Évolution 23 134 157
Tâche 5 23 28

View all issues | Calendar | Gantt

Spent time

2950.50 hours

Details | Report

Members

Chef de projet : dragonjoker59

Développeur : dragonjoker59

Rapporteur : dragonjoker59

Participant : dragonjoker59

Latest news

Version 0.10.0
Support du PBR, dans les 2 workflows les plus communs : Metallic/Roughness et Specular/Glossiness.
Added by dragonjoker59 over 5 years ago

Version 0.9.0
Au programme : améliorations des performances, systèmes de particules, Skybox, FXAA.
Added by dragonjoker59 about 6 years ago

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.
Added by dragonjoker59 about 7 years ago

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!
Added by dragonjoker59 over 8 years ago

Castor3D en version 0.6.1.2
Avancée du renderer Direct 3D et du développement sous Linux
Added by dragonjoker59 about 12 years ago

View all news