openGL学习笔记三十四:光照、光源
一、 光照: 四种光照类型: 放射光(自发光) emissive : 没有光照的情况下物体自身会发射光 如:夜明珠 环境光 ambient : 即使夜里房间灯全部关掉,还是有微弱光(月光)让你能看见房间物体轮廓,这就是环境光 漫反射光 镜面反射光 specular : shininess 材质光泽度对比图 基本光照模型: 计算公式:surfaceColor = emissive + ambient + diffuse + specular (四种光照类型加在一起即可得到物体表面的颜色) opengl固定渲染管线已经使用了这个公式 ,我们只需要设置下参数,opengl内部会自动进行计算,我们即可看到光照效果。 二、光源: 三种光源类型: 点光 : 如电灯包,向四周360度发射光 有衰减 (可以设置衰减系数) 平行光 : 如太阳,光源在无限远处 聚光灯 : 在锥形区域内有光 相关函数 // 禁用光照时 使用 glColor3f()设置颜色 // 启用光照时 使用 glMaterial()设置材质颜色,glColor3f() 设置颜色无效 glEnable ( GL_LIGHTING ) ; // 启用光照 glEnable ( GL_LIGHT0 ) ; // 激活灯0 GLfloat light_ambient [ 4 ] = { 0.3 , 0.3 , 0.3 , 1.0 }