摘要:
随着影视产业的快速发展,电影的画面正变得越来越绚丽,逼真.但是有很多的电影画面无法通过正常的拍摄完成,只能通过后期的建模,特效制作,渲染来完成.电影分辨率的提高带来的单帧渲染时间的增长,以普通的4K电影为例,使用主流的工作站,渲染一帧的时间从几小时到十几个小时,遇上光源众多,场景复杂,材质特殊的场景甚至会到几十个小时.而且现在许多的电影都是3D效果,这时候就得分为左右眼分别进行渲染.虽然单机计算能力也在快速增长,但已经无法满足电影产业的需求,于是集群渲染渲染开始变得流行,集群渲染系统通常被称为渲染农场.目前国内外构建的渲染平台大都基于普通的小型集群,同时也很少去考虑调度策略,更多的是由工作人员进行手动划分资源和分配任务,并且没有针对渲染这一特殊的应用进行文件读写的优化,只是每一个结点单独的渲染一帧.并没有考虑渲染这一应用的特性:渲染既是一个高密度计算型的应用,也是一个数据密集型的应用,而且内存的占用率也很高,而且同一个镜头的渲染任务存在着大量的共享数据.考虑到渲染的这些特性,基于超级计算机来搭建渲染平台就特别合适,因为超级计算机的结点间互访的能力远远地强于集群.本文主要工作是在国产超级计算机的环境下,搭建一个高效能的渲染平台.集群的使用具有一定的复杂性,于是我们基于GridSphere框架开发了一个渲染系统的门户网站,门户网站的设计参考网络渲染的一般流程:上传场景描述文件,提交渲染作业,查看渲染过程,下载结果.门户网站的设计还能隐藏集群操作,完成对用户的管理,使用计费等.同时对镜头级别的任务进行第一级的调度.本文针对同一镜头内的渲染任务存在大量的共享数据的特点,重新设计并实现了渲染单元和数据管理软件,渲染单元为数据管理软件的运行提供了一个框架,而且直接调度渲染引擎,数据管理软件对这些共享数据的读写进行优化,减少文件服务器的访问次数和访问数据量,避免I/O拥堵,而且给引擎提供透明的访问.同时完成镜头内渲染任务的第二级调度,从而实现整体系统多级调度,以此适应超大规模的渲染任务并发.渲染单元与数据管理软件的设计是为了使渲染引擎能够更加高效的运行在超级计算机这一平台上.本文针对整个系统进行往国产超级计算机展开了移植工作.系统的开发是山东大学高性能中心进行,但是超级计算机在操作系统,处理器架构和库文件等方面和普通的集群具有较大的差异性,所以我们在无锡超级计算中心的太湖之光和广州超级计算中心的天河二号进行了移植工作,并分别进行了大于30万核心并行规模的性能测试.本文中提到的渲染引擎是由山东大学自主研发的符合RenderMan规范的渲染引擎RenderWing.本文所做的工作为国家863项目《真实感动漫渲染系统应用与研究》的一部分.
展开