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

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

Valve met à disposition « togl » son interface D3D9 vers OpenGL


Sujet :

Développement 2D, 3D et Jeux

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut Valve met à disposition « togl » son interface D3D9 vers OpenGL
    Valve met à disposition « togl » son interface D3D9 vers OpenGL

    Valve, le célèbre studio de développement de Half life, Left 4 Dead ou encore Team Fortress, vient de mettre à disposition sur Github son interface de conversion des appels D3D9 vers OpenGL.
    Le studio avait présenté son travail durant la GPU Technology Conference dont vous pouvez lire la retranscription de la conférence sur le travail de portage des jeux Valve sous Linux. Cette couche permet de transposer tous les appels faits à D3D9, une bibliothèque uniquement sous Windows en appels OpenGL. Les shaders sont eux aussi convertis durant le processus.
    Actuellement, le dépôt n'est pas finalisé. Il manque quelques phases d'améliorations permettant de le rendre plus accessible aux développeurs.

    L'histoire de ce code est longue. Le projet a été initié par l'équipe Mac, puis repris par l'équipe Steam et finalement porté par l'équipe Linux, sous Windows. Ce portage a permis une phase de débogage, car les débogueurs OpenGL n'étaient à ce moment-là, disponibles que sous Windows.

    Le code est loin d'être parfait. Le premier objectif de celui-ci sont les performances. Pour atteindre cet objectif, beaucoup d'expérimentations ont été réalisées, mais si vous souhaitez connaître comment réaliser un support d'une multitude de machines sous Linux et cela malgré les différences et les défauts des pilotes, il est très intéressant de regarder ce code. Il faut aussi savoir que les pilotes Windows partagent beaucoup de code avec les pilotes Linux, donc le support est souvent au même niveau pour OpenGL, quel que soit le système.
    La version du code disponible sur Github n'est pas nécessairement la dernière chez Valve. En effet, chaque jeu possède sa propre branche.


    Retrouvez le code de « togl » sur Github.


    Votre opinion

    Pensez-vous que cette interface sera bénéfique à votre projet ?
    Pensez-vous qu'il soit maintenant intéressant de se pencher sur OpenGL ? Trouvez-vous qu'il soit intelligent de faire une surcouche à DirectX ?


    Voir aussi

    La retranscription de la conférence de Valve sur le portage des jeux sous Linux.


    Source

    Blog de Rich Geldreich (développeur chez Valve)
    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
    Membre expert

    Avatar de germinolegrand
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2010
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Points : 3 892
    Points
    3 892
    Par défaut
    Je trouve qu'il est extrêmement intelligent d'avoir fait une implémentation de DirectX en OpenGL. Non seulement cela facilite le portage de jeux Windows sous d'autres OS, mais en plus cela permet une transition vers OpenGL plus aisée. (oui je suis à fond pour le multiplateforme)

  3. #3
    Membre expérimenté Avatar de dfiad77pro
    Homme Profil pro
    Responsable Architecture logicielle
    Inscrit en
    Décembre 2008
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Architecture logicielle
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 541
    Points : 1 729
    Points
    1 729
    Par défaut
    D'après mes souvenir les API DirectX10 et 11 ont beaucoup changés par rapport au 9.
    Faudra t-il presque tout refaire pour migrer les Jeux DX10/11 ?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Bonne remarque.
    Dans la conférence, ils indiquent les correspondances de versions suivantes :

    DirectX 9 OpenGL 2 Shaders
    DirectX 10 OpenGL 3 Bibliothèque orientée flux, Geometry shader
    DirectX 11 OpenGL 4 Tesselation, Compute shaders

    Donc le portage est totalement possible, OpenGL disposent des fonctionnalités nécessaires. Ensuite, oui, il faudra nécessairement faire la surcouche pour les appels DirectX 10/11, mais on peut encore garder le même code OpenGL (juste modification du nom de la fonction, si vous voulez). Pour les nouvelles fonctionnalités apportées par les bibliothèques, alors oui, il faudra un peu plus de travail.
    Notez aussi, et Valve le dit dans la conférence, leur but est de supporter le plus de machines possible. Pour ce faire, le choix est évidemment DirectX 9/OpenGL 2. S'ils veulent bouger sur DirectX 11 (DirectX 10 n'est pas tant que ça utilisé, les jeux ont plus fait la transition DirectX 9 -> DirectX 11), ils perdent une "grande" partie du marché qu'ils visent. Du coup, ils n'ont pas intérêt à changer trop dans cette politique. Pour OpenGL 2, l'histoire est similaire, sauf que le gros avantage qu'ils ont avec OpenGL et leur surcouche, c'est qu'ils peuvent dire : "Ok, la machine sous Windows XP à OpenGL 3, donc on peut utiliser les nouveautés des cartes graphiques". Chose qui n'est pas possible avec DirectX 10, car Microsoft ne propose pas la bibliothèque sur Windows XP. (Valve parle de Windows XP, pour le marché asiatique, principalement, qui utilise encore beaucoup ce système).
    Donc, non, il ne faudra pas tout refaire, car la couche OpenGL est installé. Même si les shaders ont changé de DirectX 9 à DirectX 11, la partie OpenGL a beaucoup moins changé.
    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.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Je viens de trouver cette ressource : http://stats.unity3d.com/web/gpu.html .
    Regardez bien le dernier graphe. Moins de 50 % peut faire fonctionner DirectX 10 (et ça, c'est que les PC Windows).
    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.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 187
    Points : 434
    Points
    434
    Par défaut
    [troll]Je serai Microsoft je m'empresserai d'attaquer Valve pour la violation de brevets quelconques ou autre chose du genre.[/troll]

    En tout cas c'est une super nouvelle !

  7. #7
    Membre chevronné Avatar de nirgal76
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 904
    Points : 2 123
    Points
    2 123
    Par défaut
    Je connais pas trop tout ça mais OpenGL c'est seulement le graphique non ? (d'ou son nom d'ailleurs) alors que DirectX c'est le graphique, le son les périph d'entrée etc.. ? comment mapper un truc complet vers une api plus restreinte ?
    Où alors il s'agit juste de D3D vers OpenGL, et parler de DirectX vers OpenGL est un abus de langage

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    C'est pour cela que l'on parle bien, notamment dans le titre, de D3D9 (la partie bibliothèque 3D de DirectX 9).
    Après, il y a souvent l'amalgame DirectX/D3D, car D3D c'est la plus grosse partie.
    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.

  9. #9
    Membre chevronné Avatar de nirgal76
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 904
    Points : 2 123
    Points
    2 123
    Par défaut
    Oui c'est vrai, j'avais bien noté que le titre ne faisait pas la confusion mais les commentaires oui.

    Celui-ci par exemple
    d'avoir fait une implémentation de DirectX en OpenGL
    . il aurait donc fallut dire "une implémentation de Direct3D en OpenGL"

Discussions similaires

  1. Réponses: 10
    Dernier message: 02/04/2015, 12h58
  2. Réussir son interface ASP.NET !
    Par rad_hass dans le forum ASP.NET
    Réponses: 10
    Dernier message: 04/03/2008, 09h19
  3. Réponses: 11
    Dernier message: 17/07/2007, 20h53
  4. Sniffer Réseau - choisir son interface
    Par Invité(e) dans le forum Réseau
    Réponses: 3
    Dernier message: 03/03/2007, 23h27
  5. [Réseau] Socket - choisir son interface réseau
    Par Invité(e) dans le forum Réseau
    Réponses: 2
    Dernier message: 28/02/2007, 11h06

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