Castor3D en version 0.6.1.0
Le moteur de rendu 3D en C++ supporte désormais OpenGL 3.x et 4.x

Le , par dragonjoker59, Expert éminent
Présentation
Ce moteur 3D a l'ambition d'être multi-plateformes et multi-renderer.
Pour l'instant, seul le développement sous Windows est exploitable (je galère pour la création d'une fenêtre compatible OpenGL sous Linux).
Seul le Renderer OpenGL est implémenté (je n'ai aucune connaissance en Direct3D).
La reconnaissance des Shaders est implémentée, uniquement la partie GLSL pour l'instant, on verra un jour pour intégrer Cg.
Pas encore de LOD ni de gestion OcTree pour l'instant, mais c'est prévu.
Support de plusieurs formats de fichiers : Obj, 3DS, MD2, MD3, PLY.
Le système d'animation a un squelette qu'il me faut compléter afin d'avoir une implémentation correcte d'un système d'animation avec ou sans squeleton (notamment Morphing).

Version Actuelle : 0.6.1.0

Ajouts
Utilisation des smart pointers tr1.
Création d'un tronc commun 'OpenGLCommon' pour les 2 renderers OpenGL
Création d'une classe de Pipeline qui effectue les calculs matriciels et d'autres petites fonctions (perspective, ortho, ...)

Modifications.
Le MemoryManager (activé uniquement en debug) a été modifié, ajout d'une classe template MemoryTraced qui surcharge les operateurs new, delete new [] et delete [], ce afin d'avoir une meilleure trace des objets créés et détruits. Chaque classe des projets du Castor dérivent maintenant de celle-ci, et 3 fichiers sont donc créés dans le répertoire racine (C:\ sous Windows) : memoryleaks.log, memoryalloc.log et memorydealloc.log
La classe TransformationMatrix n'existe plus, il ne s'agit plus que d'une collection de fonctions sur matrices carrées 4x4.
Modification de la gestion des SceneNode : Une classe de base NodeBase qui contient les informations qui se trouvaient dans SceneNode, 3 classes dérivées (GeometryNode, CameraNode et LightNode) qui s'occupent des fonctionnalités spécifiques au rendu de chacun des types liés (respectivement Geometry, Camera et Light).
La classe MovableObject a maintenant moins de fonctionnalités (en fait elle n'a plus qu'un nom et un NodeBase) et les classes Light et Camera dérivent maintenant de cette classe (pour plus d'uniformité dans les déplacements de ces objets par rapport aux géométries)
Renommage des classes UniformVariable en FrameVariable, pour refléter plus ce que c'est et moins lier ce genre de choses à OpenGL.
Le module OpenGL 3.x/4.x est achevé

Corrections de Bugs
Correction du plantage à la fermeture du soft en release uniquement.
Correction du rendu noir avec OpenGL 3.x, corrigé je ne sais trop comment, mais grâce à la suppression progressive du pipeline fixe en OpenGL 2.x

A faire
Modifier la structure des vertex de façon à ce qu'ils incluent les coordonnées de texture et les normales directement, de façon à n'avoir qu'1 buffer de vertex par mesh au lieu de 3 actuellement.

Dépendances
Pour compiler CastorUtils et Castor3D, vous aurez besoin de boost, FreeImage et FreeImagePlus
Pour compiler OpenGLCommon, GL2RenderSystem et GL3RenderSystem vous aurez besoin de GLEW
Pour compiler CastorShape et CastorViewer, vous aurez besoin de wxWidget

Téléchargement

Sources
CastorUtils (Miroir) Bibliothèque de fonctions communes aux autres projets.
Castor3D (Miroir) Moteur de rendu.
CastorShape (Miroir) Visualiseur / Editeur de scènes et modèles.
CastorViewer (Miroir) Visualiseur de scènes et modèles.
OpenGLCommon (Miroir) Fonctions communes à GL2RenderSystem et GL3RenderSystem.
GL2RenderSystem (Miroir) Module de rendu compatible OpenGL 2.x et antérieur.
GL3RenderSystem (Miroir) Module de rendu compatible OpenGL 3.x et ultérieur.

Exécutables
CastorShape (Miroir)
CastorViewer (Miroir)

Données optionnelles
Exemple de Scène au format CSCN. (Miroir) Il est possible de l'éditer avec n'importe quel éditeur de texte pour modifier les matériaux, ...


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Priato Priato - Membre habitué http://www.developpez.com
le 10/12/2010 à 10:23
Excuses moi de poser cette question, mais qu'est ce qui a motivé son développement? Qu'offre t il de plus que Ogre3D qui semble avoir les mêmes caractéristiques?

Je demande ça parce que j'utilise Ogre3D...
Avatar de Tutur66 Tutur66 - Nouveau membre du Club http://www.developpez.com
le 10/12/2010 à 13:23
Pareil : qu'est-ce qui me ferait passer de Ogre à Castor ?
Avatar de dragonjoker59 dragonjoker59 - Expert éminent http://www.developpez.com
le 10/12/2010 à 13:47
Il n'apporte rien de plus par rapport à Ogre3D (je suis tout seul dessus, hein...).
Il s'agit d'un projet personnel qui commence à avoir une gueule pas trop moche au niveau du code qui le compose.
Pour l'instant rien ne pourra faire passer quelqu'un d'Ogre3D à Castor3D (même moi si j'utilisais Ogre3D) mais un jour peut-être...
La motivation de ce développement ? Progresser en math, 3D, développement C++, design d'application, etc...
Je dois avouer que certaines parties de la gestion de scène (notamment les SceneNodes) sont inspirées d'Ogre3D que j'ai pas mal utilisé.
Avatar de Priato Priato - Membre habitué http://www.developpez.com
le 10/12/2010 à 14:23
Citation Envoyé par dragonjoker59  Voir le message
Il n'apporte rien de plus par rapport à Ogre3D (je suis tout seul dessus, hein...).
Il s'agit d'un projet personnel qui commence à avoir une gueule pas trop moche au niveau du code qui le compose.
Pour l'instant rien ne pourra faire passer quelqu'un d'Ogre3D à Castor3D (même moi si j'utilisais Ogre3D) mais un jour peut-être...
La motivation de ce développement ? Progresser en math, 3D, développement C++, design d'application, etc...
Je dois avouer que certaines parties de la gestion de scène (notamment les SceneNodes) sont inspirées d'Ogre3D que j'ai pas mal utilisé.

C'était juste une question pour savoir qu'est ce qui t'a poussé à faire un projet aussi énorme, mais tes raisons sont très valables: Progresser, me semble être la meilleure des raisons.
Chapeau au passage
Offres d'emploi IT
Technical leader / moe perle (H/F)
Société Générale - Ile de France - Val de Marne
Ingénieur développeur intégrateur débutant H/F
Safran - Ile de France - Osny (95520)
Expert sécurité en audit d'applications (H/F)
Société Générale - Ile de France - Val-de-Marne

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Projets