Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La moteur 3D Castor3D de dragonjoker59 passe en version 0.9.0
Ajout des systèmes de particules, skybox et FXAA

Le , par dragonjoker59

22PARTAGES

5  0 
Présentation
Ce moteur 3D (ce n'est pas un moteur de jeu!!) a l'ambition d'être multiplateforme.
Pour l'instant, le développement sous Windows et Linux est complètement exploitable. Pour Linux, la distribution testée est une Archlinux amd64.
Support de nombreux formats de fichiers en utilisant ASSIMP.

Version 0.9.0
Au programme : améliorations des performances, systèmes de particules, Skybox, FXAA.



Modifications
CastorUtils
  • Abandon de libzip et intégration de minizip aux sources.
  • Ajout des classes WorkerThread et ThreadPool.
  • Amélioration de la classe Signal, grâce à l'ajout de la classe Connection, permettant de se déconnecter du signal sans en avoir l'instance, et permettant au signal de déconnecter tous les slots à sa destruction.
  • Ajout des classes Range et RangedValue, pour utiliser facilement ces concepts.
  • Ajout d'une classe de récupération des informations CPU : CpuInformations.
  • Déplacement du code spécifique aux plateformes dans le sous dossier Platform/<nom plateforme>, pour faciliter l'ajout de nouvelles plateformes.
  • Compile maintenant sur ARM (pour un futur port sur Android).


Castor3D
  • Revue complète de la boucle de rendu : RenderPipeline n'est désormais plus une instance unique, il contient maintenant toutes les informations nécessaires au rendu d'un type d'objet (états, programme, liaisons avec les UniformBuffers, ...).
    Ce changement a eu lieu pour préparer l'arrivée de Vulkan, dans lequel le pipeline de rendu ne peut plus être modifié après sa création, ce qui est maintenant le cas dans Castor3D.
  • Le rendu a été dispatché dans des RenderPass, qui ont chacune une ou plusieurs RenderQueues, qui sont mises à jour de manière asynchrone sur le CPU, en utilisant un pool de threads.
    Cela permet à la boucle GPU d'être débarassée de la plupart des calcules CPU.
  • Ajout des Skybox.
  • L'export binaire a été complètement repensé, pour utiliser un format par chunk de données (comme LWO ou 3DS).
    Il est utilisé pour les maillages et les squelettes.
  • L'interface des plug-ins a été uniformisée.
  • Implémentation des algorithmes de brouillard basiques (linéaire, exponentiel et exponentiel au carré).
  • Les animations de type morphing (par sommet) sont maintenant supportées par Castor3D
  • Implémentation du frustum culling.
  • Implémentation d'une passe de Colour picking.
  • Implémentation du shadow mapping, les sources lumineuses peuvent produire des ombres, et les objets peuvent projeter des ombres.
  • Implémentation d'un système de particules, laissant à l'utilisateur le choix de l'implémentation (CPU au travers de la surcharge de classes, GPU via le Transform Feedback ou via les Compute Shaders).
  • Correction des équations de calcul d'éclairage en GLSL, ainsi que de la gestion des sources lumineuses (orientation uniquement via SceneNode), pour avoir un rendu correct sans hacks.
  • Intégration des Compute shaders à Castor3D, avec ses compagnons les Shader Storage Buffers et Atomic Counter Buffers.
  • L'implémentation des Textures a été complètement revue, nous avons maintenant la classe TextureLayout, qui contient les TextureImages et le TextureStorage par image.
    Cela a permis la création des textures cube.
  • Le transfert des textures en RAM a été corrigé.
  • Le rendu des Billboards n'utilise plus les geometry shaders, mais repose maintenant sur l'instantiation hardware.
  • FrameVariableBuffer a été remplacée par UniformBuffer, qui ne dépend plus du programme, et par UniformBufferBinding, qui elle dépend du programme utilisé.
    Les instances de UniformBufferBinding sont stockées par RenderPipeline.
  • FrameVariable a été remplacée par 2 classes : Uniform (pour les variables uniformes d'un UniformBuffer), et PushUniform (pour kes variables uniformes hors d'un UniformBuffer).


RenderSystems
  • Ajout de GlES3RenderSystem, pour commencer le port Android.
  • Mise à jour e GlRenderSystem pour supporter les fonctionnalités de Castor3D.


Techniques
  • DeferredRenderTechnique et DeferredMsaaRenderTechnique sont maintenant de vraies techniques de rendu différé, utilisant une passe d'éclairage par source lumineuse, en prenant en compte la zone d'effet de la source.
  • DeferredRenderTechnique est maintenant la technique de rendu par défaut, si aucune n'est spécifiée.


PostEffects
  • Création de l'effet GrayScale.
  • Création de l'effet FXAA.


Téléchargements

Exécutables
Installeur de Castor3D (Windows x86).
Installeur de Castor3D (Windows x64).

Données optionnelles
Images et scènes de test.
Documentation de l'API (français).
Documentation de l'API (anglais).

Système de particules


Morphing


Picking


Brouillard

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de dragonjoker59
Expert éminent sénior https://www.developpez.com
Le 24/03/2017 à 0:59
Salut!

Ce moteur n'est pas à la hauteur d'un Ogre3D ou d'un Irrlicht.
Je travaille dessus pendant mes temps libres depuis un long moment (11 ans, ça fait long ^^'), mais si je voulais le rendre aussi bien que les autres il faudrait que je ne sois pas le seul développeur dessus.

Donc au final, il n'y a, je pense, pas d'intérêt réel à passer dessus, si on utilise déjà un autre moteur 3D.

Mais ça me fait plaisir de le voir avancer, et de bosser dessus, les problématiques que je résouds dessus sont tout autant de challenges qui me font progresser.
1  0 
Avatar de archqt
Membre éclairé https://www.developpez.com
Le 23/03/2017 à 22:32
Bonjour,
il y en a plein, quelle est l'avantage de celui-là ? par rapport à Ogre3D par exemple.
Bonne soirée
0  0 
Avatar de G'Optimus
Membre régulier https://www.developpez.com
Le 26/03/2017 à 13:58
Waouw , Il a beaucoup évoluer . Tu as un bon état d'esprit , j'adore même si je sais pas encore utiliser un moteurs 3D dans un projet . mais je compte bien apprendre a le faire avec ton aide biensur .
0  0 
Avatar de dragonjoker59
Expert éminent sénior https://www.developpez.com
Le 27/03/2017 à 10:16
Merci, j'essaie de toujours faire mieux, on verra bien jusqu'où je peux aller ^^
0  0