Wie wird die grafische Benutzeroberfläche von Blender 3D 2.8x erstellt?

Ich möchte alle Prozesse, Funktionen, beteiligten Sprachen, Codebeispiele und URLs kennen offizielle Websites mit aktualisierten Informationen wenn möglich.

HINWEIS: Ich bin kein Programmierer. Ich möchte nur wissen, wie und Wo soll ich anfangen zu lernen?

Vor neun Jahren hat ein Benutzer geantwortet :

Angenommen, Sie sprechen von der 2.5-Serie von Blender, auf der untersten Ebene wird die Benutzeroberfläche von Blender mit OpenGL implementiert (hauptsächlich in C). Darin befindet sich eine Python-Ebene . Dies bedeutet, dass es ziemlich einfach zu ändern ist Die Benutzeroberfläche von Blender verwendet Python, ohne die Leistung zu beeinträchtigen.

Und gemäß dem Lebenslauf von bessere Antworten über die GUI-Entwicklung und Portab ility , aber nicht aktualisiert (4 Jahre alt):

Nr. Sie können das GUI-Paket von Blender nicht in anderen Programmen außerhalb von Blender verwenden. Das grafische Benutzeroberflächenpaket von Blender wurde ausschließlich für die Verwendung mit Blender auf verschiedenen Plattformen entwickelt. Blender verfügt auch über ein benutzerdefiniertes Fenster Manager. Und die UI-Widgets in Blender sind eng mit der Daten-API (RNA / ID-Eigenschaften) von Blender gekoppelt.

Es gibt GHOST (General Handy Operating System Toolkit), das außerhalb von Blender verwendet werden kann, aber sehr niedrig ist und nur Fensterzugriffs-, Maus-, Tastatur-, ndof- und Tablet-Ereignisse von X11 / MS-Windows bietet / OS X. Es zeichnet eigentlich nichts; Schaltflächen oder Text werden beispielsweise von Blenders eigenem Code verarbeitet.

Vor einem Jahr , aber nicht so detailliert wie nötig:

Die gesamte Benutzeroberfläche von Blender wird über OpenGL auf dem Bildschirm gezeichnet. Der größte Teil der Benutzeroberfläche ist definiert in C und einige Teile, wie die meisten Layouts, in Python.

Also:

  1. Ich weiß dass Blender Szenen in PCs rendern kann, die die Blender-Software nicht über ihre Binärdateien unterstützen – die CLI-Befehle (Command Line Interface) akzeptieren -, weil ich vor langer Zeit nicht 2.79, sondern 2.76 ausführen konnte … Aber durch SheepIt Render Farm Sie können die 2.79-Dateien anderer ohne Probleme mit Ihrer CPU rendern und umgekehrt.
    • Diese CLI-Unterstützung macht die Blender-GUI unabhängig (was bedeutet, dass die GUI bei jeder Änderung nur CLI-Aufrufe ausführt) oder ist die GUI kernnaher (was bedeutet, dass der Blender-Kerncode mit Änderungen im GUI-Code verbunden ist) ?
  2. Sie können die grafische Benutzeroberfläche von Blender (oder einen Teil davon) effektiv in eine andere Anwendung implementieren, die [Favoritenbeispiele] verwendet.

Warum

Ich suche nach einer konkreten Antwort darauf, weil ich mich intensiv an der Inkscape-Entwicklung beteiligen möchte und die eigentlichen Hauptprobleme (für Benutzer) ein Nein sind entwickelte GUI und keine CMYK-Unterstützung. Auf der anderen Seite ist Blender tatsächlich super industrialisiert (was bedeutet, dass seine Verwendung für Unternehmen völlig PRO-ohne CONs ist).

Inkscape-Entwickler portieren ihre gesamte Codebasis (die basiert auf C) bis C ++ und sie möchten auch die Benutzeroberfläche in eine separate Implementierung aufteilen, um CSS-Dateien für die Entwicklung verwenden zu können, und ich möchte wissen, ob Es ist möglich, sich dabei an Blender Codebase zu wenden.

Kommentare

  • CLI ist auch eine Benutzeroberfläche. Es wird nur die Befehlszeile verwendet und keine hübschen Grafiken. Sowohl die CLI als auch die GUI kommunizieren mit dem " Backend ", das tatsächlich Dinge erledigt. Da Blender OpenSource ist (und als GPL lizenziert ist), sollte es kein Problem geben, eine neue GUI dafür in einer anderen Sprache zu erstellen, aber das hängt hauptsächlich von der Sprache ab. Die Sprache müsste irgendwie mit dem Backend kommunizieren. In den meisten Sprachen gibt es normalerweise eine Möglichkeit, " " -Binärdateien zu verpacken, damit sie als Bibliotheken verwendet werden können. Dies ist jedoch sprachspezifisch.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.