代码之家  ›  专栏  ›  技术社区  ›  betamax

使用Blender和Twisted(python)进行服务器端渲染

  •  3
  • betamax  · 技术社区  · 15 年前

    我目前正在进行的项目基本上是拍摄一个图像,然后使用命令行中的Blender渲染一个视频。目前我正在使用 Twisted 处理这些请求,但肯定有一些事情我做错了,因为它不起作用,我希望它。您可以看到程序的jist here (我去掉了任何不必要的东西)。

    混合渲染是通过生成子进程(我知道这是扭曲的)来完成的 can handle processes ) python script 配置渲染并使用作为纹理提供的图像。

    程序需要能够处理尽可能多的连接。目前,子进程一次只进行一次渲染,但理想情况下,它将检查CPU/并行渲染的数量,并将数量调整到最佳值。每个渲染对用户来说都是自定义的,因此一旦用户渲染完成,他们就应该得到自己的渲染(一个avi文件)。

    我的问题是:扭曲是正确的选择吗?还有其他选择吗?如果没有,我的系统实现是否有缺陷?对此我将不胜感激!

    1 回复  |  直到 13 年前
        1
  •  3
  •   Grzegorz Wierzowiecki    13 年前

    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+芹菜可能更容易实现。

    Django: http://www.djangoproject.com/
    Celery: http://celery.github.com/celery/getting-started/introduction.html

    还有一个类似的教程:
    http://webcookies.org/blog/2009/09/10/rabbitmq-celery-and-django/