Cum este realizată interfața grafică de utilizator Blender 3D 2.8x?

Vreau să știu toate procesele, funcționarea, limbile implicate, exemplele de cod și adresele URL către site-uri oficiale cu informații actualizate dacă este posibil.

NOTĂ: Nu sunt programator. Vreau doar să știu cum și de unde să începeți să învățați.

Acum nouă ani, un utilizator a răspuns :

Presupunând că vorbiți despre seria 2.5 de Blender, la cel mai scăzut nivel, interfața utilizatorului Blender este implementată folosind OpenGL (codat în principal în C). Cuplat în acesta este un strat Python . Aceasta înseamnă că este destul de ușor de modificat UI-ul lui Blender utilizând Python fără a sacrifica mult în ceea ce privește performanța.

Și conform CV-ului răspunsuri mai bune despre dezvoltarea și portab-ul GUI ilitate , dar nu a fost actualizat (4 ani):

Nu. Nu puteți utiliza pachetul GUI al Blender în alte programe în afara Blender. Pachetul de interfață grafică utilizator Blender este conceput exclusiv pentru a fi utilizat cu Blender pe diferite platforme. Blender are și o fereastră personalizată manager. Și widget-urile UI din Blender sunt strâns cuplate cu API-ul de date Blender (proprietăți RNA / ID)

Există GHOST (General Handy Operating System Toolkit), care poate fi utilizat în afara Blender, dar are un nivel foarte scăzut, oferind doar acces la ferestre, mouse, tastatură, evenimente ndof și tablete de la X11 / MS-Windows / OS X. De fapt, nu atrage nimic; butoanele sau textul, de exemplu, sunt gestionate de codul propriu al lui Blender.

Acum un an , dar nu atât de detaliat ca o nevoie:

Întreaga interfață cu utilizatorul Blender este desenată pe ecran prin OpenGL. Majoritatea interfeței este definit în C și în unele părți, cum ar fi majoritatea aspectelor, în Python.

Deci:

  1. Știu că Blender poate reda scene în PC-uri care nu acceptă software-ul Blender prin binare – care acceptă comenzile CLI (Command Line Interface) – deoarece cu mult timp în urmă nu puteam rula 2.79, dar 2.76 … Dar prin SheepIt Render Farm puteți reda alte fișiere 2.79 fără probleme cu CPU-ul și vice versa.
    • Acel suport CLI face Blender GUI independent (ceea ce înseamnă că GUI face doar apeluri CLI la fiecare modificare) sau este GUI mai aproape de bază (ceea ce înseamnă că Blender Core Code este asociat cu modificări în codul GUI) ?
  2. Puteți implementa în mod eficient interfața grafică de utilizator Blender (sau o parte a acesteia) într-o altă aplicație care utilizează limbi [exemple-favorite]?

De ce

Caut un răspuns concret pentru asta, deoarece vreau să particip profund la dezvoltarea Inkscape, iar problemele sale majore actuale (Pentru utilizatori) nu sunt pe deplin GUI dezvoltat și fără suport CMYK. Pe de altă parte, Blender este de fapt super industrializat (ceea ce înseamnă că utilizarea sa este complet PRO – fără CON – pentru companii)

Inkscape Developers își portează toate bazele de cod (care se bazează în C) la C ++ și doresc, de asemenea, să împartă interfața cu utilizatorul la o implementare separată, pentru a putea utiliza fișiere CSS pentru ao dezvolta și vreau să știu dacă este posibil să abordați Blender Codebase în acest proces.

Comentarii

  • CLI este, de asemenea, o interfață cu utilizatorul. Folosește doar linia de comandă și nu grafică frumoasă. Atât CLI, cât și GUI comunică cu " backend " care de fapt face lucruri. Deoarece Blender este OpenSource (și este licențiat ca GPL) nu ar trebui să existe nicio problemă în crearea unei noi interfețe grafice pentru aceasta într-o altă limbă, dar asta depinde în mare parte de limbă. Limbajul ar trebui să comunice cu backend-ul cumva. În majoritatea limbilor există de obicei o modalitate de " de a împacheta " binare, astfel încât acestea să poată fi utilizate ca biblioteci, dar aceasta este specifică limbii.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *