Comè realizzata linterfaccia utente grafica di Blender 3D 2.8x?

Voglio conoscere tutti i processi, il funzionamento, le lingue coinvolte, gli esempi di codice e gli URL da siti ufficiali con informazioni aggiornate se possibile.

NOTA: non sono un programmatore. Voglio solo sapere come e dove iniziare ad imparare.

Nove anni fa, un utente ha risposto :

Supponendo che tu stia parlando della serie 2.5 di Blender, al livello più basso, linterfaccia utente di Blender è implementata usando OpenGL (principalmente codificato in C). A questo è collegato un livello Python . Ciò significa che è abbastanza facile da modificare Linterfaccia utente di Blender utilizza Python senza sacrificare molto in termini di prestazioni.

E secondo il curriculum di risposte migliori sullo sviluppo della GUI e sul portab ility , ma non aggiornato (4 anni):

No. Non è possibile utilizzare il pacchetto GUI di Blender in altri programmi al di fuori di Blender. Il pacchetto dellinterfaccia utente grafica di Blender è progettato esclusivamente per essere utilizzato con Blender su varie piattaforme. Blender ha anche una finestra personalizzata manager. E i widget dellinterfaccia utente in Blender sono strettamente associati alla Data API di Blender (proprietà RNA / ID)

Cè GHOST (General Handy Operating System Toolkit), che può essere usato al di fuori di Blender, ma è di livello molto basso, fornendo solo accesso a finestre, mouse, tastiera, eventi ndof e tablet da X11 / MS-Windows / OS X. In realtà non disegna nulla; i pulsanti o il testo, ad esempio, sono gestiti dal codice di Blender.

Un anno fa , ma non tanto dettagliata quanto necessario:

Lintera interfaccia utente di Blender viene disegnata sullo schermo tramite OpenGL. La maggior parte dellinterfaccia utente è definito in C e alcune parti, come la maggior parte dei layout, in Python.

Quindi:

  1. Lo so che Blender può eseguire il rendering di scene in PC che non supportano il software Blender tramite i suoi binari – che accettano i comandi CLI (Command Line Interface) – perché molto tempo fa non potevo eseguire 2.79, ma 2.76 … Ma tramite SheepIt Render Farm puoi eseguire il rendering di altri file 2.79 senza problemi con la tua CPU e viceversa.
    • Il supporto della CLI rende la GUI di Blender indipendente (il che significa che la GUI effettua solo chiamate CLI ad ogni modifica) o è la GUI più vicina al nucleo (il che significa che il codice di base di Blender è associato alle modifiche nel codice della GUI) ?
  2. Puoi effettivamente implementare linterfaccia utente grafica di Blender (o parte di essa) in unaltra applicazione che usa linguaggi [preferiti-esempi]?

Perché

Sto cercando una risposta concreta per questo perché voglio partecipare profondamente allo sviluppo di Inkscape, e le sue effettive questioni principali (per gli utenti) non sono completamente GUI sviluppata e nessun supporto CMYK. Daltra parte, Blender è in realtà super industrializzato (il che significa che il suo utilizzo è totalmente PRO- senza CON- per le aziende)

Gli sviluppatori di Inkscape stanno portando tutto il suo codice base (che si basa da C) a C ++ e vogliono anche dividere linterfaccia utente in unimplementazione separata, in modo da poter utilizzare i file CSS per svilupparla, e voglio sapere se è possibile accedere a Blender Codebase durante il processo.

Commenti

  • Anche la CLI è uninterfaccia utente. Utilizza solo la riga di comando e non una grafica carina. Sia la CLI che la GUI comunicano con il " backend " che in realtà fa cose. Poiché Blender è OpenSource (e concesso in licenza come GPL) non dovrebbero esserci problemi a creare una nuova GUI in una lingua diversa, ma dipende principalmente dalla lingua. La lingua avrebbe bisogno di comunicare con il backend in qualche modo. Nella maggior parte delle lingue di solito esiste un modo per " avvolgere " binari in modo che possano essere usati come librerie, ma questo è specifico della lingua.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *