Hvordan er Blender 3D 2.8x grafisk brukergrensesnitt laget?

Jeg vil vite alle prosessene, funksjonene, involverte språk, eksempler på kode og nettadresser til offisielle nettsteder med oppdatert informasjon hvis mulig.

MERK: Jeg er ikke programmerer. Jeg vil bare vite hvordan og hvor du skal begynne å lære.

For ni år siden svarte en bruker :

Forutsatt at du snakker om 2.5-serien av Blender, på det laveste nivået, blir Blenders brukergrensesnitt implementert ved hjelp av OpenGL (primært kodet i C). Hektet inn i det er et Python-lag . Dette betyr at det er ganske enkelt å endre Blenders UI bruker Python uten å ofre mye i veien for ytelse.

Og ifølge CV bedre svar om GUI-utvikling og portab ility , men ikke oppdatert (4 år):

Nei. Du kan ikke bruke Blenders GUI-pakke i andre programmer utenfor Blender. Blender Grafisk brukergrensesnittpakke er utelukkende designet for å brukes med Blender på forskjellige plattformer. Blender har også et tilpasset vindu manager. Og brukergrensesnitt-widgetene i Blender er tett kombinert med Blenders Data API (RNA / ID-egenskaper)

Det er GHOST (General Handy Operating System Toolkit), som kan brukes utenfor Blender, men det er veldig lavt, og gir bare vindustilgang, mus, tastatur, ndof og nettbretthendelser fra X11 / MS-Windows / OS X. Det tegner faktisk ikke noe; knapper eller tekst, for eksempel, håndteres av Blenders egen kode.

For et år siden , men ikke så detaljert som et behov:

Hele brukergrensesnittet til Blender er tegnet på skjermen via OpenGL. Det meste av brukergrensesnittet er definert i C, og noen deler, som de fleste layoutene, i Python.

Så:

  1. Jeg vet at Blender kan gjengi scener på PC-er som ikke støtter Blender-programvaren gjennom binærfiler – som godtar CLI-kommandoer (Command Line Interface) – for lenge siden kunne jeg ikke kjøre 2,79, men 2,76 … Men gjennom SheepIt Render Farm du kan gjengi andre 2.79 filer uten problemer med CPUen din og omvendt.
    • At CLI-støtte gjør Blender GUI uavhengig (hva betyr at GUI bare lager CLI-samtaler ved hver endring) eller er GUI mer kjernetett (hva betyr at Blender Core Code er assosiert med endringer i GUI-kode) ?
  2. Du kan effektivt implementere Blender Graphical User Interface (eller deler av det) i et annet program som bruker [favoritteksempler] språk?

Hvorfor

Jeg sver etter et konkret svar på det fordi jeg ønsker å delta dypt i Inkscape-utviklingen, og dens faktiske hovedproblemer (for brukere) er et nei fullt ut utviklet GUI og ingen CMYK-støtte. På den annen side er Blender faktisk superindustrialisert (noe som betyr at bruken er helt PRO- uten CONS for bedrifter)

Inkscape Developers porterer all sin kodebase (som er basert i C) til C ++, og de vil også dele brukergrensesnittet til en separat implementering, for å kunne bruke CSS-filer til å utvikle det, og jeg vil vite om det er mulig å nærme seg Blender Codebase i prosessen.

Kommentarer

  • CLI er også et brukergrensesnitt. Den bruker bare kommandolinje, og ikke pen grafikk. Både CLI og GUI kommuniserer med " backend " som faktisk gjør ting. Siden Blender er OpenSource (og lisensiert som GPL), bør det ikke være noe problem å opprette en ny GUI for den på et annet språk, men det avhenger stort sett av språket. Språk vil trenge å kommunisere med backend på en eller annen måte. På de fleste språk er det vanligvis en måte å " pakke inn " binærfiler, slik at de kan brukes som biblioteker, men det er språkspesifikt.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *