elvish ray原型系统架构及实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
elvish ray原型系统架构及实现

elvish ray原型系统的架构及实现 Len3d 【摘要】本文详细论述了elvish ray渲染器原型系统(以下简称原型)的架构及实现,包括原型的光线追踪框架、自适应采样、半蒙特卡罗算法与多线程并行机制,以及如何对REYES算法进行改进以集成到该框架中,并讨论了原型中全局照明等功能所使用的相关算法及实现细节。随后阐述了如何基于原型,重新设计一个更优雅与完善的架构,包括任意几何体的光线追踪、几何实例化与大场景处理的统一框架,以及elvish ray独特的着色语言接口的实现,给出了该架构的详细描述及重写elvish ray新版本(以下简称新版)过程中具体问题的解决方法。 【关键词】光线追踪;全局照明;REYES;渲染器 引言 照片真实感图像的生成一直是计算机图形学的研究热点,而真实世界具有非常复杂的几何结构和光照环境,想要令人信服的模拟其效果往往涉及巨大的数据量和计算量,必须通过一个统一、高效、灵活的渲染架构及其中包含的各种实用的算法才能克服该困难。而当今,对真实感图形的需求已经深入许多领域,包括电影特效工业、建筑与室内设计行业、工业设计、游戏与虚拟现实行业等。elvish ray渲染器正是为了满足这样的需求而诞生的。笔者于2006年9月开始编写该渲染器项目,2007年6月发布为开源项目,经过一年多的开源开发,2008年8月基本完成了原型,将开发重点转移到完全重写的新版本,2009年2月,新版本顺利运行,目前还在继续开发中。虽然现在市场上已经存在不少非常强大的商业渲染器,包括Pixar’s RenderMan, mental ray, V-Ray等,但是这些渲染器并不开放源代码,我们仅能使用,并不能从根本上拥有渲染的核心技术,因此不能通过对核心技术的掌握,提供更大的灵活性与更高层次的创造力,elvish ray项目的意义正是在于弥补了这个缺憾。 elvish ray拥有一个混合的架构,将各种主流的渲染技术和算法集成在一个统一的框架中,并对原始算法做了调整和改进,以适应elvish ray独特的架构。本文第2节介绍了elvish ray中用到的主要算法,第3节介绍了elvish ray的渲染管线与光线追踪框架,第4节描述了REYES算法是如何集成到现有管线中的,第5节描述了全局照明的实现,第6节描述了我们重写后的新版本的架构设计,第7节介绍了系统的使用方法、跨平台设计与开发工具,第8节是现有实现的测试结果与比较,第9节展望了未来可能的改进,最后第10节是结论。 相关工作 渲染方程 Kajiya提出的渲染方程[1]给出了光能在场景中不断传播所产生的全局照明现象的数学描述。渲染方程可以表示为在任意点对场景中所有表面发射出的光能的积分: (2-1) 其中是当前采样点,是场景中所有表面的集合,是中的任意点,是处光能出射的方向,是到的入射方向,是处表面法线与方向的夹角,是处的微面元,是两点间的几何遮挡函数,是表面的BRDF,是表面上某点沿某一方向的出射光能。 分布式光线追踪算法 Cook等提出的分布式光线追踪算法[2]利用蒙特卡罗积分来求解渲染方程。这项技术提供了一个统一而简单的框架来模拟面积光源、运动模糊、景深、模糊反射/折射等效果。 分布式光线追踪允许按照一定的分布规律在空间中分布一定数量的光线,通过加权平均这些光线的采样结果来得到最终样本的值。例如光线可以在时间轴上分布以生成运动模糊效果,在摄像机镜头上分布以生成景深效果,根据BRDF分布以产生模糊反射效果等。 Cook等并不是对图象空间的一个采样点发射数条光线,而选择每个采样点仅发射一条光线,并在其递归光线追踪过程中仅派生一条光线,而通过增加图象空间的样本数目来处理走样问题。 Photon Mapping Jensen等提出的用于模拟全局照明效果的Photon Mapping算法[3]是一种典型的两步求解技术,并且所得的全局照明解不依赖于场景几何。算法在第一遍时,从光源分布式的向场景中发射一定数量的携带了光源一部分光能的光子,在场景中经过表面的多次反射/透射,最终生成一个记录了场景大致光能分布的点集,称为Photon Map。Photon Map被储存为类似堆结构的kd-tree形式,在第二遍时供着色点快速查询当前位置的间接照明光能。该算法可以将渲染方程中不同的照明分量分多次计算并储存在多个独立的Photon Map中,使用起来十分灵活。 Irradiance Gradients 如果利用蒙特卡罗方法为每个采样点计算间接照明,计算量往往非常巨大,所以一个可行的优化是只对采样点中的一部分计算间接照明光亮度,而对其余采样点进行插值,当场景中的间接照明光亮度变化较为平缓时,这种方法可以非常显著的减少渲染时间,并取得同样好的结果。Ward与Heckbert提出了基于

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档