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

Vulkan Discussion :

Ma bibliothèque de rendu


Sujet :

Vulkan

  1. #1
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    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 031
    Points : 11 477
    Points
    11 477
    Billets dans le blog
    11
    Par défaut Ma bibliothèque de rendu
    Salut à vous!

    Je viens vous présenter une bibliothèque C++ que je suis en train d'écrire.
    C'est une bibliothèque de rendu écrite de manière à coller le plus possible à l'interface de Vulkan.
    Elle permet d'écrire du code de rendu, à la manière de Vulkan donc, en ne se souciant pas de l'API de rendu utilisée derrière (Vulkan ou OpenGL).
    J'ai donc écrit un renderer Vulkan, et un renderer OpenGL 4.5.
    D'autres renderer sont prévus (OpenGL ES 3.1 pour commencer, et j'aimerais assez descendre jusqu'à OpenGL ES 2.0, on verra si c'est faisable).

    Je supporte beaucoup de features Vulkan (descriptor sets, pipelines, command buffers...) en émulant dans le renderer OpenGL ce qui n'y existe pas (command buffers, notamment).

    Vous pouvez trouver le code de cette bibliothèque, ainsi que des programmes de test et quelques exemples, sur son repo GitHub : https://github.com/DragonJoker/RendererLib
    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
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut
    Bonjour, et bravo

    Je chipote avec Vulkan depuis 3-4 mois.
    En suivant des tutos trouvés ça et là j'ai réussi à représenter un Rubik's cube, à l'orienter et à faire pivoter ses faces.
    Comme si on manipulait un vrai Rubik's cube en main
    J'utilise GLFW comme dans les tutos.
    Je n'avais jamais fait de 3D avant cela (enfin, si, il y a 25 ans sous MS-DOS, en écrivant les maths nécessaires pour un rendu en mode filaire affiché pixel par pixel...).

    Je n'ai pas encore regardé tes exemples.
    Sont-ils testés sous Visual Studio 2015 ou 2017 ?
    Merci et encore bravo

  3. #3
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    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 031
    Points : 11 477
    Points
    11 477
    Billets dans le blog
    11
    Par défaut
    Mes exemples sont testés sous Visual Studio 2017.
    La lib entière est écrite en C++14, donc il doit y avoir certains trucs qui ne passeront pas sous Visual Studio 2015.
    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 031
    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 031
    Points : 11 477
    Points
    11 477
    Billets dans le blog
    11
    Par défaut
    La lib avance vraiment pas mal, j'ai forké les exemples Vulkan de Sascha Willems pour voir comment se comporte ma lib, et je suis agréablement surpris, les performances étant identiques voire supérieures (Dûes à meilleure utilisation de Vulkan en interne, certainement). De plus ils fonctionnent aussi en OpenGL, du coup, ce qui est vraiment un gros avantage, à mon sens.
    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 031
    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 031
    Points : 11 477
    Points
    11 477
    Billets dans le blog
    11
    Par défaut "Et moi pendant ce temps là!!"
    Nom : ezgif-3-855b77aead.jpg
Affichages : 238
Taille : 13,8 Ko

    J'implémente des samples Vulkan ^^
    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 sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    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 031
    Points : 11 477
    Points
    11 477
    Billets dans le blog
    11
    Par défaut
    Petites nouvelles.

    J'ai implémenté un renderer OpenGL 3.X (basé sur OpenGL 3.2), ce qui fait que j'ai maintenant un renderer Vulkan, un renderer OpenGL 4.X et un renderer OpenGL 3.X.
    J'ai modifié Castor3D pour utiliser RendererLib, ça m'a pris quelque chose comme 4 mois, je fixe les bugs restants, mais ça y est, Castor3D fonctionne maintenant sous Vulkan !
    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).

  7. #7
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    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 031
    Points : 11 477
    Points
    11 477
    Billets dans le blog
    11
    Par défaut
    Une petite mise à jour :
    J'ai aussi un renderer Direct3D 11 (apparemment compatible jusque Direct3D 10.1)
    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 sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    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 031
    Points : 11 477
    Points
    11 477
    Billets dans le blog
    11
    Par défaut
    Coin coin !

    J'ai décidé de réécrire toute la bibliothèque, de manière à en faire un drop-in replacement pour Vulkan.
    Ca permet notamment d'écrire du code Vulkan classique, mais au lieu de charger la DLL Vulkan, on charge la DLL Ashes, et c'est elle qui s'occupe de charger le renderer adéquat (Vulkan en priorité bien sûr, Direcct3D11 ou OpenGL si Vulkan n'est pas disponible).

    J'ai créé un serveur Discord pour mes différents projets, dont Ashes, n'hésitez pas à m'y rejoindre, si vous avez des questions.
    https://discord.gg/hXE2W6
    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).

Discussions similaires

  1. Réponses: 11
    Dernier message: 01/02/2021, 08h57
  2. SplatGL : une nouvelle bibliothèque de rendu Python pour les jeux 2D
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 01/11/2014, 16h38
  3. [Recherche] bibliothèque rendu graphique
    Par nightwar dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 21/12/2009, 21h11
  4. Un objet rendu apparaît derrière un autre objet
    Par jamal24 dans le forum OpenGL
    Réponses: 2
    Dernier message: 01/05/2003, 20h47
  5. Bibliothèques et documentation
    Par Anonymous dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/04/2002, 12h24

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