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 :

Avancement de la version 0.11.0


Sujet :

Castor3D

  1. #1
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut Avancement de la version 0.11.0
    Dans cette version, le plus gros changement est l'utilisation de RendererLib, qui me permet de supporter Vulkan, OpenGL 3.X et OpenGL 4.X.
    Ce portage est quasiment terminé, ça fait 5 mois que je suis dessus.
    Il me reste quelques soucis à régler au niveau Vulkan (les RenderPass sont un peu bizarres à gérer).
    A part ça, j'ai perdu un peu en performances, mais je règlerai cela après avoir mergé la branche d'intégration.

    J'ai aussi ajouté un petit effet intéressant : le volumetric light scattering, actif uniquement lorsqu'une shadow map est présente et uniquement sur la source directionnelle.
    Ca donne le rendu suivant:



    Ensuite, j'ai aussi amélioré la fenêtre de visualisation des shaders, elle permet maintenant d'afficher les shaders utilisés pour les post effects, ainsi que les opérateurs de tone mapping.
    Elle permet aussi d'afficher tous les shaders utilisés pour chaque étape : vertex shader et pixel shader pour toutes les passes du rendu d'un matériau, par exemple.
    En reprenant la scène précédente, on peut voir ceci, pour le rendu d'un matériau (ça fait pas mal de shaders... :

    Nom : Sans titre.png
Affichages : 178
Taille : 166,2 Ko

    La partie de droite affiche les variables de configuration du shader (qui lui sont transmises via un UBO), sont modifiables, et permettent d'ajuster les effets à la scène.
    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 sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Une autre modification importante que je suis en train d'apporter est le remplacement de GlslWriter par une bibliothèque que j'ai écrite : ShaderWriter.
    Cette bibliothèque permet toujours d'écrire les shaders depuis le C++, mais au lieu d'écrire directement du GLSL, elle écrit un AST.
    Cet AST peut ensuite être exporté en GLSL, HLSL, ou SPIR-V (les 3 exports sont écrits et fonctionnent).
    L'intérêt est que ça me permet d'écrire les shaders directement dans le langage shader de l'API de rendu choisie, plutôt que d'écrire du GLSL, le passer en SPIR-V (via glslang) pour donner le shader à Ashes, qui ensuite va le transcrire dans le langage shader de l'API, via SPIRV-Cross.
    C'est le passage par SPIRV-Cross qui posait soucis, notamment au niveau des SSBO, qui sont mal supportés par le compilateur HLSL.
    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).

  3. #3
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Suite à un remaniement important de Ashes (anciennement RendererLib), qui fait que c'est maintenant un drop-in replacement pour Vulkan, le portage de Castor3D est toujours en cours.
    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 sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Moult et moult avancées depuis le dernier message.
    En vrac:

    • Le portage sous Vulkan est terminé
    • Castor3D a maintenant une mascotte : Pufi le castor !
    • Ajout d'un début de global illumination avec les Light Propagation Volumes
    • Support balbutiant de MacOS
    • Modernisation des CMakeLists.txt, et support de vcpkg
    • Création de tests de rendu, et d'une appli de pilotage de ces tests : Aria
    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).

  5. #5
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Je viens de finir l'ajout d'un autre algorithme de global illumination : le Voxel Cone Tracing.

    Le principe est de stocker l'éclairage direct de la scène dans une texture 3D via une voxellisation de la scène.
    Ensuite on génère les mipmaps de cette texture 3D, ce qui permet de simuler la propagation de cet éclairage direct.
    Une fois cela fait, on "trace" des cônes dans une hémisphère orientée par rapport à la normale de chaque pixel à éclairer.
    L'objectif est de couvrir l'hémisphère avec ces cônes, pour récupérer l'éclairage indirect reçu par le pixel en question.
    On trace donc plusieurs cônes pour la partie diffuse de l'éclairage, ainsi qu'un unique cône plus étroit, orienté par rapport à la position de la caméra, pour récupérer la réflexion spéculaire.

    Voilà le résultat dans Castor3D:
    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. Avancement de la version 0.10.0
    Par dragonjoker59 dans le forum Castor3D
    Réponses: 2
    Dernier message: 28/09/2017, 10h37
  2. [Recrutement] Projet avancé : Indicia Engine version 1.0
    Par galadie dans le forum Projets
    Réponses: 12
    Dernier message: 07/10/2014, 08h24
  3. Réponses: 0
    Dernier message: 16/12/2009, 03h14

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