论文部分内容阅读
随着影视动画行业的迅速发展,三维渲染的应用越来越广泛。人们不断追求越来越真实的渲染效果,全局光照技术被越来越多的研究与应用。在现实世界中,太阳光经过无数次的反射和折射照亮世界,很多物体被邻近的其他物体所反射或折射的光线照亮,这部分光照被称为间接光照光。全局光照效果是指由直接光照和间接光照共同作用的效果。全局光照有多种实现方法,皮克斯、梦工厂等制作的多部优秀动漫作品采用了基于点烘焙的全局光照方法,支持半透明面的次表面散射、漫反射面的色溢及环境遮挡等视觉效果。但基于点的方法也存在若干问题,主要体现于:点缓存需要额外的存储空间,对于大规模复杂场景,额外存储空间将影响该方法的效率;点缓存方法是一种非物理的全局光照方法,不同视觉效果的渲染更多依赖于设计人员的经验与技巧。在点缓存数据组织与管理,以及点缓存数据处理方法等方面,存在大量问题需要研究。本文围绕基于点烘焙的全局光照方法,主要由三个方面展开研究与实现,主要工作包括:核外基于点的一致性全局光照渲染方法的研究与分析。当渲染大规模场景时,生成的点云文件远远大于内存,我们参考核外基于点的一致性全局光照渲染方法[1],对该项功能进行扩充,验证渲染结果的正确性,并将渲染效率与商业渲染器PRman进行对比分析,为算法的进一步研究和优化打下基础。基于点缓存的双向面烘焙方法,处理后向面产生的色溢效果。点渲染过程中,背向视点的面难以正确高效烘焙,导致其无法对周围的面产生色溢效果,商业渲染引擎3DeLight等在采用点渲染实现色溢时也存在该类问题。本文提出双向面的烘焙的解决方案,如果面的一侧朝向灯光就烘焙该面的颜色、法向等信息,如果面的两侧均被灯光照亮就烘焙双面,并与Maya、3Dmax集成,实现后向面产生色溢效果的正确渲染。基于点的多次间接光照方法。模拟光线多次反弹,将光线多次反弹后的光照值在烘焙点文件时迭代更新,随着光线多次反弹场景亮度增加,可以展示场景中更多的细节,本文基于能量守恒定律对光线反弹的合理次数进行分析讨论。本文的工作是国家863课题《真实感动漫渲染系统研究与应用》的一部分,实验平台为课题开发的符合Renderman规范的真实感渲染引擎Bleman,基于点的渲染是Bleman渲染引擎的重要组成部分。通过本文的工作,使得Bleman引擎通过大规模点的渲染调度方式支持复杂场景的点渲染,集成Bleman渲染引擎能够很好的支持Maya、3Dmax等三维建模软件的全局光照渲染。双向面烘焙方法实现在不增加烘焙点的情况下渲染更加真实的全局光照效果。最后我们分析了本文工作的不足之处并对未来研究工作进行展望。