Comment linterface utilisateur graphique de Blender 3D 2.8x est-elle conçue?

Je veux connaître tous les processus, le fonctionnement, les langues impliquées, des exemples de code et des URL pour sites officiels avec des informations mises à jour si possible.

REMARQUE: Je « ne suis pas un programmeur. Je veux juste savoir comment et par où commencer à apprendre.

Il y a neuf ans, un utilisateur a répondu :

En supposant que vous parlez de la série 2.5 de Blender, au niveau le plus bas, linterface utilisateur de Blender est implémentée en utilisant OpenGL (principalement codée en C). Une couche Python y est associée. Cela signifie quil est assez facile à modifier Linterface utilisateur de Blender utilise Python sans sacrifier beaucoup les performances.

Et daprès le résumé de meilleures réponses sur le développement de son interface graphique et portab ility , mais non mis à jour (4 ans):

Non. Vous ne pouvez pas utiliser le package GUI de Blender dans dautres programmes en dehors de Blender. Le package dinterface utilisateur graphique de Blender est uniquement conçu pour être utilisé avec Blender sur diverses plates-formes. Blender a également une fenêtre personnalisée manager. Et les widgets dinterface utilisateur de Blender sont étroitement associés à lAPI de données de Blender (propriétés RNA / ID)

Il existe GHOST (General Handy Operating System Toolkit), qui peut être utilisé en dehors de Blender, mais son niveau est très bas, ne fournissant que des événements daccès aux fenêtres, souris, clavier, ndof et tablette depuis X11 / MS-Windows / OS X. Il ne dessine en fait rien; les boutons ou le texte, par exemple, sont gérés par le propre code de Blender.

Il y a un an , mais pas autant que nécessaire:

Linterface utilisateur entière de Blender est dessinée à lécran via OpenGL. La plupart de linterface utilisateur est défini en C, et certaines parties, comme la plupart des mises en page, en Python.

Donc:

  1. Je sais que Blender peut rendre des scènes sur des PC qui ne prennent pas en charge le logiciel Blender via ses binaires – qui acceptent les commandes CLI (Command Line Interface) – car il y a longtemps je ne pouvais pas exécuter 2.79, mais 2.76 … Mais par SheepIt Render Farm vous pouvez restituer dautres fichiers 2.79 sans problèmes avec votre CPU et vice versa.
    • Cette prise en charge de la CLI rend linterface graphique de Blender indépendante (ce qui signifie que linterface graphique ne fait que faire des appels CLI à chaque changement) ou linterface graphique est plus proche du cœur (ce qui signifie que Blender Core Code est associé aux changements de code GUI) ?
  2. Vous pouvez effectivement implémenter linterface utilisateur graphique de Blender (ou une partie de celle-ci) dans une autre application qui utilise les langues [favorite-examples]?

Pourquoi

Je cherche une réponse concrète à cela parce que je veux participer profondément au développement dInkscape, et ses problèmes majeurs réels (pour les utilisateurs) sont un non totalement a développé une interface graphique et pas de support CMJN. Dun autre côté, Blender est en fait super industrialisé (ce qui signifie que son utilisation est totalement PRO – sans CONs – pour les entreprises)

Les développeurs dInkscape portent toute sa base de code (qui est basé en C) vers C ++ et ils veulent également diviser linterface utilisateur en une implémentation séparée, afin de pouvoir utiliser des fichiers CSS pour le développer, et je veux savoir si il est possible dapprocher Blender Codebase dans le processus.

Commentaires

  • CLI est aussi une interface utilisateur. Il utilise simplement la ligne de commande et pas de jolis graphiques. Linterface de ligne de commande et linterface graphique communiquent avec " backend " qui fait réellement des choses. Puisque Blender est OpenSource (et sous licence GPL), il ne devrait y avoir aucun problème à créer une nouvelle interface graphique pour lui dans une langue différente, mais cela dépend principalement de la langue. La langue aurait besoin de communiquer avec le backend dune manière ou dune autre. Dans la plupart des langues, il existe généralement un moyen de " encapsuler " les binaires afin quils puissent être utilisés comme bibliothèques, mais cela est spécifique à la langue.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *