ブレンダーとツイスト(Python)を使用したサーバー側のレンダリング
質問
私が現時点で取り組んでいるプロジェクトは、基本的に画像を取り入れ、コマンドラインからのBlenderを使用してビデオをレンダリングします。現時点で私は使用しています ねじれた リクエストに対処するために、しかし、私がそれを望んでいる方法が機能していないので、私が間違っていることは確かにあります。プログラムのJistを見ることができます ここ (私は不必要なものを剥ぎ取りました)。
ブレンダーレンダーはサブプロセスを産むことによって行われます(私はねじれたことを知っています プロセスを処理できます)とともに Pythonスクリプト レンダリングを構成し、提供された画像をテクスチャとして使用します。
プログラムは、できるだけ多くの接続を処理できる必要があります。現時点では、サブプロセスは一度に1つのレンダリングを行っていますが、理想的にはCPU/並列レンダリングの数を確認し、数を最適に調整します。各レンダリングはユーザーにとってカスタムであるため、ユーザーがレンダリングが完了すると、レンダリングを取り戻す必要があります(AVIファイル)。
私の質問は、Twistedはこれに正しい選択ですか?他にオプションはありますか?そうでない場合、システムの実装に欠陥がありますか?これについての考えや意見に感謝します!
解決
Is Twisted the right choice for this?
- 多分。
Are there other options?
- はい。
If not, is my implementation of the system flawed?
- はい。あなたのサブプロセスの呼び出しがブロックしているように見えます: p.wait()
ねじれてやろうとしているように聞こえることをすることは可能ですが、あなたはそれから非常に長い道のりです。
Webフロントエンドでレート制御された非同期タスクキューが必要です。
あなたが持っているのは、送信されたジョブが終了するまでHTMLを返さない単一のスレッド「サイト」の単一ページです。
これはねじれて可能です。ただし、Django + Celeryを使用して実装する方が簡単です。
Django: http://www.djangoproject.com/
セロリ: http://celery.github.com/celery/getting-started/introduction.html
同様の目的のためのチュートリアル:
http://webcookies.org/blog/2009/09/10/rabbitmq-celery-and-django/