Quiero conocer todos los procesos, funcionamiento, lenguajes involucrados, ejemplos de código y URL para sitios oficiales con información actualizada si es posible.
NOTA: No soy programador. Solo quiero saber cómo y dónde empezar a aprender.
Hace nueve años, un usuario respondió :
Suponiendo que estás hablando de la serie 2.5 de Blender, en el nivel más bajo, la interfaz de usuario de Blender se implementa usando OpenGL (codificado principalmente en C). Conectada a ella hay una capa de Python . Esto significa que es bastante fácil de modificar La interfaz de usuario de Blender usa Python sin sacrificar mucho en cuanto al rendimiento.
Y de acuerdo con el resumen de mejores respuestas sobre su desarrollo de GUI y portab ility , pero no actualizado (4 años):
No. No puede usar el paquete GUI de Blender en otros programas fuera de Blender. El paquete de interfaz gráfica de usuario de Blender está diseñado exclusivamente para usarse con Blender en varias plataformas. Blender también tiene una ventana personalizada administrador. Y los widgets de IU en Blender están estrechamente acoplados con la API de datos de Blender (propiedades de ID / ARN)
Existe GHOST (General Handy Operating System Toolkit), que se puede usar fuera de Blender, pero es de muy bajo nivel, solo brinda acceso a la ventana, mouse, teclado, ndof y eventos de tableta desde X11 / MS-Windows / OS X. En realidad, no dibuja nada; los botones o el texto, por ejemplo, son manejados por el propio código de Blender.
Hace un año , pero no tan detallado como una necesidad:
Toda la interfaz de usuario de Blender se dibuja en la pantalla a través de OpenGL. La mayor parte de la interfaz definido en C, y algunas partes, como la mayoría de los diseños, en Python.
Entonces:
- Lo sé que Blender puede renderizar escenas en PC que no soportan el software Blender a través de sus binarios – que aceptan comandos CLI (Command Line Interface) – porque hace mucho tiempo no podía ejecutar 2.79, pero 2.76 … Pero a través de SheepIt Render Farm puedes renderizar otros archivos 2.79 sin problemas con tu CPU y viceversa.
- Esa compatibilidad con CLI hace que la GUI de Blender sea independiente (lo que significa que la GUI solo hace llamadas a la CLI en cada cambio) o es la GUI más cercana al núcleo (lo que significa que Blender Core Code está asociado con cambios en el código de la GUI) ?
- ¿Puede implementar eficazmente la interfaz gráfica de usuario de Blender (o parte de ella) en otra aplicación que utilice lenguajes [ejemplos favoritos]?
Por qué
Estoy buscando una respuesta concreta para eso porque quiero participar profundamente en el desarrollo de Inkscape, y sus principales problemas reales (para los usuarios) no son completamente GUI desarrollada y sin soporte CMYK.Por otro lado, Blender está realmente súper industrializado (lo que significa que su uso es totalmente PRO, sin CONs, para empresas)
Los desarrolladores de Inkscape están portando todo su código base (que se basa en C) a C ++ y también quieren dividir la interfaz de usuario en una implementación separada, para poder usar archivos CSS para desarrollarla, y quiero saber si es posible acercarse a Blender Codebase en el proceso.
Comentarios
- CLI también es una interfaz de usuario. Solo usa línea de comando y no gráficos bonitos. Tanto la CLI como la GUI se comunican con el " backend " que realmente hace cosas. Dado que Blender es de código abierto (y tiene licencia GPL), no debería haber problemas para crear una nueva GUI para él en un idioma diferente, pero eso depende principalmente del idioma. El lenguaje tendría que comunicarse con el backend de alguna manera. En la mayoría de los lenguajes suele haber una forma de " encapsular " binarios para que se puedan usar como bibliotecas, pero eso es específico del idioma.