Hur skapas Blender 3D 2.8x grafiskt användargränssnitt?

Jag vill veta alla processer, funktion, inblandade språk, exempel på kod och webbadresser till officiella webbplatser med uppdaterad information om möjligt.

OBS: Jag är inte programmerare. Jag vill bara veta hur och var man ska börja lära sig.

För nio år sedan svarade en användare :

Förutsatt att du pratar om 2.5-serien av Blender, på den lägsta nivån, implementeras Blenders användargränssnitt med OpenGL (främst kodad i C). Hakat i det är ett Python-lager . Det betyder att det är ganska enkelt att ändra Blenders UI använder Python utan att offra mycket i vägen för prestanda.

Och enligt CV bättre svar om dess GUI-utveckling och portab ility , men inte uppdaterad (4 år):

Nej. Du kan inte använda Blenders GUI-paket i andra program utanför Blender. Blender Grafiskt användargränssnittspaket är endast utformat för att användas med Blender på olika plattformar. Blender har också ett anpassat fönster manager. Och UI-widgetarna i Blender är tätt kopplade till Blenders Data API (RNA / ID-egenskaper)

Det finns GHOST (General Handy Operating System Toolkit) som kan användas utanför Blender, men det är väldigt lågt och ger bara fönsteråtkomst, mus, tangentbord, ndof och surfplattor från X11 / MS-Windows / OS X. Det ritar faktiskt ingenting; knappar eller text hanteras till exempel av Blenders egen kod.

För ett år sedan , men inte så detaljerat som ett behov:

Blenders hela användargränssnitt ritas på skärmen via OpenGL. Det mesta av användargränssnittet är definierad i C, och vissa delar, som de flesta layouter, i Python.

Så:

  1. Jag vet att Blender kan återge scener på datorer som inte stöder Blender Software genom dess binära filer – som accepterar CLI-kommandon (Command Line Interface) – för länge sedan kunde jag inte köra 2,79, men 2,76 … Men genom SheepIt Render Farm du kan göra andra 2.79-filer utan problem med din CPU och vice versa.
    • Att CLI-stöd gör Blender GUI oberoende (vad betyder att GUI bara gör CLI-samtal vid varje ändring) eller är GUI mer kärna nästan (vad betyder att Blender Core Code är associerat med förändringar i GUI-kod) ?
  2. Du kan effektivt implementera Blender Graphical User Interface (eller en del av det) i en annan applikation som använder [favorit-exempel] språk?

Varför

Jag söker efter ett konkret svar för det eftersom jag vill delta djupt i Inkscape-utvecklingen, och dess faktiska stora frågor (för användare) är ett nej helt utvecklat GUI och inget CMYK-stöd. Å andra sidan är Blender faktiskt superindustriellt (vilket innebär att dess användning är helt PRO- utan CONS för företag)

Inkscape Developers portar all sin kodbas (som är baserad i C) till C ++ och de vill också dela användargränssnittet till en separat implementering, för att kunna använda CSS-filer för att utveckla det, och jag vill veta om det är möjligt att närma sig Blender Codebase under processen.

Kommentarer

  • CLI är också ett användargränssnitt. Det använder bara kommandoraden och inte vacker grafik. Både CLI och GUI kommunicerar med " backend " som faktiskt gör saker. Eftersom Blender är OpenSource (och licensierad som GPL) borde det inte vara något problem att skapa ett nytt GUI för det på ett annat språk, men det beror mest på språket. Språket skulle behöva kommunicera med backend på något sätt. På de flesta språk finns det vanligtvis ett sätt att " slå in " binärer så att de kan användas som bibliotek, men det är språkspecifikt.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *