Blender 3D 2.8xグラフィカルユーザーインターフェースはどのように作られていますか?

すべてのプロセス、機能、関連する言語、コードの例、およびURLを知りたい可能であれば更新された情報を含む公式サイト。

注:私はプログラマーではありません。方法と方法を知りたいだけです。学習を開始する場所。

9年前、ユーザーが応答しました

2.5シリーズのBlenderについて話しているとすると、最下位レベルでは、BlenderのUIはOpenGLを使用して実装されます(主に C)それに接続されているのはPythonレイヤーです。これは、変更がかなり簡単であることを意味します。パフォーマンスをそれほど犠牲にすることなくPythonを使用するBlenderのUI。

そしての再開によるとGUI開発とportabに関するより良い応答能力、ただし更新されていない(4歳):

いいえ。 Blender以外の他のプログラムでBlenderのGUIパッケージを使用することはできません。 Blenderグラフィカルユーザーインターフェイスパッケージは、さまざまなプラットフォームのBlenderで使用するためだけに設計されています。Blenderにはカスタムウィンドウもあります。そして、BlenderのUIウィジェットはBlenderのデータAPI(RNA / IDプロパティ)と緊密に結合されています

Blenderの外部で使用できるGHOST(General Handy Operating System Toolkit)がありますが、それは非常に低レベルであり、X11 / MS-Windowsからのウィンドウアクセス、マウス、キーボード、ndof、およびタブレットイベントのみを提供します/ OSX。実際には何も描画しません。たとえば、ボタンやテキストは、Blenderの独自のコードによって処理されます。

1年前、ただし必要なほど詳細ではありません:

Blenderのユーザーインターフェース全体がOpenGLを介して画面に描画されます。UIのほとんどはCで定義されており、ほとんどのレイアウトと同様に、Pythonでいくつかの部分が定義されています。

つまり:

  1. わかっていますそのBlenderは、BlenderソフトウェアをサポートしていないPCで、CLI(コマンドラインインターフェイス)コマンドを受け入れるバイナリを介してシーンをレンダリングできます。これは、ずっと前に2.79を実行できなかったためですが、2.76 …しかしトラフ SheepIt Render Farm は、CPUに問題なく、他の2.79ファイルをレンダリングできます。その逆も可能です。
    • CLIのサポートにより、Blender GUIが独立する(GUIが変更のたびにCLI呼び出しを行うことを意味する)か、GUIがよりコアになります(BlenderコアコードがGUIコードの変更に関連付けられることを意味します) ?
  2. [お気に入りの例]言語を使用する別のアプリケーションにBlenderグラフィカルユーザーインターフェイス(またはその一部)を効果的に実装できますか?

なぜ

Inkscapeの開発に深く参加したいので、具体的な答えを求めています。実際の主要な問題(ユーザー向け)は完全ではありません。開発されたGUIであり、CMYKサポートはありません。一方、Blenderは実際には非常に工業化されています(つまり、ビジネス向けのCONなしで完全にPROを使用できます)

Inkscape開発者はすべてのコードベースを移植しています(はC)からC ++に基づいており、CSSファイルを使用して開発できるようにするために、ユーザーインターフェイスを別の実装に分割したいと考えています。その過程でBlenderCodebaseにアプローチすることは可能です。

コメント

  • CLIもユーザーインターフェースです。コマンドラインを使用するだけで、きれいなグラフィックは使用しません。 CLIとGUIはどちらも、実際に処理を行う"バックエンド"と通信します。 Blenderはオープンソース(そしてGPLとしてライセンスされている)なので、別の言語で新しいGUIを作成するのに問題はないはずですが、それは主に言語に依存します。言語はどういうわけかバックエンドと通信する必要があります。ほとんどの言語では、通常、"バイナリを"ラップしてライブラリとして使用できるようにする方法がありますが、これは言語固有です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です