IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Castor3D Discussion :

0.6.5 - Avancement du Castor


Sujet :

Castor3D

  1. #1
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut 0.6.5 - Avancement du Castor
    Bonjour, après un long silence radio, je crée ce topic afin de vous informer des avancées du Castor (ben oui, je bosse toujours dessus ^^).

    Je prépare donc la version 0.7.0 et j'en suis là :
    • La configuration du rendu passe maintenant par 3 classes : DepthStencilState, BlendState et RasteriserState. J'ai pris ça de Direct3D 11.
    • Utilisation des FrameBuffers pour faire entre autres du Render to texture et aussi implémenter le multisampling
    • Utilisation d'une classe SamplerState pour configurer les textures, qui peuvent alors partager le même SamplerState.
    • Création d'une classe TextureBase et de ses 2 dérivées : DynamicTexture et StaticTexture, la première permettant le RTT et la seconde utilisée pour les textures plus classiques (genre celles chargées dans des fichiers). TextureUnit se base dessus.
    • Suppression de Dx9RenderSystem, implémentation de Dx11RenderSystem (il faut savoir vivre avec son temps ), pas encore fonctionnel, mais pas loin, je pense.
    • Suppression de la dépendance à GLEW. Je charge les extensions moi-même afin d'en avoir un contrôle plus fin.
    • Génération à la volée de shaders, de l'éclairage simple au normal mapping, en passant par la prise en charge des maps d'opacité (détectées dans la passe).
    • Affectation de canal aux textures : ambiant, diffuse, normal, opacité, spéculaire, ...
    • A l'initialisation, Pass détecte les textures ayant de l'alpha, prend le canal alpha de la première pour une map d'opacité si aucune n'a été définie. Enlève de toutes les autres textures le canal alpha qui ne sera alors pas utilisé.
    • Utilisation des évènements pour initialiser et nettoyer les éléments (il faut avoir un contexte actif pour le faire en OpenGL)
    • Si disponible,e utilisation de ASSIMP pour charger les modèles, sinon utilisation des importer perso. Utilisation quand même de l'importer PLY car ASSIMP rencontre un problème avec les gros meshes.
    • Création d'une classe RenderTechnique à dériver à volonté par l'utilisateur pour personnaliser son rendu. A ce jour il y en a 4 : Direct (rendu classique), MSAA, SSAA, Deferred (deferred rendering).
    • Moult et moult corrections de bugs, améliorations des performances, améliorations de comportements...



    Et il me reste au moins ça à faire :

    • Finaliser Dx11RenderSystem
    • Ajouter les animations par squelette
    • Revoir les Subdivider plugins qui sont tout cassés
    • Faire fonctionner le premier sample (Ocean Lighting)
    • Réparer CastorShape qui n'a pas été mis à jour depuis Mathusalem
    • Faire fonctionner les shaders Cg. (abandonné)
    • Frustum Culling


    EDIT 01/07/2013 :
    La structure des Vertex buffers est prête à accueillir les informations des bones (ID + Weight), on sera par contre limité à 4 bones par vertex (apparemment c'est une limite raisonnable et fréquente).

    EDIT 12/11/2013
    Quelques évolutions :
    • Prise en compte de l'instanciation de meshes en hardware (glDraw{Elements/Arrays}Instanced);
    • Impléméntation de billboards via les geometry shaders ;
    • Réhabilitation des subdividers (PNTriangles et Loop) ;
    • A des fins de débug, réintégration temporaire de Direct3D 9.
    • Création d'un renderer Direct3D 10 pour faciliter le passage de D3D9 à D3D11.
    • Gestion de l'Alpha to Coverage lorsque MSAA est activé (meilleur rendu de l'alpha, moins gourmand que le tri des faces) ;
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  2. #2
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    3 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 3 011
    Points : 9 392
    Points
    9 392
    Par défaut
    Je trouve le projet pas mal , bonne continuation

  3. #3
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    Merci de cette remarque !

    Par contre, euh, ... tu peux préciser ? (toujours intéressé par des critiques, quelles qu'elles soient)
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  4. #4
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    3 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 3 011
    Points : 9 392
    Points
    9 392
    Par défaut
    Le code source est bien fait , propre et clair , une Doc serait un plus a vrai dire j'ai du mal un peu a comprendre comment cela marche (architecture global).

    J'ai essayé de compiler avec cmake sur linux (en créant un projet code block) mais cela échoue =/
    J'ai testé les binaires (sous windows) , la version DirectX 9 plante chez moi , les deux autres marches , mais quand j'ouvre un .obj par exemple cela ne fait rien.
    Par info c'est la version 0.6.1.2

    bon courage pour la version 0.7.0 , pour animation par squelette , tu compte utiliser quel format ?

  5. #5
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    Pour les animations par skeleton, je vais utiliser un format perso (comme pour le reste d'ailleurs) mais comme je permets l'import de fichiers via ASSIMP, je vais me baser dessus pour commencer.

    Pour les autres problèmes que tu as rencontrés, notamment à l'exécution des applications proposées, je me rends compte que j'ai vraiment fait de la m***e je vois qu'on ne peut même pas utiliser CastorShape, qui te permettrait normalement d'importer des fichiers OBJ, notamment.

    Il faudra attendre la version 0.7.0 pour voir ces problèmes corrigés.

    En attendant, sur le SVN il y a une version plus ou moins testable de disponible, en tout cas pour la partie OpenGL.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  6. #6
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    3 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 3 011
    Points : 9 392
    Points
    9 392
    Par défaut
    Ok , je voulais aussi créer mon propre format perso d'animation squelettal mais faire un éditeur prend trop temps donc j'ai regardé les formats existants , je suppose que ASSIMP permettra de gérer beaucoup d'autre format.
    Je testerai une version plus antérieur ou j'attendrai la version 0.7

  7. #7
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    Pour un format personnalisé, pourquoi ne pas se servir d'un Blender ou 3DS Max et créer un Exporter ?

    Dans mon précédent boulot on avait développé un exporter de 3DS Max pour Ogre3D.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  8. #8
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    3 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 3 011
    Points : 9 392
    Points
    9 392
    Par défaut
    Oui , Blender semble une bonne idée sauf que je trouve (personnellement) pas simple de faire son propre format avec Blender ,(on plus de ne pas savoir utiliser ^^').

  9. #9
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    Là j'ai travaillé sur un exporteur CSCN pour Blender et c'est vrai que c'est un peu tordu à mettre en place, surtout pour la gestion des UV (j'en suis aux meshes statiques pour l'instant), je pense que ça va être violent de prendre en compte le skinning.
    Je ne désespère pas...
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  10. #10
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    Quelques évolutions :
    • Prise en compte de l'instanciation de meshes en hardware (glDraw{Elements/Arrays}Instanced);
    • Impléméntation de billboards via les geometry shaders ;
    • Réhabilitation des subdividers (PNTriangles et Loop) ;
    • Préparation des VertexBuffer pour y intégrer les informations des bones pour les animations par squelette.
    • A des fins de débug, réintégration temporaire de Direct3D 9.
    • Création d'un renderer Direct3D 10 pour faciliter le passage de D3D9 à D3D11.
    • Gestion de l'Alpha to Coverage lorsque MSAA est activé (meilleur rendu de l'alpha, moins gourmand que le tri des faces) ;
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  11. #11
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    Quelques évolutions :
    • Modification du file system;
      avant :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      |-include
      |--projet
      |---header.hpp
      |-resource
      |--projet
      |---resource.rc.in
      |-source
      |--projet
      |---source.cpp
      maintenant :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      |-Source
      |--Groupe
      |---projet
      |----header.hpp
      |----source.cpp
      |----Win32
      |-----resource.rc.in
      Les groupes de projets sont Core, Dividers, Importers, Renderers, Samples et Tools
    • Début d'animation par squelette, à intégrer correctement dans la gestion de scène actuelle ;
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  12. #12
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    Evolutions évolutions ...

    Animations en cours de débogage après leur intégration.

    Dessin correct des PanelOverlay, il faut encore implémenter correctement les BorderPanelOverlay et TextOverlay.
    Export au format CSCN (texte) presque terminé.
    Export au format CBSN (binaire) en cours, passera par un système de data chunk (à la mode 3DS ou LWO)

    Réorganisation globale des sources : découpage des fichiers contenant plusieurs classes en plusieurs fichiers contenant chacun une classe, pour plus de clarté dans les fichiers.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  13. #13
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    • Export au format CBSN terminé
    • Import au format CBSN en cours
    • Abandon du Cg (tout comme NVidia), qui n'était de toute façon pas achevé
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  14. #14
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    Quelques avancées :
    - Création du projet ComCastor3D pour faire un binding COM. Presque terminé.
    - Création du projet CastorViewerSharp pour tester le binding COM.
    - Création du projet PyCastor3D, pour faire un binding Python, en utilisant Boost.Python.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  15. #15
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    On avance, on avance...

    - Support du texte 2D (enfin!!)
    - Support des BorderPanelOverlays
    - Ajout du support de Color mask au blend state
    - Support des Precompiled Headers sous GCC
    - Correction de la sauvegarde d'images, en prenant en compte l'alignement sur 16 bits imposé par FreeImage.
    - Ajout de Background Image.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  16. #16
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 996
    Points : 10 613
    Points
    10 613
    Billets dans le blog
    6
    Par défaut
    La version 0.7.0 du Castor est sortie!
    Plus d'infos ici
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 0.7.0 - Avancement du Castor
    Par dragonjoker59 dans le forum Castor3D
    Réponses: 5
    Dernier message: 29/01/2016, 12h38
  2. [JSP] thread ? Message d'avancement des operations en cours
    Par buffyann dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 18/12/2003, 11h39
  3. Réponses: 14
    Dernier message: 01/09/2003, 22h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo