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

Actualités Discussion :

Ubisoft sponsorise la bibliothèque d'interface utilisateur pour C ++ «Dear ImGui»

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 441
    Points : 197 509
    Points
    197 509
    Par défaut Ubisoft sponsorise la bibliothèque d'interface utilisateur pour C ++ «Dear ImGui»
    Ubisoft sponsorise la bibliothèque d'interface utilisateur pour C ++ « Dear ImGui »,
    suite à son adhésion au Blender Development Fund pour soutenir l'animation open source

    En juillet, Ubisoft a rejoint le Blender Foundation Development Fund en tant que membre Gold (30 000 euros par an). Le studio a mis en ligne une interview de Pierrot Jacquet (responsable des productions chez Ubisoft Animation Studio) pour en expliquer les raisons :

    « Blender était, pour nous, un choix évident compte tenu de notre stratégie : il est soutenu par une communauté forte et engagée, et est associé à la vision véhiculée par la Fondation Blender, ce qui en fait l’un des DCC les plus évolutifs du marché.

    « En plus de cela, c'est un projet open source. Cela nous permet de contribuer à son développement en nous joignant en tant que membre corporatif et en partageant avec la communauté certains des outils que notre équipe dédiée de Blender développera. Nous aimons l'idée que cet échange mutuel entre la fondation, la communauté et notre studio profite à tous à la fin ».

    La raison de cette décision ? Blender 2.8 : « Nous pensons que Blender 2.8, qui sortira dans les prochains jours, va changer la donne pour l’industrie de la CGI. Blender est depuis longtemps déjà dans le radar d'Ubisoft, et au cours de la dernière année, de plus en plus de nos artistes ont montré un intérêt pour son utilisation en production. La croissance de notre communauté interne de Blender, ainsi que les innovations apportées par 2.8 - p. ex. un rendu UX, Grease Pencil, EEVEE en temps réel remodelé - nous ont convaincus que le moment était venu d'apporter un soutien à nos artistes et productions qui souhaitaient ajouter Blender à leur boîte à outils. Quel meilleur moyen de soutenir ce changement que de faire un don à la Fondation Blender, afin que nous puissions aider Blender à poursuivre sa croissance ? »

    Dear ImGui

    C'est dans ce contexte qu'Ubisoft a confirmé le parrainage du projet open source Dear ImGui, une interface utilisateur graphique légère pour C++. Il génère des tampons de sommet optimisés que vous pouvez rendre à tout moment dans votre application compatible avec le pipeline 3D. Il est rapide, portable, indépendant du rendu et autonome (pas de dépendances externes).

    Dear ImGui est conçu pour permettre des itérations rapides et pour permettre aux programmeurs de créer des outils de création de contenu et des outils de visualisation / débogage (par opposition à l'interface utilisateur pour l'utilisateur final moyen). Il favorise la simplicité et la productivité vers cet objectif et manque de certaines fonctionnalités que l'on trouve normalement dans les bibliothèques de plus haut niveau.

    Dear ImGui est particulièrement adapté à l'intégration dans le moteur de jeux (pour l'outillage), les applications 3D en temps réel, les applications plein écran, les applications intégrées ou toutes les applications sur les plateformes de consoles où les fonctionnalités du système d'exploitation ne sont pas standard.

    Omar Cornut, le développeur principal de Dear ImGui et directeur technique de Lizardcube, décrit l'accord comme « un facteur de croissance notable pour le projet en 2020 ».

    Nom : dear.png
Affichages : 28997
Taille : 537,6 Ko

    Utilisation

    Vous pouvez facilement copier et compiler Dear ImGui dans votre application / moteur. Ce sont tous les fichiers du dossier racine du référentiel (imgui.cpp, imgui.h, imgui_demo.cpp, imgui_draw.cpp etc.). Aucun processus de construction spécifique n'est requis. Vous pouvez ajouter les fichiers .cpp à votre projet existant.

    Vous aurez besoin d'un backend pour intégrer Dear ImGui dans votre application. Le backend transmet les entrées souris / clavier / manette de jeu et une variété de paramètres à Dear ImGui, et est en charge du rendu des sommets résultants.

    Des backends pour une variété d'api graphiques et de plateformes de rendu sont fournis dans le dossier examples/, ainsi que des exemples d'applications. Vous pouvez également créer votre propre backend.

    Une fois que Dear ImGui est installé dans votre application, vous pouvez l'utiliser à partir de _anywhere_ dans votre boucle de programme:

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ImGui::Text("Hello, world %d", 123);
    if (ImGui::Button("Save"))
        MySaveFunction();
    ImGui::InputText("string", buf, IM_ARRAYSIZE(buf));
    ImGui::SliderFloat("float", &f, 0.0f, 1.0f);

    Résultat :

    Nom : code_sample_02.png
Affichages : 3600
Taille : 34,4 Ko

    (paramètres : Dark style (left), Light style (right) / Font: Roboto-Medium, 16px / Rounding: 5)

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    // Create a window called "My First Tool", with a menu bar.
    ImGui::Begin("My First Tool", &my_tool_active, ImGuiWindowFlags_MenuBar);
    if (ImGui::BeginMenuBar())
    {
        if (ImGui::BeginMenu("File"))
        {
            if (ImGui::MenuItem("Open..", "Ctrl+O")) { /* Do stuff */ }
            if (ImGui::MenuItem("Save", "Ctrl+S"))   { /* Do stuff */ }
            if (ImGui::MenuItem("Close", "Ctrl+W"))  { my_tool_active = false; }
            ImGui::EndMenu();
        }
        ImGui::EndMenuBar();
    }
     
    // Edit a color (stored as ~4 floats)
    ImGui::ColorEdit4("Color", my_color);
     
    // Plot some values
    const float my_values[] = { 0.2f, 0.1f, 1.0f, 0.5f, 0.9f, 2.2f };
    ImGui::PlotLines("Frame Times", my_values, IM_ARRAYSIZE(my_values));
     
    // Display contents in a scrolling region
    ImGui::TextColored(ImVec4(1,1,0,1), "Important Stuff");
    ImGui::BeginChild("Scrolling");
    for (int n = 0; n < 50; n++)
        ImGui::Text("%04d: Some text", n);
    ImGui::EndChild();
    ImGui::End();

    Résultat :

    Nom : code_sample_03_color.gif
Affichages : 4151
Taille : 430,4 Ko

    Dear ImGui vous permet de créer des outils élaborés ainsi que des outils de très courte durée. Sur le côté extrême de la courte durée de vie: en utilisant la fonction Edit & Continue (rechargement de code à chaud) des compilateurs modernes, vous pouvez ajouter quelques widgets pour modifier les variables pendant que votre application est en cours d'exécution, et supprimer le code une minute plus tard! Dear ImGui n'est pas seulement là pour peaufiner les valeurs. Vous pouvez l'utiliser pour tracer un algorithme en cours d'exécution en émettant simplement des commandes de texte. Vous pouvez l'utiliser avec vos propres données de réflexion pour parcourir votre ensemble de données en direct. Vous pouvez l'utiliser pour exposer les composants internes d'un sous-système dans votre moteur, pour créer un enregistreur, un outil d'inspection, un profileur, un débogueur, un éditeur / cadre de création de jeu complet, etc.

    Ubisoft a utilisé Dear ImGui au cours des deux dernières années sur plusieurs projets AAA. Adopté par l'équipe d'Assassin's Creed en 2016, puis par Rainbow Six un an plus tard, il a été décrit par les membres de l'équipe comme un excellent outil qui permet des itérations rapides et la responsabilisation des programmeurs pour créer des outils de création de contenu et de visualisation.

    « Dear ImGui est une élégante interface graphique en mode immédiat qui change fondamentalement la façon dont les outils de production et de débogage sont développés chez Ubisoft. Cette bibliothèque de productivité est un moyen incroyablement efficace d'améliorer la qualité de ces outils », explique Nicolas Fleury, architecte technique sur Rainbow Six: Siege.

    Source : Ubisoft

    Voir aussi :

    Ubisoft reporte la sortie de trois titres majeurs, y compris Watch Dogs Legion et Gods and Monsters, et s'effondre en Bourse après l'annonce de profits en baisse pour l'exercice actuel
    Ubisoft Animation Studio rejoint le fonds de développement Blender pour soutenir l'animation open source
    Ubisoft célèbre Notre-Dame de Paris en proposant un accès gratuit à Assassin's Creed Unity pendant une semaine, pour profiter de la cathédrale en 3D
    Les meilleurs employeurs de 2019 : Facebook et Google perdent du terrain aux USA, tandis qu'Ubisoft monte en flèche en France, selon Glassdoor
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre émérite
    Profil pro
    retraité
    Inscrit en
    Décembre 2010
    Messages
    806
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 806
    Points : 2 307
    Points
    2 307
    Par défaut
    Encore un effort et cela pourrait devenir une GUI cross-plateform pour le C++ avec tout ce qui va avec

  3. #3
    Membre éprouvé
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Italie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 263
    Points : 998
    Points
    998
    Par défaut
    Citation Envoyé par archqt Voir le message
    Encore un effort et cela pourrait devenir une GUI cross-plateform pour le C++ avec tout ce qui va avec
    J'espere la meme chose

  4. #4
    Membre confirmé Avatar de Andarus
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 455
    Points
    455
    Par défaut
    Citation Envoyé par archqt Voir le message
    Encore un effort et cela pourrait devenir une GUI cross-plateform pour le C++ avec tout ce qui va avec
    D'après ce que je lis on est à mille lieues d'un équivalent à Qt, et ça ne semble pas être le but...

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2009
    Messages : 416
    Points : 1 443
    Points
    1 443
    Par défaut
    C'est déjà cross-platform, vu qu'il ne fournit pas de renderer, mais qu'il faut y intégrer le sien.

    Quoique, les samples sont tellement bien faits que si on fait une appli purement GUI, on peut les utiliser comme base pour une appli multi-plateformes...

  6. #6
    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
    Citation Envoyé par archqt Voir le message
    Encore un effort et cela pourrait devenir une GUI cross-plateform pour le C++ avec tout ce qui va avec
    Ben non en fait, puisque c'est pour être dessiné via une API de rendu 3D (Vulkan, OpenGL, Direct3D...).
    Et il faut donc avoir une appli utilisant une de ces API pour pouvoir utiliser ImGui, ce qui est loooooiiiiiiinnnn d'être le cas de la majorité des applis.
    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
    Membre extrêmement actif
    Avatar de benjani13
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Février 2010
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : Février 2010
    Messages : 615
    Points : 2 824
    Points
    2 824
    Par défaut
    Citation Envoyé par Andarus Voir le message
    D'après ce que je lis on est à mille lieues d'un équivalent à Qt, et ça ne semble pas être le but...
    Exact. Dear Imgui est avant tout fait pour du prototypage d'UI, la création d'outils durant la phase de conception d'un jeu (conception de l'environnement, paramétrages graphiques, etc), des outils de debug, etc. Après il y a quelques vrais applications qui utilisent ImGui, avec des templates graphiques customs bien plus jolis que le template par défaut.

    Citation Envoyé par dragonjoker59 Voir le message
    Citation Envoyé par archqt Voir le message
    Encore un effort et cela pourrait devenir une GUI cross-plateform pour le C++ avec tout ce qui va avec
    Ben non en fait, puisque c'est pour être dessiné via une API de rendu 3D (Vulkan, OpenGL, Direct3D...).
    Et il faut donc avoir une appli utilisant une de ces API pour pouvoir utiliser ImGui, ce qui est loooooiiiiiiinnnn d'être le cas de la majorité des applis.
    Justement, le fait de réaliser le rendu via OpenGL permet je trouve d'être plus indépendant, plutôt que de se reposer sur une couche de GUI qui serait dépendante du système ou du gestionnaire de bureau (Qt pour KDE, GTK pour Gnome, etc). On évite ainsi de se limiter à une bibliothèque de GUI qui doit être présente sur le système, installé (perso ça me gonfle d'installer tout Qt sur un bureau GTK et inversement) ou embarqué (avec le poids des DLLs). Pour le fait de devoir avoir une API OpenGL à disposition, Dear ImGui vise essentiellement les jeux vidéos à la base donc bon.

    J'ai fait une petite application OpenGL qui permet d'afficher des modèles 3D et de les manipuler, à la souris ou via une GUI. J'ai choisis Dear ImGui pour la GUI après avoir comparé plusieurs bibliothèques et je ne regrette pas ce choix. J'ai une appli qui se compile aussi bien sur Windows que Linux sans rien avoir à différencier dans le code (juste quelques libs qui diffèrent entre Windows et Linux dans le Makefile). Très peu de dépendance à installer (quelques libs X.org en version dev sur Linux), un binaire léger. Que demander de plus?

  8. #8
    Membre averti

    Homme Profil pro
    https://framagit.org/ericb/documents
    Inscrit en
    Décembre 2018
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : https://framagit.org/ericb/documents

    Informations forums :
    Inscription : Décembre 2018
    Messages : 41
    Points : 305
    Points
    305
    Billets dans le blog
    8
    Par défaut portabilité de Dear ImGui
    Bonjour,

    Je suis très content qu'on commence à reconnaître cette API. En fait, ça fait plusieurs années que je travaille avec ImGui, et c'est en fait un des seuls moyens que j'ai trouvé pour

    1. développer sous Linux
    2. proposer une version Windows (7+) de mon application

    La licence du code est GPL (mais j'ai tout écrit et je pourrai le passer sous LGPL plus tard).

    Je n'ai pas beaucoup de temps pour faire des copies d'écran, mais je vais simplement vous donner un lien, et il suffit de lire ;-)

    1. Le site : https://framagit.org/ericb/miniDart

    2. le wiki (copies d'écran pas tout à fait à jour toutefois) , et ce qu'on peut faire : https://framagit.org/ericb/miniDart/-/wikis/home

    3. j'ai créé un canvas, et je vais l'améliorer (je n'ai pas publié les derniers changements, mais ça viendra bientôt, enfin quand j'aurai le temps ^^^)

    Pour ceux qui veulent tout savoir, j'ai pris autant de notes que possible et tout est dans le Changelog ( https://framagit.org/ericb/miniDart/...ster/Changelog ) et vous verrez à quel point la portabilité est difficile !!

    À suivre : un meilleur layout, et l'intégration du "docking".

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/06/2015, 10h45
  2. [AC-2007] Créer une interface utilisateur pour modifier des couleurs
    Par Triton972 dans le forum IHM
    Réponses: 6
    Dernier message: 18/08/2011, 20h36
  3. interface utilisateur pour les applications php/mysql
    Par ibrahima lamine dans le forum MySQL
    Réponses: 1
    Dernier message: 10/05/2011, 22h27
  4. Interface utilisateur pour Sudoku
    Par tizi-esigetel dans le forum SDL
    Réponses: 4
    Dernier message: 28/05/2010, 20h29
  5. interface utilisateur pour BD
    Par zakaroh dans le forum VB.NET
    Réponses: 5
    Dernier message: 19/05/2008, 13h23

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