Como a Interface Gráfica do Usuário do Blender 3D 2.8x é feita?

Quero saber todos os processos, funcionamento, linguagens envolvidas, exemplos de código e URLs para sites oficiais com informações atualizadas se possível.

NOTA: Não sou um programador. Só quero saber como e onde começar a aprender.

Nove anos atrás, um usuário respondeu :

Supondo que você esteja falando sobre a série 2.5 do Blender, no nível mais baixo, a IU do Blender é implementada usando OpenGL (codificado principalmente em C). Conectado a isso está uma camada Python . Isso significa que é bastante fácil de modificar IU do Blender usando Python sem sacrificar muito em termos de desempenho.

E de acordo com o currículo de melhores respostas sobre seu desenvolvimento de GUI e portab ility , mas não atualizado (4 anos):

Não. Você não pode usar o pacote de GUI do Blender em outros programas fora do Blender. O pacote de Interface Gráfica do Usuário do Blender é exclusivamente projetado para ser usado com o Blender em várias plataformas. O Blender também tem uma janela personalizada gerenciador. E os widgets da IU no Blender são fortemente acoplados à API de dados do Blender (propriedades de RNA / ID)

Há GHOST (General Handy Operating System Toolkit), que pode ser usado fora do Blender, mas é de nível muito baixo, fornecendo apenas acesso à janela, mouse, teclado, ndof e eventos de tablet do X11 / MS-Windows / OS X. Na verdade, ele não desenha nada; botões ou texto, por exemplo, são controlados pelo próprio código do Blender.

Um ano atrás , mas não tão detalhado quanto a necessidade:

Toda a interface de usuário do Blender é desenhada na tela via OpenGL. A maior parte da IU é definido em C, e algumas partes, como a maioria dos layouts, em Python.

Então:

  1. Eu sei que o Blender pode renderizar cenas em PCs que não suportam o software Blender através de seus binários – que aceitam comandos CLI (Command Line Interface) – porque há muito tempo eu não conseguia rodar 2.79, mas 2.76 … Mas através de SheepIt Render Farm você poderia renderizar outros arquivos 2.79 sem problemas com sua CPU e vice-versa.
    • Esse suporte CLI torna a GUI do Blender independente (o que significa que a GUI está apenas fazendo chamadas CLI a cada mudança) ou é a GUI mais próxima do núcleo (o que significa que o Blender Core Code está associado a mudanças no código da GUI) ?
  2. Você efetivamente pode implementar a Interface Gráfica do Usuário do Blender (ou parte dela) em outro aplicativo que usa linguagens de [exemplos favoritos]?

Por que

Estou procurando por uma resposta concreta para isso porque quero participar profundamente do desenvolvimento do Inkscape, e seus principais problemas reais (para usuários) são totalmente não desenvolvido GUI e sem suporte CMYK. Por outro lado, o Blender é realmente super industrializado (o que significa que seu uso é totalmente PRO- sem CONs- para empresas)

Desenvolvedores do Inkscape estão portando toda a sua base de código (que é baseado em C) para C ++ e eles querem também dividir a interface do usuário em uma implementação separada, a fim de poder usar arquivos CSS para desenvolvê-la, e eu quero saber se é possível abordar o Blender Codebase no processo.

Comentários

  • CLI também é uma interface de usuário. Ele apenas usa linha de comando, e não gráficos bonitos. A CLI e a GUI se comunicam com o " backend " que realmente faz coisas. Visto que o Blender é OpenSource (e licenciado como GPL), não deve haver nenhum problema em criar uma nova GUI para ele em um idioma diferente, mas isso depende principalmente do idioma. A linguagem precisaria se comunicar com o back-end de alguma forma. Na maioria das linguagens, geralmente há uma maneira de " empacotar " binários para que possam ser usados como bibliotecas, mas isso é específico da linguagem.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *