chap8 REFLECTION MODELS

本章主要说的是反射和透射,不过还是以反射为主要内容。

REFLECTION MODELS


对于surface的反射属性数据,一般有这样几类的获取方式:

  • 测出来的,比如bungie会有仪器测模型的brdf值
  • 推算出来的

surface的反射可以分成这样几种:

  • diffuse:漫反射
  • glossy specular:specular是镜面反射的意思
  • perfect specular
  • retro-reflective:主要是顺着入射光反射的一种类型

BXDF:

中间的x可以有几种:

  • 说反射的,就是reflection,就是brdf
  • 说散射的,就是scattering,就是bsdf
  • 投射的,就是transmission,就是btdf
SpecularReflection and Transmission
首先介绍了简单的反射和折射定律:
  • 反射是入射角==反射角
  • 折射是snell定律:refraction_index_incident*sin(incident_angle)==refraction_index_transmit*sin(transmit);
fresnel reflection
这里和我们学的物理是一样的,就是光的反射和投射的比率。
这个取决于,光反射surface两边介质的refract index,以及入射角,
对于不透明介质,一部分光能量会被吸收,还要多一个吸收系数(absorption coefficient)
然后是很多公式,直接看wikipedia吧:
http://en.wikipedia.org/wiki/Fresnel_equations
而谈fresnel reflection的意义就是在非perfect reflection的时候,就要考虑这一项fresnel。

Lambertian Reflection
这个是描述纯diffuse surface的模型,现实中不存在这种模型,它只有一个散射常数,其实也就是我们常说的diffuse color。

MicroFacetModel
这个在之前的gamedev界常说的physically based rendering中说了很多次了(比如本blog的这个:http://blog.csdn.net/ccanan/article/details/6757592),就不赘述:
值得一提的是isotropic model和anisotropic model,各向异性的surface比如丝绸类,它是有两个specular power,做出来类似椭圆的定义。
<PhysicallyBasedRendering>chap8 REFLECTION MODELS_第1张图片
公式也是大同小异:

fresnel用schlick approximation:
R+(1-R)*pow(1-cos(theta),5)








原文链接: http://blog.csdn.net/ccanan/article/details/7171514

你可能感兴趣的:(chap8 REFLECTION MODELS)