【Games104】 渲染中光和材质的数学魔法

一、渲染方程

在games101课程中我们了解到,所有的渲染都可以根据一个渲染方程来得到。在某一点x,他在\omega _o方向的出射值(output radiance)等于他本身在这一点这一方向的辐射值(emitted radiance)加上在这一点的入射值(incoming radiance)反射出的能量的总和。f_r(x,\omega _o,\omega_i)为散射函数,表示在表示在\omega_i方向入射\omega _o方向出射能量的反射比例。cos\theta _i越大表示入射光线于平面夹角越小,能反射更多的能量。

现代的图形学工作基本都是围绕如何去实现这个渲染方程来进行的,因此我们会面临诸多挑战。第一个挑战就是,如何去更好的实现阴影(shadow),阴影能更好的体现出层次信息,阴影效果好不好就能直接影响到图像真实性的优劣,做好阴影就是对光源的分析足够透彻,点光源和平行光源很容易去分析,但是实际上现实世界更多的是面光源,在分析面光源,整个过程就会变得非常的复杂。第二个挑战就是在渲染方程中,我们会有一个积分的过程,要求我们不断去进行采样,整个过程是十分昂贵的,如何去更高效的得到积分结果便是另一个面临的问题。在物体的每一个点都有出射的过程,这就意味着所有的物体本身就是个光源,在一个场景无穷多个光源当中,如何去分析这便是第三个挑战

二、基础光照解决方案

1、光照

最开始,我们将光照直接分成主光(simple light,光源直接照射)和环境光(ambient light,除去光源环境带来的光照)。

进一步,假设我物体表面是一个非常光滑的,会反射出周围的情景,因此引入了一个环境贴图(Environment Map)的概念。环境贴图相当于一个包围住物体的包围盒,人眼发射的光线直接去寻找反射光对应的贴图位置,这就用了一种最简单而又基本符合渲染方程的一种方法解决了问题。

 2、材质

材质模型最简单的解决方案就无疑是Blinn-Phong模型。这个模型很好诠释了光的可叠加原理,将材质分为环境(Ambient)、漫反射(Diffuse)、高光(Specular),将这三项叠加在一起就是得到的结果。这个模型虽然简单,但是却能得出良好的结果。

但实际Blinn-Phong模型也有一些问题。首先计算下来会发现它的能量实际是不守恒的,反射方向的能量有时会大于入射能量,单一的反射

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值