OpenGL学习笔记:bump mapping
2011-09-15 15:42
211 查看
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. 光照。必须的
3. multitexture支持。这个基本上是必须的,取决于实现bump mapping的手段
讲解非常通俗易懂的参考:http://freespace.virgin.net/hugo.elias/graphics/x_polybm.htm
其主要特点是模拟,并不需要真正修改物体的几何模型数据。区别于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. 光照。必须的
3. multitexture支持。这个基本上是必须的,取决于实现bump mapping的手段
讲解非常通俗易懂的参考:http://freespace.virgin.net/hugo.elias/graphics/x_polybm.htm
相关文章推荐
- OpenGL 学习笔记——帧缓冲与后期处理
- openGL学习笔记之一--视图
- iOS cocos2d学习笔记 之 iOS View与OpenGL View的那些事
- 【OpenGL 学习笔记03】点画多边形
- OpenGL学习笔记(三)
- OpenGL学习笔记()多边形绘制-cullface
- OpenGL学习笔记: (1)mac下OpenGL环境搭建
- OpenGL学习笔记1 —— 画点
- opengl学习小笔记(3)直线段的绘制之DDA 算法
- OpenGL学习笔记4 —— 动画,太阳地球月亮
- OPENGL学习笔记之六
- Android OpenGL 学习笔记 --开始篇
- 学习OpenGL笔记(1.1)——first program: entering main
- OpenGL学习笔记3:变换,矩阵,更多对象
- Opengl学习笔记:(四)添加菜单
- 《OpenGL游戏程序设计》学习笔记---第五章坐标变换和OpenGL矩阵
- OpenGL 学习笔记一
- OpenCV for Ios 学习笔记(9)-用OPENGL渲染AR场景2
- openGL之圆环---openGL学习笔记(七)
- OpenGL学习笔记(九):索引缓冲器(EBO /IBE)的理解与使用,引入线框/填充模式