首页 > 其他 > 详细

简单实现了一下类似环境映射的光照效果渲染

时间:2014-01-16 21:12:22      阅读:402      评论:0      收藏:0      [点我收藏+]

    之前的渲染框架只支持点光源和面光源,所以很难模拟自然环境光的渲染,于是现在简单地加入了一个类似environment map的环境光照的渲染。实际上环境映射(environment mapping)在实时渲染中经常被用到,主要用来模拟光滑表面对周围环境的反射,如镜子、光亮漆面的金属等等。但环境映射有两个很强的假设:1.所有入射光都来自无限远处;2.被渲染的物体必须是凸的,不能有自反射。这两个条件在实际中是很难达到的,当然这是在实时渲染框架下的限制。在光线跟踪引擎下,我们可以轻松地突破这两个条件,当然代价就是效率的降低。在path tracing中,我们还可以对漫反射表面进行环境映射积分,从而达到处理漫反射表面的目的(这对于通常意义下的环境映射是不能完成的)。这里我的做法是,使用类似球形环境映射的方法,首先把一张选好的环境图贴到一个包围了整个场景的球面上,然后对场景使用path tracing算法,终结条件是射线击中这个球面(而不是击中光源)。由于这个巨大的球面包含了整个场景,所以找到有效路径的几率几乎是100%,效率还是可以接受的。当然,这里其实还可以加上重要性采样,比如在环境贴图中亮的部分更多地采样,但这就不是标准path tracing能够做的事情了。

    使用这个方法,就可以更好地模拟自然环境下的光照,从而使结果看起来更加真实生动。下面是两组渲染结果:

bubuko.com,布布扣

bubuko.com,布布扣

简单实现了一下类似环境映射的光照效果渲染

原文:http://www.cnblogs.com/starfallen/p/3520021.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!