bump mapping是为了制作浮雕效果。(In 1978, James Blinn presented a method of performing what is called bump mapping. Bump mapping simulates the bumps or wrinkles in a surface without the need for geometric modifications to the model)
其主要特点是模拟,并不需要真正修改物体的几何模型数据。区别于displacement mapping
实现bump mapping,需要一张图片,称作bump map,结合光照技术,修改正常的法线向量
视觉欺骗原理:
当观察到一个物体是粗燥不平的时候,那是因为物体表面反射出不一样亮度的光线,光线进入你的双眼,经大脑进行智能合成,形成了物体表面粗燥不平的感觉。bump mapping的原理,就是制造出不一样亮度的光线来实现模拟
光线强弱与凹凸表面的关系:
光线强的,表面是为凸,光线弱的,表面凹
以上图片来源于http://freespace.virgin.net/hugo.elias/graphics/x_polybm.htm
上面两张图片都是一样的,只是旋转了180度,但凹凸的感觉完全相反。因为,光线在我们脑海中,总是从上往下照的(太阳在天上),亮的地方,总是更靠近光源,是凸起的(光源是上面),暗的地方,是凹的,远离光源。以两张图的右上圆为例,第一幅图中,边缘是亮的,其周围从上到下的颜色由暗渐明,因此是凸的感觉。第二幅图中,边缘是暗的,周围颜色从上到下是由明渐暗,因此形成凹的感觉。
什么是bump map
bump map由于描述光线的强度的灰度图。如上所述,光线强弱会导致凹凸效果。普通的纹理贴图保存的是颜色信息,贴图的颜色最终与物理模型混合。bump map保存的是光照信息,光照强度由白到黑,因此bump map是一张灰度图,像素描述了表面的凹凸程度。当然。bump map也和普通的纹理贴图一样,具备想要展示的基本形状
bump mapping
OpenGL中,光线的强弱是由法线向量决定的,因此。bump mapping的做法,就是根绝bump map图,对应的修改法线向量
实现bump mapping所需要的技术&材料:
1. bump map图。必须的
2. 光照。必须的
讲解非常通俗易懂的参考: http://freespace.virgin.net/hugo.elias/graphics/x_polybm.htm3. multitexture支持。这个基本上是必须的,取决于实现bump mapping的手段