Hvordan fremstilles Blender 3D 2.8x grafisk brugergrænseflade?

Jeg ønsker at kende alle de processer, funktion, involverede sprog, eksempler på kode og URLer til officielle websteder med opdaterede oplysninger hvis det er muligt.

BEMÆRK: Jeg er ikke programmør. Jeg vil bare vide hvordan og hvor skal man begynde at lære.

For ni år siden svarede en bruger :

Forudsat at du taler om 2.5-serien af Blender på det laveste niveau, implementeres Blenders UI ved hjælp af OpenGL (primært kodet i C). Tilsluttet det er et Python-lag . Det betyder, at det er ret nemt at ændre Blenders brugergrænseflade ved hjælp af Python uden at ofre meget i vejen for ydeevne.

Og ifølge CVet bedre svar om dets GUI-udvikling og portab ility , men ikke opdateret (4 år):

Nej. Du kan ikke bruge Blenders GUI-pakke i andre programmer uden for Blender. Blender Grafisk brugergrænsefladepakke er udelukkende designet til at blive brugt med Blender på forskellige platforme. Blender har også et brugerdefineret vindue manager. Og UI-widgets i Blender er tæt forbundet med Blenders Data API (RNA / ID egenskaber)

Der er GHOST (General Handy Operating System Toolkit), som kan bruges uden for Blender, men det er meget lavt og giver kun vinduesadgang, mus, tastatur, ndof og tabletbegivenheder fra X11 / MS-Windows / OS X. Det tegner faktisk ikke noget; knapper eller tekst håndteres for eksempel af Blenders egen kode.

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

Hele brugergrænsefladen til Blender tegnes på skærmen via OpenGL. Det meste af brugerfladen er defineret i C, og nogle dele, ligesom de fleste layouts, i Python.

Så:

  1. Jeg ved at Blender kan gengive scener på pcer, der ikke understøtter Blender Software gennem dens binære filer – som accepterer CLI-kommandoer (Command Line Interface) – for længe siden kunne jeg ikke køre 2.79, men 2.76 … Men gennem SheepIt Render Farm du kunne gengive andre 2.79 filer uden problemer med din CPU og omvendt.
    • At CLI-understøttelse gør Blender GUI uafhængig (hvad betyder, at GUI bare foretager CLI-opkald ved hver ændring) eller er GUI mere kerne-næsten (hvad betyder, at Blender Core Code er forbundet med ændringer i GUI-kode) ?
  2. Du kan effektivt implementere Blender Graphical User Interface (eller en del af det) i en anden applikation, der bruger [favorit-eksempler] sprog?

Hvorfor

Jeg søger efter et konkret svar på det, fordi jeg gerne vil deltage dybt i Inkscape-udviklingen, og dens faktiske store problemer (For brugere) er et nej fuldt ud udviklet GUI og ingen CMYK-understøttelse. På den anden side er Blender faktisk superindustrialiseret (hvilket betyder, at dens anvendelse er en fuldstændig PRO- uden CONS for virksomheder)

Inkscape Developers porterer al sin codebase (som er baseret i C) til C ++, og de vil også opdele brugergrænsefladen til en separat implementering for at kunne bruge CSS-filer til at udvikle den, og jeg vil vide, om det er muligt at nærme sig Blender Codebase i processen.

Kommentarer

  • CLI er også en brugergrænseflade. Det bruger bare kommandolinje og ikke smuk grafik. Både CLI og GUI kommunikerer med " backend " der faktisk gør ting. Da Blender er OpenSource (og licenseret som GPL), bør der ikke være noget problem at oprette en ny GUI til den på et andet sprog, men det afhænger mest af sproget. Sprog skal på en eller anden måde kommunikere med backend. På de fleste sprog er der normalt en måde til " at indpakke " binære filer, så de kan bruges som biblioteker, men det er sprogspecifikt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *