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

Développement 2D, 3D et Jeux Discussion :

La spécification de Vulkan 1.2 est disponible


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Responsable 2D/3D/Jeux

    La spécification de Vulkan 1.2 est disponible
    La spécification de Vulkan 1.2 est disponible

    Vulkan est une bibliothèque bas niveau permettant de faire des rendus graphiques et de la programmation sur GPU. La spécification définit une bibliothèque multiplateforme ayant un faible impact sur les performances (impact inférieur à celui d'utiliser OpenGL). Aussi, Vulkan permet un accès plus bas niveau aux fonctionnalités de la carte graphique.
    La nouvelle version de la spécification est maintenant publiée. Ainsi, Vulkan 1.2 apporte :
    • 23 extensions maintenant intégrées à la spécification (faisant qu'une implémentation compatible Vulkan 1.2 aura obligatoirement ces nouvelles fonctionnalités) ;
    • de meilleures performances ;
    • une bibliothèque plus facile à utiliser.

    Plus précisément, cette nouvelle version ajoute les sémaphores chronologiques (timeline semaphore) (anciennement, l'extension VK_KHR_timeline_semaphore), un modèle mémoire formel, l'indexation des descripteurs et un meilleur support des shaders écrits en HLSL (langage de Microsoft pour les shaders).


    Déjà, Vulkan 1.2 est supporté dans les derniers pilotes des constructeurs NVIDIA (pilote Windows 441.99, pilote Linux 440.48.02), AMD (Radeon Software Adrenalin 2020 Edition 20.1.2), Imagination Technologies (puces IMG A-Series), Mali (architectures Bifrost et Valhall) et Stadia. Vous pouvez aussi retrouver la présentation de Vulkan 1.2 ici.


    Votre opinion

    Utilisez-vous Vulkan ?
    Pensez-vous qu'il est toujours utile d'utiliser OpenGL ?

    Source

    Annonce officielle
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Modérateur

    Y'a pas une erreur avec la version du driver windows ?

    Vulkan 1.2 support is available in Windows driver version 441.99 and Linux driver version 440.48.02
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Responsable 2D/3D/Jeux

    En effet. Mon doigt a du glisser .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre expérimenté
    Utilisez-vous Vulkan ?
    Non malheureusement, Il est beaucoup trop complexe et manque cruellement de documentation abordable pour le commun des codeurs :'(
    Pensez-vous qu'il est toujours utile d'utiliser OpenGL ?
    Bien-sûr. Tant qu'il n'y a pas besoin d'afficher des millions de polygones et des materials à 34 shaders... ça tourne bien OGL
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

  5. #5
    Expert éminent
    Pour ma part , je ne me suis pas mis sur Vulkan , mais j'aimerais bien si j'ai le temps !
    OpenGL utile ?
    Grande question , même si avec le temps la rétrocompatibilité rendra OGL de plus en plus complexe à maintenir !

  6. #6
    Membre chevronné
    Utilisez-vous Vulkan ?

    Alors pour ma part je m'y suis mit depuis 2 mois environ, et comme dit plus haut, il est effectivement très complexe. Comme j'avais pu le voir dans une présentation, utiliser OpenGL c'est un peu jouer avec des cubes pour enfants, et comparativement Vulkan c'est un peu comme construire soit-même sa voiture (pour ceux qui pensent que j'en rajoute, essayez par vous même ).

    Après bien entendu tout dépend ce qu'on veut faire avec... si on a une application avec un seul pipeline, un cycle de vie de ses objets simple (toute la vie de l'appli, quoi), on peut s'en sortir "assez rapidement". Pour ma part j'essaie de mettre au point une abstraction simple avec implémentation OpenGL et Vulkan, avec possibilité de créer, supprimer des objets à la volée... et bah je pense que j'en ai encore pour un bon moment ! Mais si je me suis mit c'est uniquement par curiosité, vu que pour au boulot on utilise des frameworks haut niveau, donc j'ai tout mon temps. Et puis l’intérêt c'est qu'on apprends beaucoup sur l'architecture GPU, et ça peut aider sur d'autres projets (même OpenGL d'ailleurs).

    Pensez-vous qu'il est toujours utile d'utiliser OpenGL ?

    Alors oui parce que OpenGL est encore la référence quand on bosse en milieu industriel & scientifique. Il est caché derrière la plupart des solutions 3D, ou utilisé directement.
    Néanmoins avec des choix comme celui d'Apple de le passer en deprecated on voit qu'il est un peu attaqué. Même si je pense personnellement que c'est stupide, vu qu'il remplit son rôle parfaitement: à savoir avoir une API simple, multiplateforme qui offre des performances correctes, sans complexité superflue.
    Parce qu'il faut bien se rendre compte que développer une application Vulkan dans une petite entreprise est un poids énorme à supporter en terme de développement et maintenance. Et qu'à mon avis il vaut mieux une application mal optimisée en OpenGL qu'une incompréhensible en Vulkan...

    Un petit schéma pour bien se rendre compte


  7. #7
    Responsable 2D/3D/Jeux

    Après, même si OpenGL est déprécié, il est loin de disparaître. Il y a des solutions d'implémentation OpenGL au dessus Vulkan :
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre chevronné
    C'est bon à savoir, mais même si je soutiens l'initiative, elle n'est pas officielle.
    Et on peut s'interroger sur la pérennité d'une solution qui n'est plus officiellement supportée. Autant prendre une alternative plus haut niveau dans ces cas là ?

    Enfin dans tous les cas personnellement c'est plutôt le choix d'Apple qui me pose un problème. Ça ne me donne pas envie de faire des efforts particuliers pour cette plateforme, puisque je considère qu'ils n'en font pas non plus...

  9. #9
    Expert éminent
    Sinon il y'a aussi Ashes pour faire du Vulkan un peu partout (il peut utiliser OGL en interne) :
    https://github.com/DragonJoker/Ashes
    Et fait par un de nos membres qui est Dragonjoker !

  10. #10
    Expert éminent sénior
    Utilisez vous Vulkan ?
    Oui, tous les jours depuis 2 ans, je fignole Ashes pour le support des versions d'OpenGL entre 3.2 et 4.2.
    J'ai porté Castor3D en Vulkan.

    Pensez-vous qu'il est toujours utile d'utiliser OpenGL ?
    Malheureusement oui, ne serait-ce que pour la maintenance.
    Je pense d'ailleurs qu'il faudrait que ce soit la seule raison de l'utiliser.
    Si on veut développer une application 3D, on n'a absolument aucune raison d'utiliser une API comme OpenGL ou Vulkan, on devrait utiliser un moteur 3D.
    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
    Membre averti
    Citation Envoyé par dragonjoker59 Voir le message
    Si on veut développer une application 3D, on n'a absolument aucune raison d'utiliser une API comme OpenGL ou Vulkan, on devrait utiliser un moteur 3D.
    Euh... pardon ? Sur quelles API tu crois que ces moteurs 3D sont basées ? Il y a encore plein de studios qui utilisent leur propre moteur et pour de bonnes raisons. Arrêtez de croire qu'utiliser un moteur tout fait comme Unity ou Unreal vont résoudre tous les problèmes du monde.

    Non le problème aujourd'hui c'est que d'une part OpenGL est un foutoir sans nom et que sortir un jeu qui fonctionne sur toutes les cartes graphiques est un énorme casse-tête, mais d'autre part c'est qu'OpenGL ne fonctionne plus que sur Windows, Linux et Android. Du coup si on développe un jeu PC qui sortira peut-être plus tard sur Consoles ou sur Mac le mieux c'est encore de faire du DirectX qui est une bien meilleure API.

  12. #12
    Expert confirmé
    Unity et Unreal ne sont pas des moteurs 3D, ce sont des moteurs de jeu.

    On peut faire un moteur de jeu custom avec un moteur 3d existant.
    Play50HZ, le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  13. #13
    Expert éminent sénior
    Citation Envoyé par dancingmad Voir le message
    Euh... pardon ? Sur quelles API tu crois que ces moteurs 3D sont basées ? Il y a encore plein de studios qui utilisent leur propre moteur et pour de bonnes raisons. Arrêtez de croire qu'utiliser un moteur tout fait comme Unity ou Unreal vont résoudre tous les problèmes du monde.
    Je ne vois aucun intérêt d'utiliser OpenGL/DirectX/Vulkan, si l'objectif n'est pas de développer un moteur 3D (dixit celui qui en développe un depuis maintenant 13 ans...).
    Si on ne veut pas créer un moteur 3D, on en utilise un tout fait, c'est tout (Ogre3D, Irrlicht, ou que sais-je).

    Citation Envoyé par dancingmad Voir le message
    Non le problème aujourd'hui c'est que d'une part OpenGL est un foutoir sans nom et que sortir un jeu qui fonctionne sur toutes les cartes graphiques est un énorme casse-tête
    Raison de plus pour ne pas développer de moteur 3D si ce n'est pas ton besoin (je répète : on en utilise un qui s'occupe de tout ce foin).

    Citation Envoyé par dancingmad Voir le message
    OpenGL ne fonctionne plus que sur Windows, Linux et Android.
    Excusez du peu de plateformes supportées...

    Citation Envoyé par dancingmad Voir le message
    Du coup si on développe un jeu PC qui sortira peut-être plus tard sur Consoles ou sur Mac le mieux c'est encore de faire du DirectX qui est une bien meilleure API.
    Clairement, DirectX est tellement supporté sur les consoles autres que XBox (et encore, c'est pas du vanilla D3D)... et sur MacOS... et sur Android... et sur iOS... (tu remarqueras que je n'ai pas cité Linux, car grâce à Valve on a Proton)
    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
    Citation Envoyé par dancingmad Voir le message
    Euh... pardon ? Sur quelles API tu crois que ces moteurs 3D sont basées ? Il y a encore plein de studios qui utilisent leur propre moteur et pour de bonnes raisons. Arrêtez de croire qu'utiliser un moteur tout fait comme Unity ou Unreal vont résoudre tous les problèmes du monde.
    Apparemment c'est suffisant pour pas mal de gros jeux AAA genre Borderlands ,Gears of War ,Fornite, Dragon Ball Z fighterZ , Street Fighter 4 et 5 , Shenmue III , Final Fantasy 7 remake.
    Mais oui si on veut faire mieux , faut mieux partir de zero

    Citation Envoyé par dancingmad Voir le message

    Non le problème aujourd'hui c'est que d'une part OpenGL est un foutoir sans nom et que sortir un jeu qui fonctionne sur toutes les cartes graphiques est un énorme casse-tête, mais d'autre part c'est qu'OpenGL ne fonctionne plus que sur Windows, Linux et Android. Du coup si on développe un jeu PC qui sortira peut-être plus tard sur Consoles ou sur Mac le mieux c'est encore de faire du DirectX qui est une bien meilleure API.
    Je doute que DirectX soit vraiment multiplate-forme
    Même sur les consoles XBOX utilise du AMD , il est très probable que AMD fournisse leur API Vulkan avec (et la Switch supporte Vulkan) après rien n’empêche bien sur MS de mettre DirectX dessus , mais c'est probablement pas la meilleur API (je vois mal comment elle pourrait rivaliser avec celle du constructeur).
    Pour OpenGL oui elle est de moins en moins supporté ,vu que l'API n'est plus maj depuis longtemps (la dernière version date de 2017).

  15. #15
    Membre averti
    Citation Envoyé par dragonjoker59 Voir le message
    Clairement, DirectX est tellement supporté sur les consoles autres que XBox
    Citation Envoyé par Kannagi Voir le message
    Je doute que DirectX soit vraiment multiplate-forme
    Je me suis probablement mal exprimé mais j'ai jamais dit que DirectX était plus portable que OpenGL. Quand on développe un jeu PC+Console peu importe quelle API on va utiliser sur PC puisque de toute façon il faudra refaire la couche bas niveau pour le reste, donc autant utiliser DirectX qui est bien mieux.

    Citation Envoyé par dragonjoker59 Voir le message
    Je ne vois aucun intérêt d'utiliser OpenGL/DirectX/Vulkan, si l'objectif n'est pas de développer un moteur 3D
    Alors c'est sûr que ça serait un peu idiot d'utiliser OpenGL directement comme ça, sans couche d'abstraction, il faut évidement l'encapsuler dans un moteur 3D. En revanche ce n'est pas parce que tu utilise un moteur 3D déjà fait que ça va te dispenser de toucher aux APIs graphiques. Dans toutes les prod' que j'ai pu voir (ou dont on m'a parlé), il y a toujours besoin d'un ou plusieurs progs spécialisés rendu parce qu'un simple moteur ne résout pas tous les problèmes magiquement.

    Citation Envoyé par Kannagi Voir le message
    Apparemment c'est suffisant pour pas mal de gros jeux AAA genre Borderlands ,Gears of War ,Fornite, Dragon Ball Z fighterZ , Street Fighter 4 et 5 , Shenmue III , Final Fantasy 7 remake.
    Mais oui si on veut faire mieux , faut mieux partir de zero
    Justement parlons-en des AAA. Tu pense bien que quand on développe un jeu comme ça on a une armée de programmeur rendus qui vont constamment modifier le moteur et toucher aux API graphiques, même si on utilise un moteur "tout fait". Chaque prod a ses particularité et ses besoins, chaque prod AAA va tenter d'innover en matière de rendu, et pour ça il n'y a pas le choix il faut passer par Vulkan / DX12 / les APIs propriétaires. Je dit simplement qu'utiliser un moteur 3D genre Irrlicht n'empêchera pas d'avoir besoin de toucher aux APIs bas niveau.

    Il ne s'agit de pas faire mieux en repartant de 0 mais vous seriez étonné de savoir la quantité de code que les studios doivent réécrire pour adapter un moteur 3D déjà existant à leurs besoins, même sur des jeux de moyenne taille (<50 personnes). Ceci implique que coup le cout de développement à long terme de son propre moteur peut être amortis en quelques années à condition d'avoir une bonne équipe à la base.

    Citation Envoyé par Kannagi Voir le message
    Même sur les consoles XBOX utilise du AMD , il est très probable que AMD fournisse leur API Vulkan
    Ben non raté : Sur Xbox c'est un DirectX modifié, point.