Hoe wordt de grafische gebruikersinterface van Blender 3D 2.8x gemaakt?

Ik wil alle processen, werking, betrokken talen, voorbeelden van code en URLs naar officiële sites met bijgewerkte informatie indien mogelijk.

OPMERKING: ik ben geen programmeur. Ik wil gewoon weten hoe en waar te beginnen met leren.

Negen jaar geleden reageerde een gebruiker :

Ervan uitgaande dat je het hebt over de 2.5-serie van Blender, op het laagste niveau, wordt de gebruikersinterface van Blender geïmplementeerd met OpenGL (voornamelijk gecodeerd in C). Daaraan verbonden is een Python-laag . Dit betekent dat het vrij eenvoudig is aan te passen Blenders UI gebruikt Python zonder veel in te leveren op het gebied van prestaties.

En volgens de samenvatting van betere reacties over de GUI-ontwikkeling en portab ility , maar niet bijgewerkt (4 jaar oud):

Nee. Je kunt het GUI-pakket van Blender niet gebruiken in andere programmas buiten Blender. Het grafische gebruikersinterfacepakket van Blender is uitsluitend ontworpen om te worden gebruikt met Blender op verschillende platforms. Blender heeft ook een aangepast venster manager. En de UI-widgets in Blender zijn nauw verbonden met Blenders Data API (RNA / ID-eigenschappen)

Er is GHOST (General Handy Operating System Toolkit), die buiten Blender kan worden gebruikt, maar het is erg laag en biedt alleen venstertoegang, muis-, toetsenbord-, ndof- en tabletgebeurtenissen van X11 / MS-Windows / OS X. Het tekent eigenlijk niets; knoppen of tekst worden bijvoorbeeld verwerkt door de eigen code van Blender.

Een jaar geleden , maar niet zo gedetailleerd als nodig:

De volledige gebruikersinterface van Blender wordt op het scherm getekend via OpenGL. Het grootste deel van de gebruikersinterface is gedefinieerd in C, en sommige delen, zoals de meeste lay-outs, in Python.

Dus:

  1. Ik weet het dat Blender scènes kan renderen op pcs die de Blender-software niet ondersteunen via de binaire bestanden – die CLI-opdrachten (Command Line Interface) accepteren – omdat ik lang geleden geen 2.79 kon draaien, maar 2.76 … Maar via SheepIt Render Farm zou je de 2.79 bestanden van andere kunnen renderen zonder problemen met je CPU en vice versa.
    • Die CLI-ondersteuning maakt Blender GUI onafhankelijk (wat betekent dat GUI alleen CLI-aanroepen doet bij elke wijziging) of is de GUI meer core-near (wat betekent dat Blender Core Code geassocieerd is met veranderingen in GUI-code) ?
  2. U kunt de Blender grafische gebruikersinterface (of een deel ervan) effectief implementeren in een andere applicatie die [favoriete-voorbeelden] talen gebruikt?

Waarom

Ik “zoek naar een concreet antwoord daarvoor omdat ik diep wil deelnemen aan de Inkscape-ontwikkeling, en de feitelijke grote problemen (voor gebruikers) zijn een nee volledig ontwikkelde GUI en geen CMYK-ondersteuning. Aan de andere kant is Blender eigenlijk super-geïndustrialiseerd (wat betekent dat het gebruik ervan een volledig PRO is – zonder nadelen voor bedrijven)

Inkscape-ontwikkelaars porteren al zijn codebasis (die is gebaseerd op C) naar C ++ en ze willen ook de gebruikersinterface opsplitsen in een aparte implementatie, om CSS-bestanden te kunnen gebruiken om het te ontwikkelen, en ik wil weten of het is mogelijk om Blender Codebase in het proces te benaderen.

Reacties

  • CLI is ook een gebruikersinterface. Het gebruikt alleen de opdrachtregel en geen mooie grafische afbeeldingen. Zowel CLI als GUI communiceren met " backend " die echt dingen doet. Aangezien Blender OpenSource is (en gelicentieerd als GPL) zou het geen probleem moeten zijn om er een nieuwe GUI voor te maken in een andere taal, maar dat hangt grotendeels af van de taal. Taal zou op de een of andere manier met de backend moeten communiceren. In de meeste talen is er meestal een manier om " " binaire bestanden in te pakken zodat ze als bibliotheken kunnen worden gebruikt, maar dat is taalspecifiek.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *