现在的位置: 首页 > 综合 > 正文

梦工厂动画与Qt

2013年01月20日 ⁄ 综合 ⁄ 共 1675字 ⁄ 字号 评论关闭

新年快乐! 新年新气象,2011年的第一篇博文选择了一个比较轻松的话题,与大家分享:

去年在德国举行的Qt开发者大会邀请了梦工厂的研发总监,讲述了一个梦工厂与Qt的美丽故事.....

 

演讲的主题:梦工厂动画背后的故事

image

 

梦工厂是一家著名的电影制作发行公司,塑造了很多经典、耳熟能详的形象,比如怪物史莱克、功夫熊猫、变形金刚等等。

image

 

众所周知,梦工厂是一个电影制造公司,但从某种意思上讲,他也是一家科技公司。因为其动画电影是100%由设计、开发人员通过电脑制作完成的。 现在,我来结合附图向大家介绍一下简单介绍一下3D动画的制作环节,整个CG动画制造流程很复杂,其中最重要的三个环节是材质、灯光与渲染。这三道工序对画面的效果起到了关键的作用。首先看看表明纹理和材质:这道工序来决定3D物体表面应该表征什么物体。如下图这个镖头大汉,他的皮肤(包括雀斑)、毛发、衣帽都要做出各自不同的质感,才给人栩栩如生的感觉。

 

image 

灯光与渲染:这两道工序往往是3D动画设计的最后也是最重要的工序。灯光渲染程序要计算我们在场景中添加的每一个光源对物体的影响。和真实世界中光源不同的是,渲染程序往往要计算大量的辅助光源(梦工厂每幅场景使用到成百上千的个体光源元素)。因此灯光与渲染工序计算量海量,占用了整个计算资源的90%(梦工厂采用拥有2万个内核的超级计算机进行大规模计算)

image

 

灯光组的工作包括设置光源、布光、选择配合材质的光源效果、运用冷暖光调来表现场面或人物等从而使画面即可信,又具备必要的感情色彩,如下图:

 

image

接下来,介绍一下的梦工厂的开发环境以及为什么要选择Qt。

3D动画电影的制作周期漫长,一部时长九十分钟左右的梦工厂动画电影,前后需要大概四年的时间。全球共250名软件工程师参与。因此选择合适的开发工具,对加速电影制作开发流程非常重要。更重要的制作最逼真、最让人震撼的画质,当然要选用最优秀的开发工具。

image 

梦工厂研发团队的开发环境也是比较复杂的。软件开发环境包括C++, Python和Java。(后面我会介绍Qt如何在其中工作),由于需要大量的计算,它们使用了Unix服务器和工作站来进行超级计算或并行计算,客户端选用Linux以及高配的图形单元处理器(GPU)。

image

梦工厂已经用Qt来做动画开发,并且正在将越来越多的开发任务迁移到Qt平台,主要的原因有(如下两幅图):

  • Qt除了强大的GUI开发设计支持,经过了十几年的发展。其他功能也十分丰富,且扩展性强;
  • Qt和Qt Quick帮助其减少了很多底层繁冗的技术工作,让设计、开发人员集中精力进行创造;
  • Qt对Python的支持(当然Qt对其开发环境C++,Java也提供了很好的支持);
  • 杰出的文档、培训让梦工厂的员工很Happy。

image

image 

上一页提到Qt的功能很强大,对梦工场来说Qt技术满足了它们对下一代动画技术的需求。如下图所示,这里我来列一下,梦工场所列出的下一代动画技术Qt相对应所支持的:

image

交互式的所见即所得的动画开发

    ==> Qt Quick/QML,PyQt支持;Qt Designer对WYSWYG的支持

    ==> Qt /Qt Quick对2D、3D界面设计的强大支持;支持OpenGL

    ==> Qt的跨平台特,Linux, UNIX支持

并行光线处理技术,快速渲染技术 

    ==> Qt 对多核硬件的并行计算支持;丰富的线程安全的类和确保线程安全的机制

    ==> Qt对OpenGL以及图形硬件GPU的全面支持,性能也不断再优化

Qt3D的文档:

http://doc.qt.nokia.com/qt3d-snapshot/index.html

:本文所有附图来源于Qt 2010年开发者大会梦工场动画总监所做的演讲。

视频连接:

http://qt.nokia.com/developer/learning/online/talks/developerdays2010/keynotes/behind-the-scenes-at-dreamworks-animation-making-the-apps-that-make-the-movies

抱歉!评论已关闭.