Simone
云澹澹,水悠悠,一声横笛锁空楼
posts - 42,  comments - 70,  trackbacks - 1

1.Fresnel效果

一般来说,当光到达2种材质的接触面时,一些光在接触面的表面被反射出去,而另一部分光将发生折射穿过接触面,这个现象称为Fresnel效果。Fresnel公式描述了多少光被反射和多少光被折射。下面是Fresnel公式的一个近似:

reflectionCoefficient=max(0,min(1,bias+scale×(1+I·N)power))

反射系数reflectionCoefficient的范围被限制在[0,1]之间,我们根据下面的公式使用reflectionCoefficient来混合反射和折射向量(C代表颜色):

CFinal=reflectionCoefficient×CReflected+(1-reflectionCoefficient)×CRefracted

还有一个比较常用的近似计算Fresnel的公式:
fastFresnel = r + ( 1-r ) * pow ( 1.0 – dot ( viewDir, normal ), 5.0);
反射系数r的值可以通过物理测量获得,例如空气到水面的反射系数约为0.02037。
从而
CFinal=fastFresnel×CReflected+(1-fastFresnel)×CRefracted

2.颜色色散

折射量除了基于表面法向量、入射角和折射系数比率外,还决定于入射光的波长。例如,红光要比蓝光折射得多,这个现象称为颜色色散(chromatic dispersion)。这就是为什么当白光进入棱镜会形成一个彩虹的原因。

真正的光有一个波段的波长,而不仅仅只有3个特殊的离散波长。但我们可以近似地只模拟光的红、绿和蓝色分量的波长。实践证明,这种近似是有效的。

结合了颜色色散的Fresnel效果将创建一种彩虹效果,就好像被渲染的物体是由水晶做成的一样。

---------------------------------------------------
Author: Skyman (吴俊)
版权所有,未经允许,不得转载
---------------------------------------------------
posted on 2008-04-12 02:39 Skyman 阅读(160) 评论(0)  编辑 收藏 所属分类: 研究

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
另存  打印
 


EMail:
jun.skyman2001'at'gmail.com
MSN:
skyman_2001@163.com

<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

与我联系

常用链接

留言簿(2)

我参与的团队

我的标签

随笔分类

随笔档案

相册

Friends

  • LongGi
  • 一个搞Linux上的OGL的同志

搜索

  •  

最新评论

阅读排行榜

评论排行榜